Repository navigation
Conversation
Bumps [github.com/rabbitmq/amqp091-go](https://github.com/rabbitmq/amqp091-go) from 1.13.0 to 1.15.0. - [Release notes](https://github.com/rabbitmq/amqp091-go/releases) - [Changelog](https://github.com/rabbitmq/amqp091-go/blob/main/CHANGELOG.md) - [Commits](rabbitmq/amqp091-go@v1.13.0...v1.15.0) --- updated-dependencies: - dependency-name: github.com/rabbitmq/amqp091-go dependency-version: 1.15.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
…fication-queue-shutdown-race # Conflicts: # go.mod
…down When the notification processor is stopped, the done channel is closed followed by the queue channel. A processor waiting in Next could then randomly receive the zero value of the closed queue channel and mistake it for a real nil notification, running the ProcessHandler during shutdown. Every out-of-sync notification the handler tried to queue then failed with "processor was stopped", which surfaced as intermittent "failed to queue notification" errors in the aggregate projector integration tests. Next now checks whether the queue was closed after each receive and always reports the processor as stopped, so no handler runs after shutdown begins. A regression test covers both the shutdown and the normal nil-delivery paths. Assisted-by: Crush:zai-org/GLM-5.3
This branch has not been deployed
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.
Summary
github.com/rabbitmq/amqp091-gofrom 1.13.0 to 1.15.0 (carries over dependabot branch, now merged with current master)TestAggregateProjectorSuite/AdvisoryLock/TestRunintegration test failure that broke CI for the dependabot branchRoot cause
When the background notification processor shuts down, it closes the
donechannel and then the queue channel. A processor goroutine waiting inNotificationQueue.Nextcould then randomly pick the closed queue channel in itsselect, receive the channel's zero value (nil), and mistake it for a legitimate "trigger out-of-sync projections" notification. Each phantom handler then failed to queue its notifications ("processor was stopped"), producing the alternatingfailed to queue notification/the ProcessHandler produced an errorlog pairs the suite flags as errors — while the projections themselves still converged, so the test only failed on its no-error-logs assertion, and only on some runners/Go versions.Fix
Nextnow verifies after every receive that the queue was not closed, and always reportsstoppedso no handler runs after shutdown begins. A unit test covers both the shutdown path (which fails without the fix) and normal nil delivery.Verification
make test-unit,make test-examplesgreen-race(projector suites additionally run 10x)Supersedes #115.
💘 Generated with Crush