Zeebe 0.21 update error: io.grpc.netty.NettyServerTransport notifyTerminated

Using docker, so I have pulled the latest images of Zeebe broker and simple monitor. I have also installed the latest Modeler. Awesome job guys!. You are building a great tool here for the community.

Running into a sticker though:

With upgraded Zeebe Java client to 0.21, Simple Monitor to 0.16 and Modeler to 0.7 and updates to zeebe-docker-compose/simple-monitor/docker-compose.yml to use this latest versions as follows:

zeebe:

container_name: zeebe_broker
image: camunda/zeebe:latest
environment:
  - ZEEBE_LOG_LEVEL=debug

monitor:
container_name: zeebe_monitor
image: camunda/zeebe-simple-monitor:latest
environment:
- spring.datasource.url=jdbc:h2:tcp://db:1521/zeebe-monitor;DB_CLOSE_DELAY=-1

After I execute docker-compose up broker appears to come up correctly indicating version 0.21.

However, when I attempt to execute an existing workflow which still works with broker and Java client 0.20, I get this exception:

zeebe_broker | Oct 04, 2019 3:35:38 AM io.grpc.netty.NettyServerTransport notifyTerminated
zeebe_broker | INFO: Transport failed
zeebe_broker | io.netty.handler.codec.http2.Http2Exception: HTTP/2 client preface string missing or corrupt. Hex dump for received bytes: 16030100e5010000e103030c0dcf8ac77c3cf9e10a1bd2f5
zeebe_broker | at io.netty.handler.codec.http2.Http2Exception.connectionError(Http2Exception.java:103)
zeebe_broker | at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.readClientPrefaceString(Http2ConnectionHandler.java:306)
zeebe_broker | at io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.decode(Http2ConnectionHandler.java:239)
zeebe_broker | at io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:438)
zeebe_broker | at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:505)
zeebe_broker | at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:444)
zeebe_broker | at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:283)
zeebe_broker | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
zeebe_broker | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
zeebe_broker | at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
zeebe_broker | at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1421)
zeebe_broker | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
zeebe_broker | at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
zeebe_broker | at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
zeebe_broker | at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:794)
zeebe_broker | at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:424)
zeebe_broker | at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:326)
zeebe_broker | at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
zeebe_broker | at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
zeebe_broker | at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
zeebe_broker | at java.base/java.lang.Thread.run(Unknown Source)

Hardware details are as follows:

Model Name: MacBook Pro
Model Identifier: MacBookPro15,1
Processor Name: Intel Core i7
Processor Speed: 2.6 GHz
Number of Processors: 1
Total Number of Cores: 6
L2 Cache (per Core): 256 KB
L3 Cache: 9 MB
Memory: 32 GB
Boot ROM Version: 220.230.16.0.0 (iBridge: 16.16.2542.0.0,0)
Serial Number (system): C02X9581JGH6
Hardware UUID: F965A559-C0C9-5FBA-A142-B06CFF3D42DA

OS: macOS Mojave 10.14.2

Anyone run into this?

Found fix to my problem. Looks like Java client v 0.21 was changed to use TLS by default. So had to disable this by using plain text.

If anyone else falls into this trap, create your client like so:

final ZeebeClient client = ZeebeClient.newClientBuilder().brokerContactPoint(brokerUrl).usePlaintext().build();

Hoping the docs will be updated shortly.

1 Like

TLS is enabled by default in 0.21.

1 Like