You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rocketmq.apache.org by GitBox <gi...@apache.org> on 2019/09/11 13:17:31 UTC

[GitHub] [rocketmq] wongtp opened a new issue #1453: Tags null while the CommitLog#handleHA()

wongtp opened a new issue #1453: Tags null while the CommitLog#handleHA()
URL: https://github.com/apache/rocketmq/issues/1453
 
 
   I debug the source code and find the error log “do sync transfer other node, wait return, but failed, topic ......”, when "flushOK = false", the method "messageExt.getTags()" that are null, the propertites in the  "messageExt" only have one value "WAIT=true", I'm sorry about that I have no time to search for more information, thanks for all respond 👍
   
   `public void handleHA(AppendMessageResult result, PutMessageResult putMessageResult, MessageExt messageExt) {
           if (BrokerRole.SYNC_MASTER == this.defaultMessageStore.getMessageStoreConfig().getBrokerRole()) {
               HAService service = this.defaultMessageStore.getHaService();
               if (messageExt.isWaitStoreMsgOK()) {
                   // Determine whether to wait
                   if (service.isSlaveOK(result.getWroteOffset() + result.getWroteBytes())) {
                       GroupCommitRequest request = new GroupCommitRequest(result.getWroteOffset() + result.getWroteBytes());
                       service.putRequest(request);
                       service.getWaitNotifyObject().wakeupAll();
                       boolean flushOK =
                           request.waitForFlush(this.defaultMessageStore.getMessageStoreConfig().getSyncFlushTimeout());
                       if (!flushOK) {
                           log.error("do sync transfer other node, wait return, but failed, topic: " + messageExt.getTopic() + " tags: "
                               + messageExt.getTags() + " client address: " + messageExt.getBornHostNameString());
                           putMessageResult.setPutMessageStatus(PutMessageStatus.FLUSH_SLAVE_TIMEOUT);
                       }
                   }
                   // Slave problem
                   else {
                       // Tell the producer, slave not available
                       putMessageResult.setPutMessageStatus(PutMessageStatus.SLAVE_NOT_AVAILABLE);
                   }
               }
           }
   
       }`

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


With regards,
Apache Git Services