[ 
https://issues.apache.org/jira/browse/GEODE-5729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16678776#comment-16678776
 ] 

ASF subversion and git services commented on GEODE-5729:
--------------------------------------------------------

Commit e9ea18e18c85b977b91192d4edbb9a4e18b2643e in geode's branch 
refs/heads/develop from [~mcmellawatt]
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=e9ea18e ]

Revert "GEODE-5729: when DistributedCacheOperation needs 2 messages, should let 
(#2458)" (#2801)

This reverts commit 49eb1c5fd13aefff0995d76ec7864c82d5730dd8.

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

Reply via email to