>From Michael Blow <[email protected]>:

Michael Blow has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18396 )


Change subject: [NO ISSUE][*DB] CCMessageBroker fixes
......................................................................

[NO ISSUE][*DB] CCMessageBroker fixes

- only wait for remaining timeout
- simplify/cleanup logic

Change-Id: I19606553af5dde0ed7221563fdb84671ead75881
---
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/CCMessageBroker.java
1 file changed, 21 insertions(+), 8 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/96/18396/1

diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/CCMessageBroker.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/CCMessageBroker.java
index 0683207..9b31b8e 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/CCMessageBroker.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/messaging/CCMessageBroker.java
@@ -21,6 +21,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;

 import org.apache.asterix.common.dataflow.ICcApplicationContext;
@@ -40,6 +41,7 @@
 import org.apache.hyracks.control.cc.ClusterControllerService;
 import org.apache.hyracks.control.cc.NodeControllerState;
 import org.apache.hyracks.control.cc.cluster.INodeManager;
+import org.apache.hyracks.util.Span;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;

@@ -122,17 +124,16 @@
                         throw new 
RuntimeDataException(ErrorCode.ILLEGAL_STATE, "unable to send sync message to " 
+ nc);
                     }
                 }
-                long time = System.currentTimeMillis();
+                Span span = Span.start(timeout, TimeUnit.MILLISECONDS);
                 while (pair.getLeft().getValue() > 0) {
-                    try {
-                        pair.wait(timeout);
-                    } catch (InterruptedException e) {
-                        Thread.currentThread().interrupt();
-                        throw HyracksDataException.create(e);
-                    }
-                    if (System.currentTimeMillis() - time > timeout && 
pair.getLeft().getValue() > 0) {
+                    if (span.elapsed()) {
                         throw new 
RuntimeDataException(ErrorCode.NC_REQUEST_TIMEOUT, timeout / 1000);
                     }
+                    try {
+                        span.wait(pair);
+                    } catch (InterruptedException e) {
+                        throw HyracksDataException.create(e);
+                    }
                 }
             }
             MutablePair<ResponseState, Object> right = pair.getRight();

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18396
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I19606553af5dde0ed7221563fdb84671ead75881
Gerrit-Change-Number: 18396
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <[email protected]>
Gerrit-MessageType: newchange

Reply via email to