Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AMQ-9625 - Prevent queue messages from becoming stuck #1355

Merged
merged 1 commit into from
Nov 21, 2024

Conversation

cshannon
Copy link
Contributor

@cshannon cshannon commented Nov 20, 2024

Fixes a race condition bug that can lead to a message being missed on dispatch and stuck on a Queue until restart when caching and concurrentStoreAndDispatch are enabled on a Queue and the cache becomes disabled.

This is pretty much impossible to reproduce or test in a unit test so there's no test for this but the risk of breaking anything is very low because all this is doing is just waiting for the future to complete to ensure the task finishes before we continue.

For a detailed description of the problem see https://issues.apache.org/jira/browse/AMQ-9625

@cshannon cshannon self-assigned this Nov 20, 2024
@cshannon cshannon requested a review from mattrpav November 20, 2024 17:31
@cshannon cshannon force-pushed the AMQ-9625 branch 2 times, most recently from 4ab130b to 4b641ee Compare November 20, 2024 18:59
@cshannon
Copy link
Contributor Author

I updated the PR slightly as we needed the check/wait for the async to be done not only when the store is being synced, but also for any outstanding in flight async messages that were in progress by other threads when the mode switched.

Fixes a race condition bug that can lead to a message being missed on
dispatch and stuck on a Queue until restart when caching and
concurrentStoreAndDispatch are enabled on a Queue and the cache becomes
disabled.
@cshannon
Copy link
Contributor Author

I'm going to go ahead and merge this as it is low risk (we are just waiting on the pending writes so messages become sync) and it's nearly impossible to write a test case for it. In my testing it has shown some promising results but if the issue re-occurs another Jira can be opened as a follow up.

@cshannon cshannon merged commit bd91d97 into apache:main Nov 21, 2024
1 check passed
@cshannon cshannon deleted the AMQ-9625 branch November 21, 2024 14:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants