[ 
https://issues.apache.org/jira/browse/GEODE-5729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

xiaojian zhou reassigned GEODE-5729:
------------------------------------

    Assignee: xiaojian zhou

> 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
>            Assignee: xiaojian zhou
>            Priority: Major
>
> 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)

Reply via email to