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

xiaojian zhou resolved GEODE-5729.
----------------------------------
       Resolution: Fixed
    Fix Version/s: 1.8.0

> 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
>              Labels: pull-request-available
>             Fix For: 1.8.0
>
>          Time Spent: 20m
>  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)

Reply via email to