You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu> on 2026/09/22 18:28:16 UTC

[L] Change in asterixdb[master]: [ASTERIXDB-3882][HYR][CLOUD] Fix cloud retry and logging

From Hussain Towaileb <hu...@gmail.com>:

Attention is currently required from: Hussain Towaileb, Michael Blow, Murtadha Hubail, Ritik Raj.

Hello Anon. E. Moose #1000171, Jenkins, Michael Blow, Murtadha Hubail, Ritik Raj, 

I'd like you to reexamine a change. Please visit

    https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21857?usp=email

to look at the new patch set (#4).

The following approvals got outdated and were removed:
Contrib-2 by Anon. E. Moose #1000171, Integration-Tests+1 by Jenkins


Change subject: [ASTERIXDB-3882][HYR][CLOUD] Fix cloud retry and logging
......................................................................

[ASTERIXDB-3882][HYR][CLOUD] Fix cloud retry and logging

AzureException was missing from the retry loop's catch clause, so a
failure raised by the Azure SDK propagated on its first attempt while
the equivalent AWS and Google failures were retried ten times with
backoff. The block staging path compounded this by re-wrapping the SDK
failure in a plain RuntimeException, which escaped the loop whatever the
clause caught; that method already declares HyracksDataException, so the
wrapper was never needed.

Neither failing exit from the loop recorded the exception: exhausting
the retry budget logged a message at debug level, and a failure the
retry predicate rejected logged nothing at all. Both now log it, while
interruption stays at debug since cancellation is routine rather than a
defect.

The Azure object-not-found predicate read the error code, which is null
whenever the service omits the x-ms-error-code header, so it threw an
unrelated exception in place of the failure it was asked to classify. It
now matches on the status the way the Google predicate does, which also
covers a missing container; the same null-unsafe comparison is corrected
where the client maps a missing blob to an empty result.

Added test coverage for the not-found predicate, and for Azure and AWS
failures entering the retry loop.

Ext-ref: MB-74100
Co-Authored-By: Claude Opus 5 <no...@anthropic.com>
Change-Id: I57da4b1575c74b7fbfc7dad64274c77c16580bfb
---
M asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/azure/blobstorage/AzBlobStorageBufferedWriter.java
M asterixdb/asterix-cloud/src/main/java/org/apache/asterix/cloud/clients/azure/blobstorage/AzBlobStorageCloudClient.java
A asterixdb/asterix-cloud/src/test/java/org/apache/asterix/cloud/clients/azure/blobstorage/AzBlobStorageNotFoundTest.java
M hyracks-fullstack/hyracks/hyracks-cloud/pom.xml
M hyracks-fullstack/hyracks/hyracks-cloud/src/main/java/org/apache/hyracks/cloud/util/CloudRetryableRequestUtil.java
A hyracks-fullstack/hyracks/hyracks-cloud/src/test/java/org/apache/hyracks/cloud/util/CloudRetryableRequestUtilTest.java
M hyracks-fullstack/pom.xml
7 files changed, 252 insertions(+), 20 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/57/21857/4
-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21857?usp=email
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings?usp=email

Gerrit-MessageType: newpatchset
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I57da4b1575c74b7fbfc7dad64274c77c16580bfb
Gerrit-Change-Number: 21857
Gerrit-PatchSet: 4
Gerrit-Owner: Hussain Towaileb <hu...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Hussain Towaileb <hu...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-Reviewer: Ritik Raj <ri...@couchbase.com>
Gerrit-CC: Ian Maxon <im...@apache.org>
Gerrit-Attention: Murtadha Hubail <mh...@apache.org>
Gerrit-Attention: Michael Blow <mb...@apache.org>
Gerrit-Attention: Ritik Raj <ri...@couchbase.com>
Gerrit-Attention: Hussain Towaileb <hu...@gmail.com>