[
https://issues.apache.org/jira/browse/GEODE-2870?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15995885#comment-15995885
]
ASF GitHub Bot commented on GEODE-2870:
---------------------------------------
Github user jhuynh1 commented on a diff in the pull request:
https://github.com/apache/geode/pull/491#discussion_r114674904
--- Diff:
geode-core/src/main/java/org/apache/geode/internal/cache/execute/PartitionedRegionFunctionResultSender.java
---
@@ -214,16 +214,15 @@ public void lastResult(Object oneResult) {
private synchronized void lastResult(Object oneResult, ResultCollector
collector,
boolean lastRemoteResult, boolean lastLocalResult, DistributedMember
memberID) {
+
+ boolean completedLocal = lastLocalResult |
this.localLastResultRecieved;
--- End diff --
Whoops good catch, I'll fix that one
> BucketMovedException during function execution may lead to client missing
> results
> ---------------------------------------------------------------------------------
>
> Key: GEODE-2870
> URL: https://issues.apache.org/jira/browse/GEODE-2870
> Project: Geode
> Issue Type: Bug
> Components: functions
> Affects Versions: 1.1.0
> Reporter: Jason Huynh
> Assignee: Jason Huynh
>
> If a function isHA and hasResult, if checkForBucketMovement() throws the
> BucketMovedException, this escapes the synchronized lastResult() method.
> Propogating this to through the user function.
> Hopefully the user function does something appropriate or allows it to
> propagate to AbstractExecution.executeFunctionLocally(), which hands it to
> handleException. Here is where the exception is written back to the client.
> However, because we have now escaped the synchronized method, the thread can
> be paused.
> A remote execution returns with results and now enters the synchronized
> lastResult() method. The state flags have been set and now this result is
> considered the last result and lastResult is now sent. We end up not
> retrying even though the local node had failed. It just hadn't had the
> opportunity to send the exception back.
> This issue has probably been in the product for a long time.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)