Ben-Zvi opened a new pull request #1373: DRILL-6517: Hash-Join: If not OK, exit 
early from prefetchFirstBatchFromBothSides
URL: https://github.com/apache/drill/pull/1373
 
 
    When a running query is cancelled (e.g., when Disk is full while spilling), 
many next() calls return a STOP outcome. Any Hash-Join that is "sniffing" its 
incoming batches (by repeatedly calling next()) would proceed to update the 
memory manager regardless of the outcomes returned.
      In some abnormal outcomes (like STOP), the batch's container is **not 
initialized**. The update call needs the batch's row count, which for 
*RemovingRecordBatch* is implemented (differently) by invoking the container's 
getRowCount() -- so in this case the call fails.
     The Fix: Move all the checks for the abnormal conditions immediately after 
the "sniffing", thus returning early and avoiding the update of the memory 
manager.
     Longer term question: How to implement getRowCount() for the record batch 
consistently.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to