|
170 | 170 | import com.linkedin.venice.exceptions.VeniceException;
|
171 | 171 | import com.linkedin.venice.exceptions.VeniceHttpException;
|
172 | 172 | import com.linkedin.venice.exceptions.VeniceNoStoreException;
|
| 173 | +import com.linkedin.venice.exceptions.VeniceTimeoutException; |
173 | 174 | import com.linkedin.venice.exceptions.VeniceUnsupportedOperationException;
|
174 | 175 | import com.linkedin.venice.helix.HelixReadOnlyStoreConfigRepository;
|
175 | 176 | import com.linkedin.venice.helix.HelixReadOnlyZKSharedSchemaRepository;
|
@@ -729,7 +730,7 @@ private void waitingMessageToBeConsumed(String clusterName, String storeName, lo
|
729 | 730 | "Timed out after waiting for " + waitingTimeForConsumptionMs + "ms for admin consumption to catch up.";
|
730 | 731 | errMsg += " Consumed execution id: " + consumedExecutionId + ", waiting to be consumed id: " + executionId;
|
731 | 732 | errMsg += (lastException == null) ? "" : " Last exception: " + lastException.getMessage();
|
732 |
| - throw new VeniceException(errMsg, lastException); |
| 733 | + throw new VeniceTimeoutException(errMsg, lastException); |
733 | 734 | }
|
734 | 735 |
|
735 | 736 | LOGGER.info("Waiting execution id: {} to be consumed, currently at: {}", executionId, consumedExecutionId);
|
@@ -978,8 +979,13 @@ public void deleteStore(
|
978 | 979 | AdminOperation message = new AdminOperation();
|
979 | 980 | message.operationType = AdminMessageType.DELETE_STORE.getValue();
|
980 | 981 | message.payloadUnion = deleteStore;
|
981 |
| - |
982 |
| - sendAdminMessageAndWaitForConsumed(clusterName, storeName, message); |
| 982 | + // When multiple store deletions happened in a short time range, it is possible that the store deletion message |
| 983 | + // will not be consumed in time, as previous store deletion message is still being processed. |
| 984 | + try { |
| 985 | + sendAdminMessageAndWaitForConsumed(clusterName, storeName, message); |
| 986 | + } catch (VeniceTimeoutException e) { |
| 987 | + LOGGER.warn("Encountering timeout during deleting store: {} from cluster: {}", storeName, clusterName, e); |
| 988 | + } |
983 | 989 |
|
984 | 990 | // Deleting ACL needs to be the last step in store deletion process.
|
985 | 991 | if (store != null) {
|
|
0 commit comments