kelvin17 opened a new issue #2588:
URL: https://github.com/apache/rocketmq/issues/2588


   version:4.8.0
   
   When use Reply-Request,DefaultMQProducer.request to send a msg, and waiting 
for the reply on DefaultMQProducerImpl#waitResponse (use countDownLatch.await)
   
   When the reply message back,the process is 
org.apache.rocketmq.client.impl.ClientRemotingProcessor#processReplyMessage.
   
   There is duplicate invoke of countDownLatch.countDown . L279 and L286
   
   private void processReplyMessage(MessageExt replyMsg) {
           final String correlationId = 
replyMsg.getUserProperty(MessageConst.PROPERTY_CORRELATION_ID);
           final RequestResponseFuture requestResponseFuture = 
RequestFutureTable.getRequestFutureTable().get(correlationId);
           if (requestResponseFuture != null) {
               _**requestResponseFuture.putResponseMessage(replyMsg);**_
   
               RequestFutureTable.getRequestFutureTable().remove(correlationId);
   
               if (requestResponseFuture.getRequestCallback() != null) {
                   
requestResponseFuture.getRequestCallback().onSuccess(replyMsg);
               } else {
                   _**requestResponseFuture.putResponseMessage(replyMsg);**_
               }
           } else {
               String bornHost = replyMsg.getBornHostString();
               log.warn(String.format("receive reply message, but not matched 
any request, CorrelationId: %s , reply from host: %s",
                   correlationId, bornHost));
           }
       }


----------------------------------------------------------------
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:
[email protected]


Reply via email to