[ https://issues.apache.org/jira/browse/GEODE-5729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16687346#comment-16687346 ]
Alexander Murmann commented on GEODE-5729: ------------------------------------------ Removing fix version, since this was reverted and reopened > when DistributedCacheOperation needs 2 messages, should let the notifyOnly > message to trigger callback > ------------------------------------------------------------------------------------------------------ > > Key: GEODE-5729 > URL: https://issues.apache.org/jira/browse/GEODE-5729 > Project: Geode > Issue Type: Bug > Reporter: xiaojian zhou > Priority: Major > Labels: pull-request-available > Time Spent: 40m > Remaining Estimate: 0h > > When one of the secondary bucket is still initializing (in middle of GII), > the primary member call adviseRequiresTwoMessages() will return not null, > i.e. PutAll will send both PutAllMessage and > PutAllPRMessage(notifyOnly==true) to that member. > Then it might cause to send the same event 2 times to the secondary serial > gateway queue. There's race that the primary serial gateway queue finished > processing the event before one of (or all of) the 2 duplicated events at > secondary serial gateway queue, the one was enqueued after the processing > primary event will be replayed. > When considering the fix, we have to keep the twoMessage design, and we > cannot guarantee that when the PutAllPRMessage(notifyOnly==true) is sent, the > secondary bucket will be ready. > I find a work around: > The reason we need to send both PutAllMessage and PutAllPRMessage to the > member is: we need the PutAllMessage to do apply distribution if region is > ready, and also trigger call back if region is ready. But the PutAllPRMessage > will trigger callbacks anyway even region is not ready > So when I detect there're overlap in the 2 sets of recipients, I can set > event to be inhibitAllNotifications for PutAllMessage to let it only apply > distribution. -- This message was sent by Atlassian JIRA (v7.6.3#76005)