micrometer-metrics / prometheus-rsocket-proxy

An RSocket proxy to pull metrics from applications that can only open egress
Apache License 2.0
72 stars 27 forks source link

`Failed to release a message: PooledSlicedByteBuf` Proxy Exception #14

Open tzolov opened 5 years ago

tzolov commented 5 years ago

Trying a demo Spring Boot app with the latest (0.8.0-SNAPSHOT) rsocket client and proxy but getting rsocket exceptions on the proxy side.

My proxy runs locally and the Boot application uses properties like this:

management.metrics.export.prometheus.enabled=true
management.metrics.export.prometheus.rsocket.enabled=true
management.metrics.export.prometheus.rsocket.host=localhost
management.metrics.export.prometheus.rsocket.port=7001
management.metrics.export.prometheus.rsocket.max-retries=10000
management.metrics.export.prometheus.rsocket.first-backoff=10s
management.metrics.export.prometheus.rsocket.max-backoff=10m

When i run the demo i can see that the prometheus_proxy_scrape_active_connections metrics is increased from 0 to 1 suggesting that the demo connects to the proxy. But then i get this exception in the proxy log:

prometheus-rsocket-proxy    | 2019-07-31 15:46:02.595  WARN 1 --- [tor-tcp-epoll-2] io.netty.util.ReferenceCountUtil         : Failed to release a message: PooledSlicedByteBuf(freed)
prometheus-rsocket-proxy    |
prometheus-rsocket-proxy    | io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
prometheus-rsocket-proxy    |   at io.netty.util.internal.ReferenceCountUpdater.toLiveRealRefCnt(ReferenceCountUpdater.java:74) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.internal.ReferenceCountUpdater.release(ReferenceCountUpdater.java:138) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:100) ~[netty-buffer-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.ReferenceCountUtil.release(ReferenceCountUtil.java:88) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.ReferenceCountUtil.safeRelease(ReferenceCountUtil.java:113) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:120) [reactor-netty-0.9.0.M2.jar:0.9.0.M2]
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323) [netty-codec-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297) [netty-codec-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930) [netty-transport-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:796) [netty-transport-native-epoll-4.1.36.Final-linux-x86_64.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$1.run(AbstractEpollChannel.java:385) [netty-transport-native-epoll-4.1.36.Final-linux-x86_64.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:405) [netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:338) [netty-transport-native-epoll-4.1.36.Final-linux-x86_64.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906) [netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at java.lang.Thread.run(Thread.java:748) [na:1.8.0_171]
prometheus-rsocket-proxy    |
prometheus-rsocket-proxy    | 2019-07-31 15:46:12.464 ERROR 1 --- [tor-tcp-epoll-2] reactor.core.publisher.Operators         : Operator called default onErrorDropped
prometheus-rsocket-proxy    |
prometheus-rsocket-proxy    | java.nio.channels.ClosedChannelException: null
prometheus-rsocket-proxy    |   at io.rsocket.RSocketRequester.terminate(RSocketRequester.java:429) ~[rsocket-core-0.12.2-RC4.jar:na]
prometheus-rsocket-proxy    |   at io.rsocket.RSocketRequester.lambda$new$0(RSocketRequester.java:85) ~[rsocket-core-0.12.2-RC4.jar:na]
prometheus-rsocket-proxy    |   at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.runFinally(FluxDoFinally.java:156) ~[reactor-core-3.3.0.M2.jar:3.3.0.M2]
prometheus-rsocket-proxy    |   at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onComplete(FluxDoFinally.java:139) ~[reactor-core-3.3.0.M2.jar:3.3.0.M2]
prometheus-rsocket-proxy    |   at reactor.core.publisher.MonoProcessor$NextInner.onComplete(MonoProcessor.java:517) ~[reactor-core-3.3.0.M2.jar:3.3.0.M2]
prometheus-rsocket-proxy    |   at reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:307) ~[reactor-core-3.3.0.M2.jar:3.3.0.M2]
prometheus-rsocket-proxy    |   at reactor.core.publisher.MonoProcessor.onComplete(MonoProcessor.java:264) ~[reactor-core-3.3.0.M2.jar:3.3.0.M2]
prometheus-rsocket-proxy    |   at io.rsocket.internal.BaseDuplexConnection.dispose(BaseDuplexConnection.java:23) ~[rsocket-core-0.12.2-RC4.jar:na]
prometheus-rsocket-proxy    |   at io.rsocket.transport.netty.TcpDuplexConnection.lambda$new$0(TcpDuplexConnection.java:61) ~[rsocket-transport-netty-0.12.2-RC4.jar:na]
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:502) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:495) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:474) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:415) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:540) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:529) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:101) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84) ~[netty-transport-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannel$CloseFuture.setClosed(AbstractChannel.java:1183) ~[netty-transport-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannel$AbstractUnsafe.doClose0(AbstractChannel.java:769) ~[netty-transport-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:745) ~[netty-transport-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:616) ~[netty-transport-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.shutdownInput(AbstractEpollChannel.java:482) ~[netty-transport-native-epoll-4.1.36.Final-linux-x86_64.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:819) ~[netty-transport-native-epoll-4.1.36.Final-linux-x86_64.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$1.run(AbstractEpollChannel.java:385) ~[netty-transport-native-epoll-4.1.36.Final-linux-x86_64.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:405) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:338) ~[netty-transport-native-epoll-4.1.36.Final-linux-x86_64.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.36.Final.jar:4.1.36.Final]
prometheus-rsocket-proxy    |   at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_171]
prometheus-rsocket-proxy    |
prometheus-rsocket-proxy    | reactor.core.Exceptions$BubblingException: java.nio.channels.ClosedChannelException
prometheus-rsocket-proxy    |   at reactor.core.Exceptions.bubble(Exceptions.java:154)
prometheus-rsocket-proxy    |   at reactor.core.publisher.Operators.onErrorDropped(Operators.java:521)
prometheus-rsocket-proxy    |   at reactor.core.publisher.Operators.onErrorDroppedMulticast(Operators.java:1211)
prometheus-rsocket-proxy    |   at reactor.core.publisher.MonoProcessor.onError(MonoProcessor.java:274)
prometheus-rsocket-proxy    |   at io.rsocket.internal.UnicastMonoProcessor.onError(UnicastMonoProcessor.java:107)
prometheus-rsocket-proxy    |   at io.rsocket.RSocketRequester.lambda$handleSendProcessorError$1(RSocketRequester.java:130)
prometheus-rsocket-proxy    |   at java.lang.Iterable.forEach(Iterable.java:75)
prometheus-rsocket-proxy    |   at java.util.Collections$SynchronizedCollection.forEach(Collections.java:2062)
prometheus-rsocket-proxy    |   at io.rsocket.RSocketRequester.handleSendProcessorError(RSocketRequester.java:127)
prometheus-rsocket-proxy    |   at reactor.core.publisher.LambdaMonoSubscriber.doError(LambdaMonoSubscriber.java:121)
prometheus-rsocket-proxy    |   at reactor.core.publisher.LambdaMonoSubscriber.onError(LambdaMonoSubscriber.java:116)
prometheus-rsocket-proxy    |   at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onError(FluxDoFinally.java:129)
prometheus-rsocket-proxy    |   at reactor.netty.channel.MonoSendMany$SendManyInner.tryFailure(MonoSendMany.java:504)
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetFailure(AbstractChannel.java:1018)
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannel$AbstractUnsafe.write(AbstractChannel.java:874)
prometheus-rsocket-proxy    |   at io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1365)
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:716)
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:708)
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:791)
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:701)
prometheus-rsocket-proxy    |   at reactor.netty.channel.MonoSendMany$SendManyInner.run(MonoSendMany.java:286)
prometheus-rsocket-proxy    |   at reactor.netty.channel.MonoSendMany$SendManyInner.trySchedule(MonoSendMany.java:371)
prometheus-rsocket-proxy    |   at reactor.netty.channel.MonoSendMany$SendManyInner.onNext(MonoSendMany.java:185)
prometheus-rsocket-proxy    |   at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:97)
prometheus-rsocket-proxy    |   at io.rsocket.internal.UnboundedProcessor.drainFused(UnboundedProcessor.java:143)
prometheus-rsocket-proxy    |   at io.rsocket.internal.UnboundedProcessor.drain(UnboundedProcessor.java:176)
prometheus-rsocket-proxy    |   at io.rsocket.internal.UnboundedProcessor.onNext(UnboundedProcessor.java:254)
prometheus-rsocket-proxy    |   at io.rsocket.RSocketRequester.lambda$null$4(RSocketRequester.java:240)
prometheus-rsocket-proxy    |   at reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:205)
prometheus-rsocket-proxy    |   at reactor.core.publisher.MonoProcessor$NextInner.onError(MonoProcessor.java:526)
prometheus-rsocket-proxy    |   at reactor.core.publisher.MonoProcessor.onError(MonoProcessor.java:283)
prometheus-rsocket-proxy    |   at io.rsocket.internal.UnicastMonoProcessor.onError(UnicastMonoProcessor.java:107)
prometheus-rsocket-proxy    |   at io.rsocket.RSocketRequester.cleanUpSubscriber(RSocketRequester.java:452)
prometheus-rsocket-proxy    |   at java.lang.Iterable.forEach(Iterable.java:75)
prometheus-rsocket-proxy    |   at java.util.Collections$SynchronizedCollection.forEach(Collections.java:2062)
prometheus-rsocket-proxy    |   at io.rsocket.RSocketRequester.terminate(RSocketRequester.java:432)
prometheus-rsocket-proxy    |   at io.rsocket.RSocketRequester.lambda$new$0(RSocketRequester.java:85)
prometheus-rsocket-proxy    |   at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.runFinally(FluxDoFinally.java:156)
prometheus-rsocket-proxy    |   at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onComplete(FluxDoFinally.java:139)
prometheus-rsocket-proxy    |   at reactor.core.publisher.MonoProcessor$NextInner.onComplete(MonoProcessor.java:517)
prometheus-rsocket-proxy    |   at reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:307)
prometheus-rsocket-proxy    |   at reactor.core.publisher.MonoProcessor.onComplete(MonoProcessor.java:264)
prometheus-rsocket-proxy    |   at io.rsocket.internal.BaseDuplexConnection.dispose(BaseDuplexConnection.java:23)
prometheus-rsocket-proxy    |   at io.rsocket.transport.netty.TcpDuplexConnection.lambda$new$0(TcpDuplexConnection.java:61)
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:502)
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:495)
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:474)
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:415)
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:540)
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:529)
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:101)
prometheus-rsocket-proxy    |   at io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84)
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannel$CloseFuture.setClosed(AbstractChannel.java:1183)
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannel$AbstractUnsafe.doClose0(AbstractChannel.java:769)
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:745)
prometheus-rsocket-proxy    |   at io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:616)
prometheus-rsocket-proxy    |   at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe.shutdownInput(AbstractEpollChannel.java:482)
prometheus-rsocket-proxy    |   at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:819)
prometheus-rsocket-proxy    |   at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$1.run(AbstractEpollChannel.java:385)
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:405)
prometheus-rsocket-proxy    |   at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:338)
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:906)
prometheus-rsocket-proxy    |   at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
prometheus-rsocket-proxy    |   at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
prometheus-rsocket-proxy    |   at java.lang.Thread.run(Thread.java:748)
prometheus-rsocket-proxy    | Caused by: java.nio.channels.ClosedChannelException
prometheus-rsocket-proxy    |   at io.rsocket.RSocketRequester.terminate(RSocketRequester.java:429)
prometheus-rsocket-proxy    |   ... 30 more
sabbyanandan commented 5 years ago

@tzolov: Perhaps you could add the link to the demo app, and that would help @shakuzen to get this going, to help reproduce the problem locally.

cc:/ @mminella

shakuzen commented 5 years ago

Thanks for the report @tzolov. A demo app so I can reproduce this would be helpful. I think I didn't see this with the demo app I was using before. When is the error happening? Soon after the client connects? When a scrape from Prometheus happens? We might need help from the reactor-netty team as the stacktrace seems to be all netty/reactor-netty code.

tzolov commented 5 years ago

@sabbyanandan , @shakuzen , @mminella, here is the demo app to reproduce the issue: https://github.com/tzolov/prometheus-rsocket-demo and here is how i create the environment: https://github.com/tzolov/prometheus-rsocket-demo/blob/master/README.md

shakuzen commented 5 years ago

Unfortunately, I was not able to reproduce the reported error on my machine following the instructions. I sent a pull request to the repo that updates a few things to make sure the latest code is used and minimizes potential sources of differences. In addition to running the demo (client) app once, I ran it in a loop for about 10-15 runs.