key9527 opened a new issue, #4280:
URL: https://github.com/apache/shenyu/issues/4280

   ### Is there an existing issue for this?
   
   - [X] I have searched the existing issues
   
   ### Current Behavior
   
   2022-12-23 11:13:42 [reactor-http-nio-2] ERROR 
org.apache.shenyu.web.handler.GlobalErrorHandler - handle error: [58ff4cf6-7] 
Resolved [WebClientRequestException: Connection prematurely closed BEFORE 
response; nested exception is 
reactor.netty.http.client.PrematureCloseException: Connection prematurely 
closed BEFORE response] for HTTP POST /shenyu-open-api-uat/edp/to/outside/103
   org.springframework.web.reactive.function.client.WebClientRequestException: 
Connection prematurely closed BEFORE response; nested exception is 
reactor.netty.http.client.PrematureCloseException: Connection prematurely 
closed BEFORE response
        at 
org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
        Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
   Error has been observed at the following site(s):
        *__checkpoint ⇢ Request to POST 
https://lixin.gacbusiness.com.cn/shenyu-open-api-uat/edp/to/outside/103 
[DefaultWebClient]
        *__checkpoint ⇢ 
org.apache.shenyu.web.configuration.ErrorHandlerConfiguration$1 
[DefaultWebFilterChain]
        *__checkpoint ⇢ org.apache.shenyu.web.filter.FileSizeFilter 
[DefaultWebFilterChain]
        *__checkpoint ⇢ org.apache.shenyu.web.filter.CrossFilter 
[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 "/shenyu-open-api-uat/edp/to/outside/103" 
[ExceptionHandlingWebHandler]
   Original Stack Trace:
                at 
org.springframework.web.reactive.function.client.ExchangeFunctions$DefaultExchangeFunction.lambda$wrapException$9(ExchangeFunctions.java:141)
                at 
reactor.core.publisher.MonoErrorSupplied.subscribe(MonoErrorSupplied.java:55)
                at reactor.core.publisher.Mono.subscribe(Mono.java:4400)
                at 
reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
                at 
reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
                at 
reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
                at 
reactor.core.publisher.FluxPeek$PeekSubscriber.onError(FluxPeek.java:222)
                at 
reactor.core.publisher.MonoNext$NextSubscriber.onError(MonoNext.java:93)
                at 
reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onError(MonoFlatMapMany.java:204)
                at 
reactor.core.publisher.SerializedSubscriber.onError(SerializedSubscriber.java:124)
                at 
reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.whenError(FluxRetryWhen.java:225)
                at 
reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onError(FluxRetryWhen.java:274)
                at 
reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:415)
                at 
reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onNext(FluxConcatMap.java:251)
                at 
reactor.core.publisher.EmitterProcessor.drain(EmitterProcessor.java:491)
                at 
reactor.core.publisher.EmitterProcessor.tryEmitNext(EmitterProcessor.java:299)
                at 
reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
                at 
reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
                at 
reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
                at 
reactor.core.publisher.MonoCreate$DefaultMonoSink.error(MonoCreate.java:201)
                at 
reactor.netty.http.client.HttpClientConnect$HttpObserver.onUncaughtException(HttpClientConnect.java:399)
                at 
reactor.netty.ReactorNetty$CompositeConnectionObserver.onUncaughtException(ReactorNetty.java:670)
                at 
reactor.netty.resources.DefaultPooledConnectionProvider$DisposableAcquire.onUncaughtException(DefaultPooledConnectionProvider.java:205)
                at 
reactor.netty.resources.DefaultPooledConnectionProvider$PooledConnection.onUncaughtException(DefaultPooledConnectionProvider.java:454)
                at 
reactor.netty.http.client.HttpClientOperations.onInboundClose(HttpClientOperations.java:294)
                at 
reactor.netty.channel.ChannelOperationsHandler.channelInactive(ChannelOperationsHandler.java:73)
                at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262)
                at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248)
                at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:241)
                at 
io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelInactive(CombinedChannelDuplexHandler.java:418)
                at 
io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:392)
                at 
io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:357)
                at 
io.netty.handler.codec.http.HttpClientCodec$Decoder.channelInactive(HttpClientCodec.java:326)
                at 
io.netty.channel.CombinedChannelDuplexHandler.channelInactive(CombinedChannelDuplexHandler.java:221)
                at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262)
                at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248)
                at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:241)
                at 
io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:392)
                at 
io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:357)
                at 
io.netty.handler.ssl.SslHandler.channelInactive(SslHandler.java:1074)
                at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262)
                at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248)
                at 
io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:241)
                at 
io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1405)
                at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262)
                at 
io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248)
                at 
io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:901)
                at 
io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:813)
                at 
io.netty.util.concurrent.AbstractEventExecutor.runTask$$$capture(AbstractEventExecutor.java:174)
                at 
io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java)
                at 
io.netty.util.concurrent.AbstractEventExecutor.safeExecute$$$capture(AbstractEventExecutor.java:167)
                at 
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java)
                at 
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
                at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
                at 
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995)
                at 
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
                at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
                at java.lang.Thread.run(Thread.java:748)
   Caused by: reactor.netty.http.client.PrematureCloseException: Connection 
prematurely closed BEFORE response
   
   ### Expected Behavior
   
   
查了很多资料,在shenyu的issues里也搜到了,该问题在低版本已经解决了,但进入2.5.0,springboot、netty等版本大面积升级以后,这个问题又复现了~
 
   
   ### Steps To Reproduce
   
   1、拉取最新的apache-shenyu代码,2.5.0+;
   2、本地启动admin和bootstrap;
   3、在divide中配置一个https目标的转发策略;
   4、本地postman调用。
   
   注:2.4.3及以下版本正常,仅2.5.0以上版本,且配置的是https目标转发时,才会复现。
   
   ### Environment
   
   ```markdown
   ShenYu version(s): 2.5.0+
   ```
   
   
   ### Debug logs
   
   _No response_
   
   ### Anything else?
   
   _No response_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to