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]>
