Repository navigation
Conversation
|
The GCP retry passed on the same commit: 2,229 tests passed, 237 were skipped, and none failed. Both new fused-harness regression cases passed, as did the streaming-insert KMS test that previously received a BigQuery HTTP 500. All current-head checks are now complete: 18 successful and one neutral. |
b93bead to
02e8496
Compare
|
Assigning reviewers: R: @kennknowles for label java. Note: If you would like to opt out of this review, comment Available commands:
The PR bot will only process comments in the main thread (not review comments). |
|
R: @ahmedabu98 |
|
Stopping reviewer notifications for this pull request: review requested by someone other than the bot, ceding control. If you'd like to restart, comment |
b607e9d to
f5dfbd4
Compare
ahmedabu98
left a comment
There was a problem hiding this comment.
This is a good fix for the normal case.
Please look into the case when withErrorHandler is set. When the writer flushes mid-bundle, any downstream error (from success-row propagation) will bubble up past this try-catch and into the try-catch in ConvertMessagesDoFn. The bundle succeeds and whatever row ConvertMessagesDoFn was working on upstream incorrectly goes to the DLQ and never reaches BQ.
I think we should do the same fix in ConvertMessagesDoFn and move .output() outside of the try-catch
|
waiting on author |
Merge current master and retain both release notes. Keep success output outside conversion error handling so fused downstream failures fail the bundle, including when withErrorHandler is enabled.
With success-row propagation enabled, the unsharded BigQuery Storage Write API path can catch exceptions from fused downstream transforms as parsing or conversion errors. A bundle can report success even though a downstream consumer failed. With
withErrorHandler, an unrelated input row can also be sent to the dead-letter output.This change moves successful output outside the parsing and conversion handlers so downstream failures fail the bundle. Actual parsing and conversion errors keep their existing handling. With
STORAGE_API_AT_LEAST_ONCE, retrying a failed bundle can duplicate rows that BigQuery already accepted.The SDK harness regression covers mid-bundle and finish-bundle flushes, with and without an error handler. The targeted GCP tests and Spotless passed locally.
Run the GCP module tests with:
addresses #123orfixes #456).CHANGES.mdwith noteworthy changes.See CONTRIBUTING.md for contribution guidelines.