billoley commented on code in PR #2790:
URL: https://github.com/apache/accumulo/pull/2790#discussion_r912213315


##########
server/tserver/src/main/java/org/apache/accumulo/tserver/scan/LookupTask.java:
##########
@@ -124,20 +127,28 @@ public void run() {
           interruptFlag.set(false);
 
         } catch (IOException e) {
-          log.warn("lookup failed for tablet " + entry.getKey(), e);
+          log.warn("lookup failed for tablet " + extent, e);
           throw new RuntimeException(e);
         }
 
         bytesAdded += lookupResult.bytesAdded;
 
         if (lookupResult.unfinishedRanges.isEmpty()) {
-          fullScans.add(entry.getKey());
+          fullScans.add(extent);
+          // if this extent was previously saved, but now completed then reset 
these values
+          if (partScan != null && partScan.equals(extent)) {
+            partScan = null;
+            partNextKey = null;
+            partNextKeyInclusive = false;
+          }
         } else {
           if (lookupResult.closed) {
-            failures.put(entry.getKey(), lookupResult.unfinishedRanges);
+            failures.put(extent, lookupResult.unfinishedRanges);
           } else {
-            session.queries.put(entry.getKey(), lookupResult.unfinishedRanges);

Review Comment:
   CME occurred the next time iter.next() was called, so the while condition 
would have to allow one more execution.  My theories are:  1) low number of 
yields 2) only one extent 3) yield happens on last extent 4) timeout in while 
coincides with yield



-- 
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]

Reply via email to