kamcheungting-db opened a new pull request, #890: URL: https://github.com/apache/iceberg-cpp/pull/890
First real adoption of the logging component (added in #722–#726) in the commit path. `Transaction::Commit()` runs through a retry runner but was **completely silent** — operators had no way to tell whether a commit was retrying on a transient conflict or had failed permanently. This adds targeted, low-noise logging there (and nowhere else — scope is deliberately just the commit-retry path): - **WARN** on each genuine retry, carrying the prior error. The retry runner only re-invokes the task when it has decided to retry, so `attempt > 1` inside the task marks a real retry (no false "retrying" on non-retryable errors or timeouts). - **INFO** when a commit finally succeeds after more than one attempt. - **ERROR** when retries are exhausted, with the attempt count and final error. No change to the generic `util/retry_util` (kept backend-agnostic); all logging lives at the commit call site. **Tests** (`TransactionRetryTest`, reusing the existing `MockCatalog` conflict scaffolding, with a `CapturingLogger` installed via `ScopedDefaultLogger`): - `CommitRetryEmitsRetryAndSuccessLogs` — retry-then-succeed asserts the retry WARN (with the prior error) and the success INFO. - `CommitRetryExhaustedEmitsErrorLog` — always-conflict asserts the exhaustion ERROR (attempt count + final error) and the per-retry WARNs. This pull request and its description were written by Isaac. -- 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]
