Wenzhe Zhou has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/21480


Change subject: IMPALA-13134: DDL hang with SYNC_DDL enabled when Catalogd is 
changed to standby status
......................................................................

IMPALA-13134: DDL hang with SYNC_DDL enabled when Catalogd is changed to 
standby status

Catalogd waits for SYNC_DDL version when it processes a DDL with
SYNC_DDL enabled. If the status of Catalogd is changed from active to
standby when CatalogServiceCatalog.waitForSyncDdlVersion() is called,
the standby catalogd does not receive catalog topic updates from
statestore, hence catalogd thread waits indefinitely.

This patch fixed the issue by re-generating service id when Catalogd
is changed to standby status and throwing exception if its service id
has been changed when waiting for SYNC_DDL version.

Testing:
 - Added unit-test code for CatalogD HA to run DDL with SYNC_DDL enabled
   and injected delay when waiting SYNC_DLL version, then verify that
   DDL query fails due to catalog failover.
 - Passed test_catalogd_ha.py.

Change-Id: I2dcd628cff3c10d2e7566ba2d9de0b5886a18fc1
---
M be/src/catalog/catalog-server.cc
M be/src/util/backend-gflag-util.cc
M common/thrift/BackendGflags.thrift
M fe/src/main/java/org/apache/impala/catalog/CatalogServiceCatalog.java
M fe/src/main/java/org/apache/impala/service/BackendConfig.java
M fe/src/main/java/org/apache/impala/util/DebugUtils.java
M tests/custom_cluster/test_catalogd_ha.py
7 files changed, 73 insertions(+), 0 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/80/21480/2
--
To view, visit http://gerrit.cloudera.org:8080/21480
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I2dcd628cff3c10d2e7566ba2d9de0b5886a18fc1
Gerrit-Change-Number: 21480
Gerrit-PatchSet: 2
Gerrit-Owner: Wenzhe Zhou <[email protected]>

Reply via email to