You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by GitBox <gi...@apache.org> on 2020/08/15 02:48:38 UTC

[GitHub] [servicecomb-java-chassis] jinyule opened a new issue #1921: Response has already been written error

jinyule opened a new issue #1921:
URL: https://github.com/apache/servicecomb-java-chassis/issues/1921


   `java.lang.IllegalStateException: Response has already been written
           at io.vertx.core.http.impl.HttpServerResponseImpl.checkValid(HttpServerResponseImpl.java:573) ~[vertx-core-3.6.3.jar:3.6.3]
           at io.vertx.core.http.impl.HttpServerResponseImpl.end(HttpServerResponseImpl.java:324) ~[vertx-core-3.6.3.jar:3.6.3]
           at org.apache.servicecomb.foundation.vertx.http.VertxServerResponseToHttpServletResponse.internalFlushBuffer(VertxServerResponseToHttpServletResponse.java:122) ~[foundation-vertx-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.foundation.vertx.http.VertxServerResponseToHttpServletResponse.flushBuffer(VertxServerResponseToHttpServletResponse.java:107) ~[foundation-vertx-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.common.rest.AbstractRestInvocation.onExecuteHttpServerFiltersFinish(AbstractRestInvocation.java:306) ~[common-rest-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.common.rest.AbstractRestInvocation.lambda$executeHttpServerFilters$3(AbstractRestInvocation.java:295) ~[common-rest-1.3.0.jar:1.3.0]
           at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760) ~[?:1.8.0_211]
           at java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:778) ~[?:1.8.0_211]
           at java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2140) ~[?:1.8.0_211]
           at org.apache.servicecomb.common.rest.AbstractRestInvocation.executeHttpServerFilters(AbstractRestInvocation.java:290) ~[common-rest-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.common.rest.AbstractRestInvocation.sendResponse(AbstractRestInvocation.java:283) ~[common-rest-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.common.rest.AbstractRestInvocation.sendResponseQuietly(AbstractRestInvocation.java:260) ~[common-rest-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.common.rest.AbstractRestInvocation.lambda$doInvoke$2(AbstractRestInvocation.java:243) ~[common-rest-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.loadbalance.LoadbalanceHandler.lambda$handle$0(LoadbalanceHandler.java:199) ~[handler-loadbalance-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.swagger.invocation.AsyncResponse.complete(AsyncResponse.java:46) ~[swagger-invocation-core-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.loadbalance.LoadbalanceHandler$3.onExecutionSuccess(LoadbalanceHandler.java:330) ~[handler-loadbalance-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.loadbalance.LoadbalanceHandler$3.onExecutionSuccess(LoadbalanceHandler.java:296) ~[handler-loadbalance-1.3.0.jar:1.3.0]
           at com.netflix.loadbalancer.reactive.ExecutionContextListenerInvoker.onExecutionSuccess(ExecutionContextListenerInvoker.java:143) ~[ribbon-loadbalancer-2.3.0.jar:2.3.0]
           at com.netflix.loadbalancer.reactive.ExecutionContextListenerInvoker.onExecutionSuccess(ExecutionContextListenerInvoker.java:131) ~[ribbon-loadbalancer-2.3.0.jar:2.3.0]
           at com.netflix.loadbalancer.reactive.LoadBalancerCommand$3$1$1.onNext(LoadBalancerCommand.java:324) ~[ribbon-loadbalancer-2.3.0.jar:2.3.0]
           at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onNext(OnSubscribeDoOnEach.java:96) ~[rxjava-1.3.8.jar:1.3.8]
           at org.apache.servicecomb.loadbalance.LoadbalanceHandler$4.lambda$null$0(LoadbalanceHandler.java:396) ~[handler-loadbalance-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.swagger.invocation.AsyncResponse.complete(AsyncResponse.java:46) ~[swagger-invocation-core-1.3.0.jar:1.3.0]
           at rx.internal.util.ActionSubscriber.onNext(ActionSubscriber.java:39) ~[rxjava-1.3.8.jar:1.3.8]
           at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:134) ~[rxjava-1.3.8.jar:1.3.8]
           at rx.observers.Subscribers$5.onNext(Subscribers.java:235) ~[rxjava-1.3.8.jar:1.3.8]
           at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onNext(OnSubscribeDoOnEach.java:101) ~[rxjava-1.3.8.jar:1.3.8]
           at rx.observers.Subscribers$5.onNext(Subscribers.java:235) ~[rxjava-1.3.8.jar:1.3.8]
           at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onNext(OnSubscribeDoOnEach.java:101) ~[rxjava-1.3.8.jar:1.3.8]
           at rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:77) ~[rxjava-1.3.8.jar:1.3.8]
           at rx.observers.Subscribers$5.onNext(Subscribers.java:235) ~[rxjava-1.3.8.jar:1.3.8]
           at rx.observers.Subscribers$5.onNext(Subscribers.java:235) ~[rxjava-1.3.8.jar:1.3.8]
           at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onNext(OnSubscribeDoOnEach.java:101) ~[rxjava-1.3.8.jar:1.3.8]
           at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onNext(OnSubscribeDoOnEach.java:101) ~[rxjava-1.3.8.jar:1.3.8]
           at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onNext(OnSubscribeDoOnEach.java:101) ~[rxjava-1.3.8.jar:1.3.8]
           at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$4.onNext(OperatorOnErrorResumeNextViaFunction.java:154) ~[rxjava-1.3.8.jar:1.3.8]
           at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onNext(OnSubscribeDoOnEach.java:101) ~[rxjava-1.3.8.jar:1.3.8]
           at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onNext(OnSubscribeDoOnEach.java:101) ~[rxjava-1.3.8.jar:1.3.8]
           at rx.observers.Subscribers$5.onNext(Subscribers.java:235) ~[rxjava-1.3.8.jar:1.3.8]
           at com.netflix.hystrix.AbstractCommand$DeprecatedOnRunHookApplication$1.onNext(AbstractCommand.java:1442) ~[hystrix-core-1.5.18.jar:1.5.18]
           at com.netflix.hystrix.AbstractCommand$ExecutionHookApplication$1.onNext(AbstractCommand.java:1368) ~[hystrix-core-1.5.18.jar:1.5.18]
           at org.apache.servicecomb.bizkeeper.BizkeeperCommand.lambda$null$1(BizkeeperCommand.java:87) ~[handler-bizkeeper-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.swagger.invocation.AsyncResponse.complete(AsyncResponse.java:46) ~[swagger-invocation-core-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.transport.rest.client.http.RestClientInvocation.complete(RestClientInvocation.java:250) ~[transport-rest-client-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.transport.rest.client.http.RestClientInvocation.lambda$processResponseBody$6(RestClientInvocation.java:234) ~[transport-rest-client-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.core.provider.consumer.ReactiveResponseExecutor.execute(ReactiveResponseExecutor.java:28) ~[java-chassis-core-1.3.0.jar:1.3.0]
           at org.apache.servicecomb.transport.rest.client.http.RestClientInvocation.processResponseBody(RestClientInvocation.java:225) ~[transport-rest-client-1.3.0.jar:1.3.0]
   `
   
   上述异常在边缘服务中发现,使用场景是边缘服务中调用用户鉴权服务,但是鉴权失败了。
   
   定位发现,原因在于直接参考了官方org.apache.servicecomb.demo.edge.service.handler.AuthHandler的例子,当鉴权不通过时,未提前退出,而是继续invocation.next(asyncResp)
   


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [servicecomb-java-chassis] liubao68 closed issue #1921: Response has already been written error

Posted by GitBox <gi...@apache.org>.
liubao68 closed issue #1921:
URL: https://github.com/apache/servicecomb-java-chassis/issues/1921


   


-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [servicecomb-java-chassis] liubao68 commented on issue #1921: Response has already been written error

Posted by GitBox <gi...@apache.org>.
liubao68 commented on issue #1921:
URL: https://github.com/apache/servicecomb-java-chassis/issues/1921#issuecomment-829721953


   fixed


-- 
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org