question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

RetryGatewayFilterFactoryIntegrationTestsshouldNotRetryWhenSleepyRequestPost.() fails with only one subscriber allowed

See original GitHub issue

Works with reactor 3.3.4, framework 5.2.5 and boot 2.3.0.M4 fails with reactor 3.3.5, snapshot, framework 5.2.6 snapshot and boot 2.3.0. snapshot

java.lang.IllegalStateException: Only one connection receive subscriber allowed.
	at reactor.netty.channel.FluxReceive.startReceiver(FluxReceive.java:304) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.channel.FluxReceive.subscribe(FluxReceive.java:136) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:62) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.netty.ByteBufFlux.subscribe(ByteBufFlux.java:327) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:62) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.netty.ByteBufFlux.subscribe(ByteBufFlux.java:327) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.core.publisher.Flux.subscribe(Flux.java:8258) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.netty.channel.MonoSendMany.subscribe(MonoSendMany.java:82) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:153) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.Mono.subscribe(Mono.java:4208) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.netty.NettyOutbound.subscribe(NettyOutbound.java:329) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoSource.subscribe(MonoSource.java:65) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.netty.http.client.HttpClientConnect$HttpIOHandlerObserver.onStateChange(HttpClientConnect.java:438) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:514) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.run(PooledConnectionProvider.java:603) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.onNext(PooledConnectionProvider.java:485) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.onNext(PooledConnectionProvider.java:436) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:388) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.internal.shaded.reactor.pool.SimplePool.lambda$drainLoop$13(SimplePool.java:244) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:47) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.netty.internal.shaded.reactor.pool.SimplePool.drainLoop(SimplePool.java:244) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.internal.shaded.reactor.pool.SimplePool.drain(SimplePool.java:172) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.internal.shaded.reactor.pool.SimplePool.doAcquire(SimplePool.java:132) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.request(AbstractPool.java:351) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.onSubscribe(PooledConnectionProvider.java:511) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.internal.shaded.reactor.pool.SimplePool$QueueBorrowerMono.subscribe(SimplePool.java:323) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.resources.PooledConnectionProvider.disposableAcquire(PooledConnectionProvider.java:197) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.resources.PooledConnectionProvider.lambda$acquire$3(PooledConnectionProvider.java:161) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:57) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect.lambda$subscribe$0(HttpClientConnect.java:323) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:57) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.FluxRetryPredicate$RetryPredicateSubscriber.resubscribe(FluxRetryPredicate.java:124) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoRetryPredicate.subscribeOrReturn(MonoRetryPredicate.java:51) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:57) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect.subscribe(HttpClientConnect.java:326) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.core.publisher.Flux.subscribe(Flux.java:8258) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:172) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:153) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:79) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoRetryWhen.subscribeOrReturn(MonoRetryWhen.java:46) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoFromFluxOperator.subscribe(MonoFromFluxOperator.java:74) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.Mono.subscribe(Mono.java:4208) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:172) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:150) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:67) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2317) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2125) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:1999) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.Mono.subscribe(Mono.java:4208) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:75) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:144) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.FluxContextStart$ContextStartSubscriber.onComplete(FluxContextStart.java:115) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onComplete(FluxMapFuseable.java:336) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onComplete(FluxFilterFuseable.java:384) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1756) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:152) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:136) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:252) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:136) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
	at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:366) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:367) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:489) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:96) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:214) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321) ~[netty-codec-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295) ~[netty-codec-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792) ~[netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar:4.1.48.Final]
	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475) ~[netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar:4.1.48.Final]
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) ~[netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar:4.1.48.Final]
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[netty-common-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.48.Final.jar:4.1.48.Final]
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.48.Final.jar:4.1.48.Final]
	at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_191]

2020-04-17 11:49:39.055 TRACE 548 --- [or-http-epoll-6] o.s.c.g.f.f.RetryGatewayFilterFactory    : setting new iteration in attr 0
2020-04-17 11:49:39.055 TRACE 548 --- [or-http-epoll-6] o.s.c.g.f.f.RetryGatewayFilterFactory    : exceedsMaxIterations false, iteration 0, configured retries 2
2020-04-17 11:49:39.055 TRACE 548 --- [or-http-epoll-6] o.s.c.g.f.f.RetryGatewayFilterFactory    : exception or its cause is not retryable java.lang.IllegalStateException, configured exceptions [class java.io.IOException, class org.springframework.cloud.gateway.support.TimeoutException]
2020-04-17 11:49:39.056 DEBUG 548 --- [or-http-epoll-6] a.w.r.e.AbstractErrorWebExceptionHandler : [1430952e-17] Resolved [IllegalStateException: Only one connection receive subscriber allowed.] for HTTP POST /sleep
2020-04-17 11:49:39.058 ERROR 548 --- [or-http-epoll-6] a.w.r.e.AbstractErrorWebExceptionHandler : [1430952e-17]  500 Server Error for HTTP POST "/sleep?key=notRetriesSleepyRequestPost&millis=3000"

java.lang.IllegalStateException: Only one connection receive subscriber allowed.
	at reactor.netty.channel.FluxReceive.startReceiver(FluxReceive.java:304) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Error has been observed at the following site(s):
	|_ checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.authorization.AuthorizationWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.authorization.ExceptionTranslationWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.authentication.logout.LogoutWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.savedrequest.ServerRequestCacheWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.context.SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.context.ReactorContextWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.header.HttpHeaderWriterWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.config.web.server.ServerHttpSecurity$ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ HTTP POST "/sleep?key=notRetriesSleepyRequestPost&millis=3000" [ExceptionHandlingWebHandler]
Stack trace:
		at reactor.netty.channel.FluxReceive.startReceiver(FluxReceive.java:304) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.channel.FluxReceive.subscribe(FluxReceive.java:136) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:62) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.ByteBufFlux.subscribe(ByteBufFlux.java:327) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:62) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.ByteBufFlux.subscribe(ByteBufFlux.java:327) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.Flux.subscribe(Flux.java:8258) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.channel.MonoSendMany.subscribe(MonoSendMany.java:82) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:153) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.Mono.subscribe(Mono.java:4208) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.NettyOutbound.subscribe(NettyOutbound.java:329) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoSource.subscribe(MonoSource.java:65) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.http.client.HttpClientConnect$HttpIOHandlerObserver.onStateChange(HttpClientConnect.java:438) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:514) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.run(PooledConnectionProvider.java:603) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.onNext(PooledConnectionProvider.java:485) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.onNext(PooledConnectionProvider.java:436) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:388) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.internal.shaded.reactor.pool.SimplePool.lambda$drainLoop$13(SimplePool.java:244) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:47) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.internal.shaded.reactor.pool.SimplePool.drainLoop(SimplePool.java:244) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.internal.shaded.reactor.pool.SimplePool.drain(SimplePool.java:172) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.internal.shaded.reactor.pool.SimplePool.doAcquire(SimplePool.java:132) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.request(AbstractPool.java:351) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.onSubscribe(PooledConnectionProvider.java:511) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.internal.shaded.reactor.pool.SimplePool$QueueBorrowerMono.subscribe(SimplePool.java:323) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.resources.PooledConnectionProvider.disposableAcquire(PooledConnectionProvider.java:197) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.resources.PooledConnectionProvider.lambda$acquire$3(PooledConnectionProvider.java:161) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:57) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect.lambda$subscribe$0(HttpClientConnect.java:323) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:57) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxRetryPredicate$RetryPredicateSubscriber.resubscribe(FluxRetryPredicate.java:124) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoRetryPredicate.subscribeOrReturn(MonoRetryPredicate.java:51) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:57) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect.subscribe(HttpClientConnect.java:326) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.Flux.subscribe(Flux.java:8258) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:172) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:153) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:79) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoRetryWhen.subscribeOrReturn(MonoRetryWhen.java:46) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoFromFluxOperator.subscribe(MonoFromFluxOperator.java:74) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.Mono.subscribe(Mono.java:4208) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:172) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:150) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:67) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2317) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2125) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:1999) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.Mono.subscribe(Mono.java:4208) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:75) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:144) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxContextStart$ContextStartSubscriber.onComplete(FluxContextStart.java:115) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onComplete(FluxMapFuseable.java:336) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onComplete(FluxFilterFuseable.java:384) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1756) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:152) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:136) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:252) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:136) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:366) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:367) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:489) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:96) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:214) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321) ~[netty-codec-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295) ~[netty-codec-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792) ~[netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar:4.1.48.Final]
		at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475) ~[netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar:4.1.48.Final]
		at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) ~[netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar:4.1.48.Final]
		at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[netty-common-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.48.Final.jar:4.1.48.Final]
		at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_191]

2020-04-17 11:49:39.061 TRACE 548 --- [or-http-epoll-6] o.s.c.g.filter.GatewayMetricsFilter      : gateway.requests tags: [tag(httpMethod=POST),tag(httpStatusCode=500),tag(outcome=SERVER_ERROR),tag(routeId=retry_only_get),tag(routeUri=lb://testservice),tag(status=INTERNAL_SERVER_ERROR)]
2020-04-17 11:49:39.061 DEBUG 548 --- [or-http-epoll-6] r.n.http.server.HttpServerOperations     : [id: 0x1430952e, L:/127.0.0.1:44169 - R:/127.0.0.1:56890] Decreasing pending responses, now 0
2020-04-17 11:49:39.061 DEBUG 548 --- [or-http-epoll-6] r.n.http.server.HttpServerOperations     : [id: 0x1430952e, L:/127.0.0.1:44169 - R:/127.0.0.1:56890] Last HTTP packet was sent, terminating the channel
2020-04-17 11:49:39.062 DEBUG 548 --- [or-http-epoll-6] r.n.http.server.HttpServerOperations     : [id: 0x1430952e, L:/127.0.0.1:44169 - R:/127.0.0.1:56890] Last HTTP response frame
2020-04-17 11:49:39.062 DEBUG 548 --- [or-http-epoll-5] r.n.http.client.HttpClientOperations     : [id: 0xc24e711b, L:/127.0.0.1:56890 - R:localhost/127.0.0.1:44169] Received response (auto-read:false) : [Vary=Origin, Vary=Access-Control-Request-Method, Vary=Access-Control-Request-Headers, X-Gateway-Handler-Mapper-Class=RoutePredicateHandlerMapping, X-Gateway-RouteDefinition-Id=retry_only_get, Content-Type=application/json, Content-Length=192, Cache-Control=no-cache, no-store, max-age=0, must-revalidate, Pragma=no-cache, Expires=0, X-Content-Type-Options=nosniff, X-Frame-Options=DENY, X-XSS-Protection=1 ; mode=block, Referrer-Policy=no-referrer]
2020-04-17 11:49:39.062 DEBUG 548 --- [or-http-epoll-5] r.n.resources.PooledConnectionProvider   : [id: 0xc24e711b, L:/127.0.0.1:56890 - R:localhost/127.0.0.1:44169] onStateChange(POST{uri=/sleep?key=notRetriesSleepyRequestPost&millis=3000, connection=PooledConnection{channel=[id: 0xc24e711b, L:/127.0.0.1:56890 - R:localhost/127.0.0.1:44169]}}, [response_received])
2020-04-17 11:49:39.062 DEBUG 548 --- [or-http-epoll-5] o.s.w.r.f.client.ExchangeFunctions       : [5ddb302] Response 500 INTERNAL_SERVER_ERROR
2020-04-17 11:49:39.062 DEBUG 548 --- [or-http-epoll-5] r.n.http.client.HttpClientOperations     : [id: 0xc24e711b, L:/127.0.0.1:56890 - R:localhost/127.0.0.1:44169] Received last HTTP packet
2020-04-17 11:49:39.062 DEBUG 548 --- [or-http-epoll-5] r.n.resources.PooledConnectionProvider   : [id: 0xc24e711b, L:/127.0.0.1:56890 - R:localhost/127.0.0.1:44169] onStateChange(POST{uri=/sleep?key=notRetriesSleepyRequestPost&millis=3000, connection=PooledConnection{channel=[id: 0xc24e711b, L:/127.0.0.1:56890 - R:localhost/127.0.0.1:44169]}}, [response_completed])
2020-04-17 11:49:39.062 DEBUG 548 --- [or-http-epoll-5] r.n.resources.PooledConnectionProvider   : [id: 0xc24e711b, L:/127.0.0.1:56890 - R:localhost/127.0.0.1:44169] onStateChange(POST{uri=/sleep?key=notRetriesSleepyRequestPost&millis=3000, connection=PooledConnection{channel=[id: 0xc24e711b, L:/127.0.0.1:56890 - R:localhost/127.0.0.1:44169]}}, [disconnecting])
2020-04-17 11:49:39.062 DEBUG 548 --- [or-http-epoll-5] r.n.resources.PooledConnectionProvider   : [id: 0xc24e711b, L:/127.0.0.1:56890 - R:localhost/127.0.0.1:44169] Releasing channel
2020-04-17 11:49:39.062 DEBUG 548 --- [or-http-epoll-5] r.n.resources.PooledConnectionProvider   : [id: 0xc24e711b, L:/127.0.0.1:56890 - R:localhost/127.0.0.1:44169] Channel cleaned, now 2 active connections and 1 inactive connections
2020-04-17 11:49:39.063  WARN 548 --- [or-http-epoll-6] r.netty.http.client.HttpClientConnect    : [id: 0x76a6c483, L:/127.0.0.1:56888 - R:localhost/127.0.0.1:44169] The connection observed an error

java.lang.IllegalStateException: Only one connection receive subscriber allowed.
	at reactor.netty.channel.FluxReceive.startReceiver(FluxReceive.java:304) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
	Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Error has been observed at the following site(s):
	|_ checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.authorization.AuthorizationWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.authorization.ExceptionTranslationWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.authentication.logout.LogoutWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.savedrequest.ServerRequestCacheWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.context.SecurityContextServerWebExchangeWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.context.ReactorContextWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.header.HttpHeaderWriterWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.config.web.server.ServerHttpSecurity$ServerWebExchangeReactorContextWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.security.web.server.WebFilterChainProxy [DefaultWebFilterChain]
	|_ checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain]
	|_ checkpoint ⇢ HTTP POST "/sleep?key=notRetriesSleepyRequestPost&millis=3000" [ExceptionHandlingWebHandler]
Stack trace:
		at reactor.netty.channel.FluxReceive.startReceiver(FluxReceive.java:304) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.channel.FluxReceive.subscribe(FluxReceive.java:136) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:62) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.ByteBufFlux.subscribe(ByteBufFlux.java:327) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.InternalFluxOperator.subscribe(InternalFluxOperator.java:62) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.ByteBufFlux.subscribe(ByteBufFlux.java:327) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.Flux.subscribe(Flux.java:8258) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.channel.MonoSendMany.subscribe(MonoSendMany.java:82) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:153) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.Mono.subscribe(Mono.java:4208) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.NettyOutbound.subscribe(NettyOutbound.java:329) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoSource.subscribe(MonoSource.java:65) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.http.client.HttpClientConnect$HttpIOHandlerObserver.onStateChange(HttpClientConnect.java:438) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:514) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.run(PooledConnectionProvider.java:603) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.onNext(PooledConnectionProvider.java:485) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.onNext(PooledConnectionProvider.java:436) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.deliver(AbstractPool.java:388) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.internal.shaded.reactor.pool.SimplePool.lambda$drainLoop$13(SimplePool.java:244) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.scheduler.ImmediateScheduler.schedule(ImmediateScheduler.java:47) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.internal.shaded.reactor.pool.SimplePool.drainLoop(SimplePool.java:244) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.internal.shaded.reactor.pool.SimplePool.drain(SimplePool.java:172) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.internal.shaded.reactor.pool.SimplePool.doAcquire(SimplePool.java:132) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.internal.shaded.reactor.pool.AbstractPool$Borrower.request(AbstractPool.java:351) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.resources.PooledConnectionProvider$DisposableAcquire.onSubscribe(PooledConnectionProvider.java:511) [reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.internal.shaded.reactor.pool.SimplePool$QueueBorrowerMono.subscribe(SimplePool.java:323) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.resources.PooledConnectionProvider.disposableAcquire(PooledConnectionProvider.java:197) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.resources.PooledConnectionProvider.lambda$acquire$3(PooledConnectionProvider.java:161) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:57) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect.lambda$subscribe$0(HttpClientConnect.java:323) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:57) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxRetryPredicate$RetryPredicateSubscriber.resubscribe(FluxRetryPredicate.java:124) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoRetryPredicate.subscribeOrReturn(MonoRetryPredicate.java:51) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:57) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.http.client.HttpClientConnect$MonoHttpConnect.subscribe(HttpClientConnect.java:326) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.core.publisher.Flux.subscribe(Flux.java:8258) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:172) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:153) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:79) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoRetryWhen.subscribeOrReturn(MonoRetryWhen.java:46) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoFromFluxOperator.subscribe(MonoFromFluxOperator.java:74) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.Mono.subscribe(Mono.java:4208) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.drain(MonoIgnoreThen.java:172) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:56) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:150) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:67) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2317) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2125) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:1999) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.Mono.subscribe(Mono.java:4208) [reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onComplete(FluxSwitchIfEmpty.java:75) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onComplete(FluxMapFuseable.java:144) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxContextStart$ContextStartSubscriber.onComplete(FluxContextStart.java:115) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onComplete(FluxMapFuseable.java:336) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onComplete(FluxFilterFuseable.java:384) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1756) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:152) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:136) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:252) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:136) ~[reactor-core-3.3.5.BUILD-20200415.105622-21.jar:3.3.5.BUILD-SNAPSHOT]
		at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:366) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:367) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:489) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:96) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:214) ~[reactor-netty-0.9.7.BUILD-20200417.125022-25.jar:0.9.7.BUILD-SNAPSHOT]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321) ~[netty-codec-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295) ~[netty-codec-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792) ~[netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar:4.1.48.Final]
		at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475) ~[netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar:4.1.48.Final]
		at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) ~[netty-transport-native-epoll-4.1.48.Final-linux-x86_64.jar:4.1.48.Final]
		at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[netty-common-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.48.Final.jar:4.1.48.Final]
		at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.48.Final.jar:4.1.48.Final]
		at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_191]

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Reactions:2
  • Comments:14 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
bergerstcommented, Jun 15, 2022

@jomach

What I think is happening is that my groupBy and then later the spring gateway are subscribing to it…

Yes, that’s right.

Where did you described the Sinks?

Here https://github.com/spring-cloud/spring-cloud-gateway/issues/2443#issuecomment-983489173, the first 2 paragraphs.

You will probably need to use something like this in your filter:

  public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
    UnzipSubscriber unzipSubscriber = new UnzipSubscriber(3000);
    exchange.getRequest().getBody().subscribe(unzipSubscriber );

    ServerWebExchange newExchange = exchange.mutate().request(new ServerHttpRequestDecorator(exchange.getRequest()) {
      @Override
      public Flux<DataBuffer> getBody() {
        return unzipSubscriber.getRequest();
      }
    }).build();
    return chain.filter(newExchange);
  }

Some starting point for your UnzipSubscriber:

public class UnzipSubscriber implements Subscriber<DataBuffer> {
  private volatile Subscription subscription;

  private static final AtomicReferenceFieldUpdater<UnzipSubscriber, Subscription> 
      SUBSCRIPTION_UPDATER = AtomicReferenceFieldUpdater.newUpdater(UnzipSubscriber.class,
          Subscription.class, "subscription");

  private final Many<DataBuffer> requestSink;

  public UnzipSubscriber(int bufferSize) {
    requestSink = Sinks.many().multicast().onBackpressureBuffer(bufferSize);
  }

  @Override
  public void onSubscribe(Subscription subscription) {
    Operators.setOnce(SUBSCRIPTION_UPDATER, this, subscription);
    subscription.request(1);
  }
  
  public Flux<DataBuffer> getRequest() {
    return requestSink.asFlux();
  }
  
}

You’ll have to implement onNext, onComplete and onError where each one has to forward the input to the requestSink. In emitNext, you should call subscription.request(1) if you only want to have the next part of the message, otherwise Long.MAX_VALUE to request all parts at once.

I can’t help you any further, you’ll have to figure out the rest by yourself.

0reactions
jomachcommented, Jun 15, 2022

Hello @bergerst , thanks a lot. My issue was in another place where I basically used the flux stream and then return the original one (flipping) this indirectly subscribed double. But this code is very useful anyways.

Read more comments on GitHub >

github_iconTop Results From Across the Web

RxJava: "java.lang.IllegalStateException: Only one subscriber ...
I'm using RxJava to calculate the normalized auto correlation over some sensor data in Android. Strangely enough, my code throws an exception ("java.lang....
Read more >
SubmissionPublisher (Java SE 17 & JDK 17)
A Flow.Publisher that asynchronously issues submitted (non-null) items to current subscribers until it is closed. Each current subscriber receives newly ...
Read more >
Spring WebFlux: Only one connection receive subscriber ...
The problem here is in fact that WebClient allows only one subscriber per connection. If you try to subscribe to the same exchanged...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found