Open
Conversation
The benthos framework can call Connect() concurrently or re-enter it before the background goroutine has stopped. Without a guard, two goroutines share the same publisher and checkpoint tracker, corrupting state and causing the streaming phase to hang indefinitely. Add a mutex and a HasStoppedChan check so that a second Connect() is a no-op while the previous goroutine is still running. Fixes CON-389
The CDC capture agent in SQL Server under x86 emulation on Apple Silicon is too slow to process streaming inserts within the test timeout, especially with 3 parallel subtests each spinning up their own container. - Add WaitForCDCChanges helper that polls CDC change tables until the expected row count appears, replacing fixed time.Sleep(5s) - Reduce streaming insert count from 3000 to 30 (snapshot already validates volume at 3000 rows) - Wait for CDC to process streaming inserts before asserting Fixes CON-414
Same CDC agent slowness issue as CON-414. The test inserts rows and expects them via pure CDC streaming, but under emulation the capture agent is too slow. - Reduce rows per phase from 1000 to 100 - Wait for CDC to process inserts before starting the stream - Remove fixed time.Sleep in favor of deterministic CDC polling Fixes CON-382
When StopWithin cancels the resume stream context, Run returns context.Canceled. Match the first launch's handling so the goroutine does not fail the test on expected shutdown. Fixes CON-437
The CDC checkpoint cache stored LSNs in a varchar(100) column. When writing a []byte to a varchar, go-mssqldb performs an implicit binary-to-hex-string conversion (e.g. "0x0000002d00000bc3b80003"), so reads returned the ASCII representation of the LSN rather than the original binary value. On resume, those ASCII bytes were passed as a varbinary parameter to the change-table query and, starting with 0x30, sorted above any real LSN (which starts with 0x00), leaving the stream spinning with no rows matched. Change the cache column and stored procedure parameter to varbinary(10) so the driver transfers the LSN as-is. Fixes CON-382
The ordering-of-iterator test's background goroutine called t.Error if stream.Run returned a non-context.Canceled error. When the test failed early or timed out, the goroutine could still be running and fire t.Error after the test function had returned, panicking and surfacing as an unnamed package-level event. Park the Run error on a buffered channel and drain it in t.Cleanup (after calling StopWithin), so late errors are reported against the still-active test instead of a completed one. Fixes CON-383
|
Commits Review LGTM |
squiidz
approved these changes
May 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Commits
Jira