Bharath Vissapragada has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/11638


Change subject: IMPALA-7669: Gracefully handle concurrent invalidate/partial 
fetch RPCs
......................................................................

IMPALA-7669: Gracefully handle concurrent invalidate/partial fetch RPCs

The bug here was that any partial RPC on an IncompleteTable was throwing
an NPE.

Ideally, we attempt to load the table (if we find that it is not loaded)
before making the partial info request, but a concurrent invalidate could
reset the table state and move it back to an uninitialized state.

This patch handles this case better by propagating a meaningful error to
the caller.

Testing:
-------
- I was able to repro the bug by running invalidate metadata and DDLs in
  a tight loop in parallel shells. Without the patch I see the NPEs and
  with the patch I can see the exception being propagated.

- It is tricky to repro this in a test since any getPartialInfo()
  request attempts to reload the table if it is in an incomplete state.
  We need some tight loops that invalidate metadata in parallel.

Change-Id: I8533f73f25ca42a20f146ddfd95d4213add9b705
---
M fe/src/main/java/org/apache/impala/catalog/IncompleteTable.java
1 file changed, 9 insertions(+), 0 deletions(-)



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

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I8533f73f25ca42a20f146ddfd95d4213add9b705
Gerrit-Change-Number: 11638
Gerrit-PatchSet: 1
Gerrit-Owner: Bharath Vissapragada <[email protected]>

Reply via email to