You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by sa...@apache.org on 2017/05/23 18:24:58 UTC

[3/4] incubator-impala git commit: IMPALA-5349: flaky NoDirsAllocationError test

IMPALA-5349: flaky NoDirsAllocationError test

The assertion was incorrect and racy - it is ok if the write error wins
the race with the Unpin() calls, causing them to fail.

Change-Id: I023193b9ad6c6ac0ee114ad77ddf04d7d7185809
Reviewed-on: http://gerrit.cloudera.org:8080/6953
Reviewed-by: Henry Robinson <he...@cloudera.com>
Reviewed-by: Dan Hecht <dh...@cloudera.com>
Tested-by: Impala Public Jenkins


Project: http://git-wip-us.apache.org/repos/asf/incubator-impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-impala/commit/6a31d355
Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/6a31d355
Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/6a31d355

Branch: refs/heads/master
Commit: 6a31d355b02cbd147d4cf5f7faadfca01d328563
Parents: 21f9063
Author: Tim Armstrong <ta...@cloudera.com>
Authored: Mon May 22 12:05:59 2017 -0700
Committer: Impala Public Jenkins <im...@gerrit.cloudera.org>
Committed: Tue May 23 02:32:33 2017 +0000

----------------------------------------------------------------------
 be/src/runtime/buffered-block-mgr-test.cc | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/6a31d355/be/src/runtime/buffered-block-mgr-test.cc
----------------------------------------------------------------------
diff --git a/be/src/runtime/buffered-block-mgr-test.cc b/be/src/runtime/buffered-block-mgr-test.cc
index b8b90ee..cb294c2 100644
--- a/be/src/runtime/buffered-block-mgr-test.cc
+++ b/be/src/runtime/buffered-block-mgr-test.cc
@@ -1234,10 +1234,10 @@ TEST_F(BufferedBlockMgrTest, NoDirsAllocationError) {
   ErrorLogMap error_log;
   runtime_state->GetErrors(&error_log);
   ASSERT_TRUE(error_log.empty());
-  for (int i = 0; i < blocks.size(); ++i) {
-    // Writes won't fail until the actual I/O is attempted.
-    ASSERT_OK(blocks[i]->Unpin());
-  }
+  // Unpin the blocks. Unpinning may fail if it hits a write error before this thread is
+  // done unpinning.
+  vector<TErrorCode::type> cancelled_code = {TErrorCode::CANCELLED};
+  UnpinBlocks(blocks, &cancelled_code);
 
   LOG(INFO) << "Waiting for writes.";
   // Write failure should cancel query.