You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by xiaojian zhou <zh...@gmail.com> on 2017/05/07 17:47:46 UTC

Review Request 59040: when advisor cannot found target nodes for bucket id, should double check if the member is offline

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/59040/
-----------------------------------------------------------

Review request for geode, Barry Oglesby and Dan Smith.


Bugs: GEODE-2824
    https://issues.apache.org/jira/browse/GEODE-2824


Repository: geode


Description
-------

This is a race condition. When a member is offline (in redundentcopy=0 case), an earlier check will found that. But if it passed the check, the code will enter a retry loop to ask advisor to give the target node. Finally the advisor will return an empty list of member. Then the code will screw up and throw the "No target node found" exception. 

The fix is: when the empty list is return, double check if target node is offline.


Diffs
-----

  geode-core/src/main/java/org/apache/geode/internal/cache/execute/FunctionExecutionNodePruner.java 18700a75d 


Diff: https://reviews.apache.org/r/59040/diff/1/


Testing
-------


Thanks,

xiaojian zhou


Re: Review Request 59040: when advisor cannot found target nodes for bucket id, should double check if the member is offline

Posted by Xiaojian Zhou <gz...@pivotal.io>.
Yes, PartitionOfflineException is the expected behavior.

On Mon, May 8, 2017 at 11:32 AM, Barry Oglesby <bo...@pivotal.io> wrote:

>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/59040/#review174209
> -----------------------------------------------------------
>
>
>
>
> geode-core/src/main/java/org/apache/geode/internal/cache/execute/
> FunctionExecutionNodePruner.java
> Lines 63 (patched)
> <https://reviews.apache.org/r/59040/#comment247328>
>
>     What happens in the persistent case? Does it throw a
> PartitionOfflineException?
>
>
> - Barry Oglesby
>
>
> On May 7, 2017, 5:47 p.m., xiaojian zhou wrote:
> >
> > -----------------------------------------------------------
> > This is an automatically generated e-mail. To reply, visit:
> > https://reviews.apache.org/r/59040/
> > -----------------------------------------------------------
> >
> > (Updated May 7, 2017, 5:47 p.m.)
> >
> >
> > Review request for geode, Barry Oglesby and Dan Smith.
> >
> >
> > Bugs: GEODE-2824
> >     https://issues.apache.org/jira/browse/GEODE-2824
> >
> >
> > Repository: geode
> >
> >
> > Description
> > -------
> >
> > This is a race condition. When a member is offline (in redundentcopy=0
> case), an earlier check will found that. But if it passed the check, the
> code will enter a retry loop to ask advisor to give the target node.
> Finally the advisor will return an empty list of member. Then the code will
> screw up and throw the "No target node found" exception.
> >
> > The fix is: when the empty list is return, double check if target node
> is offline.
> >
> >
> > Diffs
> > -----
> >
> >   geode-core/src/main/java/org/apache/geode/internal/cache/execute/
> FunctionExecutionNodePruner.java 18700a75d
> >
> >
> > Diff: https://reviews.apache.org/r/59040/diff/1/
> >
> >
> > Testing
> > -------
> >
> >
> > Thanks,
> >
> > xiaojian zhou
> >
> >
>
>

Re: Review Request 59040: when advisor cannot found target nodes for bucket id, should double check if the member is offline

Posted by Barry Oglesby <bo...@pivotal.io>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/59040/#review174209
-----------------------------------------------------------




geode-core/src/main/java/org/apache/geode/internal/cache/execute/FunctionExecutionNodePruner.java
Lines 63 (patched)
<https://reviews.apache.org/r/59040/#comment247328>

    What happens in the persistent case? Does it throw a PartitionOfflineException?


- Barry Oglesby


On May 7, 2017, 5:47 p.m., xiaojian zhou wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/59040/
> -----------------------------------------------------------
> 
> (Updated May 7, 2017, 5:47 p.m.)
> 
> 
> Review request for geode, Barry Oglesby and Dan Smith.
> 
> 
> Bugs: GEODE-2824
>     https://issues.apache.org/jira/browse/GEODE-2824
> 
> 
> Repository: geode
> 
> 
> Description
> -------
> 
> This is a race condition. When a member is offline (in redundentcopy=0 case), an earlier check will found that. But if it passed the check, the code will enter a retry loop to ask advisor to give the target node. Finally the advisor will return an empty list of member. Then the code will screw up and throw the "No target node found" exception. 
> 
> The fix is: when the empty list is return, double check if target node is offline.
> 
> 
> Diffs
> -----
> 
>   geode-core/src/main/java/org/apache/geode/internal/cache/execute/FunctionExecutionNodePruner.java 18700a75d 
> 
> 
> Diff: https://reviews.apache.org/r/59040/diff/1/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> xiaojian zhou
> 
>


Re: Review Request 59040: when advisor cannot found target nodes for bucket id, should double check if the member is offline

Posted by Dan Smith <ds...@pivotal.io>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/59040/#review174195
-----------------------------------------------------------


Ship it!




Ship It!

- Dan Smith


On May 7, 2017, 5:47 p.m., xiaojian zhou wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/59040/
> -----------------------------------------------------------
> 
> (Updated May 7, 2017, 5:47 p.m.)
> 
> 
> Review request for geode, Barry Oglesby and Dan Smith.
> 
> 
> Bugs: GEODE-2824
>     https://issues.apache.org/jira/browse/GEODE-2824
> 
> 
> Repository: geode
> 
> 
> Description
> -------
> 
> This is a race condition. When a member is offline (in redundentcopy=0 case), an earlier check will found that. But if it passed the check, the code will enter a retry loop to ask advisor to give the target node. Finally the advisor will return an empty list of member. Then the code will screw up and throw the "No target node found" exception. 
> 
> The fix is: when the empty list is return, double check if target node is offline.
> 
> 
> Diffs
> -----
> 
>   geode-core/src/main/java/org/apache/geode/internal/cache/execute/FunctionExecutionNodePruner.java 18700a75d 
> 
> 
> Diff: https://reviews.apache.org/r/59040/diff/1/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> xiaojian zhou
> 
>