Return structured gRPC errors on source table missing#4194
Conversation
❌ 2 Tests Failed:
View the top 2 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
🔄 Flaky Test DetectedAnalysis: The e2e test suite timed out at 900.562s (just 0.5s over the 900s limit) on the MariaDB 8.0 matrix job, a classic flaky timeout with no assertion failures. ✅ Automatically retrying the workflow |
🔄 Flaky Test DetectedAnalysis: Two e2e tests failed due to transient "conn closed" postgres connection errors during teardown and under high parallel load (32 concurrent tests, ~760s of 900s timeout), with different tests failing across different matrix configurations — classic flaky infrastructure behavior. ✅ Automatically retrying the workflow |
|
Will add a change to return all missing tables at once, resulting contract might be different |
🔄 Flaky Test DetectedAnalysis: The BigQuery e2e test ✅ Automatically retrying the workflow |
❌ Test FailureAnalysis: Deterministic build failure: |
🔄 Flaky Test DetectedAnalysis: The entire e2e test suite hit the 900s wall-clock timeout ( ✅ Automatically retrying the workflow |
🔄 Flaky Test DetectedAnalysis: The test ✅ Automatically retrying the workflow |
🔄 Flaky Test DetectedAnalysis: TestCancelTableAddition_WithRemoval failed with a Postgres admin_shutdown error (SQLSTATE 57P01) mid-test, indicating a race condition where another parallel test's teardown terminated the catalog connection unexpectedly. ✅ Automatically retrying the workflow |
|
|
||
| // ValidateMirrorSource checks that the source is ready to replicate the configured tables. | ||
| // MUST return *common.SourceTablesMissingError when a mapped source table is absent. | ||
| ValidateMirrorSource(context.Context, *protos.FlowConnectionConfigsCore) error |
There was a problem hiding this comment.
for my understanding, what's the reason for not just changing the return type here to *common.SourceTablesMissingError
There was a problem hiding this comment.
nvm, i see that the function can return other types of errors as well.
There was a problem hiding this comment.
eventually we will get to a place where we can replace all the error.fmt with structured errors 💪
Helps to unify the handling across connectors and consume on the caller without string matching.
Also clean up unused api error and move string constants to pkg. Would be nicer to have everything in protos but string constants are not supported there and not all our constants are uppercase to be enums.