amogh-jahagirdar commented on code in PR #14824:
URL: https://github.com/apache/iceberg/pull/14824#discussion_r2614389163


##########
core/src/main/java/org/apache/iceberg/rest/ScanTaskIterable.java:
##########
@@ -240,10 +239,14 @@ public void close() {
     }
 
     private boolean isDone() {
-      return taskQueue.isEmpty()
+      // Reorder the conditions to make sure TaskQueue is empty is checked 
last.

Review Comment:
   +1, code comments should be able to stand on their own without readers 
needing to implicitly have the historical context . I'd just remove this first 
sentence



##########
core/src/main/java/org/apache/iceberg/rest/ScanTaskIterable.java:
##########
@@ -240,10 +239,14 @@ public void close() {
     }
 
     private boolean isDone() {
-      return taskQueue.isEmpty()
+      // Reorder the conditions to make sure TaskQueue is empty is checked 
last.
+      // It may happen that a worker is about to add a new task to the queue, 
but before
+      // that happens, taskQueue.isEmpty() is checked then it completes fast 
before the
+      // activeWorker is decremented. This would lead to a false negative.
+      return activeWorkers.get() == 0
           && planTasks.isEmpty()
-          && activeWorkers.get() == 0
-          && initialFileScanTasks.isEmpty();
+          && initialFileScanTasks.isEmpty()
+          && taskQueue.isEmpty();

Review Comment:
   I'll need to think more about this...anytime we have to rely on some 
specific ordering I get a bit worried about the invariants we're trying to set 
don't always hold true or are brittle to future changes



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to