Impala Public Jenkins has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/11283 )

Change subject: IMPALA-7402: fix DCHECK when releasing reservation in scan
......................................................................

IMPALA-7402: fix DCHECK when releasing reservation in scan

The bug is that ScannerContext::Stream::GetNextBuffer(), when
reading past the end of a scan range and ScanRange::GetNext()
returned cancelled, did not wait for buffers owned by the
scan range to be freed. Subsequent code assumes that all
buffers allocated by the scanner are freed after
HdfsScanner::Close() returns, but this was not guaranteed.

The fix is to strengthen the post-condition of ScanRange::GetNext() so
that buffers are guaranteed to be returned when GetNext() returns
CANCELLED.

Testing:
Added a unit test that tests the new invariant.

Manually tested that this fixed the regression by inserting a 10ms sleep
in BufferPool::FreeBuffer() and looping the test that failed.

Ran DiskIoMgrStressTest overnight and ran core tests.

Change-Id: I445d306de0c6bfb71359100de2fdf3cd4326f6d9
Reviewed-on: http://gerrit.cloudera.org:8080/11283
Reviewed-by: Impala Public Jenkins <impala-public-jenk...@cloudera.com>
Tested-by: Impala Public Jenkins <impala-public-jenk...@cloudera.com>
---
M be/src/runtime/io/disk-io-mgr-test.cc
M be/src/runtime/io/request-ranges.h
M be/src/runtime/io/scan-range.cc
3 files changed, 62 insertions(+), 7 deletions(-)

Approvals:
  Impala Public Jenkins: Looks good to me, approved; Verified

-- 
To view, visit http://gerrit.cloudera.org:8080/11283
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: I445d306de0c6bfb71359100de2fdf3cd4326f6d9
Gerrit-Change-Number: 11283
Gerrit-PatchSet: 6
Gerrit-Owner: Tim Armstrong <tarmstr...@cloudera.com>
Gerrit-Reviewer: Bikramjeet Vig <bikramjeet....@cloudera.com>
Gerrit-Reviewer: Dan Hecht <dhe...@cloudera.com>
Gerrit-Reviewer: Impala Public Jenkins <impala-public-jenk...@cloudera.com>
Gerrit-Reviewer: Tim Armstrong <tarmstr...@cloudera.com>

Reply via email to