Tim Armstrong has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/9401


Change subject: IMPALA-6564: avoid scanner thread race leading to query failure
......................................................................

IMPALA-6564: avoid scanner thread race leading to query failure

Scanner threads can start running while initial ranges are still being
issued. It is possible that all ranges will be done before all the
initial ranges are issued. In that case, a scanner thread may notice
completion and call SetDone(), which cancels the ReaderContext. This can
cause adding new scan ranges to fail with status CANCELLED.

This scenario is most common when all files are pruned so the scan
finishes very quickly.

This is a minimal fix to the problem that detects this scenario and
does not propagate the status. Ideally we would refactor the
interaction between the threads to be easier to understand.

Testing:
I could reproduce this fairly easily with test_basic_filters on my
scanner buffer pool feature branch. Ran that test in a loop for a while
to make sure it didn't reproduce.

Change-Id: If1a17b8a3586a2f41988f3da673addf2b4565408
---
M be/src/exec/hdfs-scan-node-base.h
M be/src/exec/hdfs-scan-node.cc
2 files changed, 14 insertions(+), 2 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/01/9401/1
--
To view, visit http://gerrit.cloudera.org:8080/9401
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: If1a17b8a3586a2f41988f3da673addf2b4565408
Gerrit-Change-Number: 9401
Gerrit-PatchSet: 1
Gerrit-Owner: Tim Armstrong <tarmstr...@cloudera.com>

Reply via email to