huaxingao opened a new pull request, #18213: URL: https://github.com/apache/iceberg/pull/18213
`Tasks.foreach(...).retry(...)` treated every failure as retryable unless it was exactly `UnrecoverableException`. When a job is cancelled, FileIO often wraps `InterruptedException` in `RuntimeException` / `UncheckedIOException`. Iceberg then slept and retried, and the retry could succeed after the caller was already gone (expire-snapshot cleanup is one path that hits this). This change walks the cause chain. If the failure is `InterruptedException`, `InterruptedIOException`, or `ClosedByInterruptException`, do not retry, restore the interrupt flag, and rethrow. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
