The GitHub Actions job "Backport Auto Label" on texera.git/refactor/shared-retry-util has succeeded. Run started by GitHub user aglinxinyuan (triggered by aglinxinyuan).
Head commit for run: 45d0401babf1ed41bb34e53ee94619ed80b5770a / Xinyuan Lin <[email protected]> refactor(common): host one exponential-backoff retry in common/util The same doubling-backoff loop was written three times: the async one in amber's Utils, plus two structurally identical blocking copies in LakeFSStorageClient and FileService that no module could share because amber's Utils sits above them in the module graph. Add a dependency-free `common/util` module with `RetryUtil.withBackoff` and point both blocking copies at it. The util owns the attempt counting, the doubling, what counts as transient (NonFatal), interrupt fail-fast with the interrupt status restored, and the message wording; callers pass a verb-phrase description and log retries through their own logger via the `onRetry` hook, so warnings stay attributed to the caller. This also fixes a hole in the LakeFS copy: its `sleep` call sat inside the `catch` block, so an interrupt raised while waiting escaped raw with the interrupt flag left cleared. FileService's copy already handled that; the shared util keeps the better behavior for both. The module is deliberately dependency-free -- everything depends on it, so anything added there lands on every service's classpath. That is also why the non-blocking variant stays in amber: it needs com.twitter:util-core, which only amber declares. The two now cross-reference each other. Closes #7095 Report URL: https://github.com/apache/texera/actions/runs/30517517383 With regards, GitHub Actions via GitBox
