tanmayrauth commented on PR #1655:
URL: https://github.com/apache/iceberg-go/pull/1655#issuecomment-5222273908
Thanks @zeroshade for the review.
Auth deadline. Since TokenSource.Token() takes no context, I bounded auth
two ways rather than threading the per-report deadline through it (which would
need either a cache-losing reconstruction or the goroutine wrapper you
flagged): an optional ContextAuthManager that sessionTransport prefers, and a
Timeout on the built-in OAuth refresh client. A stalled token endpoint now
fails within that timeout instead of hanging. One residual, documented
in-code: a refresh in flight is bounded by the OAuth timeout, not the shorter
per-report deadline, so Close can return before that worker's auth attempt
finishes. It's bounded, not infinite. Happy to make the timeout configurable
if you'd prefer.
Drop logging. Off the caller's goroutine now — submit bumps an atomic
counter, and a dispatcher-owned goroutine emits a single aggregated,
rate-limited warning for drops and failures. Also Close is one-shot (sync.Once
+ shared channel); Report queues context.WithoutCancel(ctx) to preserve values;
the canonical enablement key wins when present; and failed-report detail (which
carries the URL) is now at Debug, with only aggregate counts at Warn.
Tests added for auth forwarding, per-report credential re-fetch, the
ContextAuthManager preference, context-value propagation, non-blocking drops,
the aggregated warning, idempotent Close, and the real path composition with a
multi-level namespace. -race -count=3 clean, lint 0.
The "table-response cannot enable" case is currently pinned by a unit-level
invariant plus the existing precedence test; let me know if you'd like the full
LoadTable version.
--
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]