zhuchengwei925023914 opened a new issue, #3273:
URL: https://github.com/apache/servicecomb-java-chassis/issues/3273

   version:2.6.0
   code:getWaitTime in SyncResponseExecutor
   ```
   private long getWaitTime(Invocation invocation) {
       if (invocation.getOperationMeta().getConfig().getMsRequestTimeout() <= 
0) {
         return 
invocation.getOperationMeta().getConfig().getMsInvocationTimeout();
       }
       if (invocation.getOperationMeta().getConfig().getMsInvocationTimeout() 
<= 0) {
         return invocation.getOperationMeta().getConfig().getMsRequestTimeout();
       }
       return 
Math.min(invocation.getOperationMeta().getConfig().getMsRequestTimeout(),
           invocation.getOperationMeta().getConfig().getMsInvocationTimeout());
     }
   ```
   issue:The method getWaitTime in SyncResponseExecutor doen't consider retry 
times. This result in client request will be finished before the request really 
timeout. For example,consumer c invokes method m of provider p.The request 
timeout is 30s,and retryOnNext is 2.The request timeout really is 90s,but 
getWaitTime will return 30s.So,client invocation will timeout before response 
return.Baddly,the cmd in SyncResponseExecutor will be null,because the 
invocation will finish in advance.This result in handlers will not be executed 
in response callBack.


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