-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
Infinite loop in synchronization of priority queues #802
Comments
This bug happens with persistent queues and can be reproduced by constantly re-applying the HA policy, as it causes queues to be started/stopped. It does not happen on its own, but as a consequence of other bugs that do not allow queues to clear up their state (index folder and journal stay on disk). In
During initialization, this check fails https://github.com/rabbitmq/rabbitmq-server/blob/stable/src/rabbit_queue_index.erl#L281 as the directory exists on disk. This can be reproduced quickly with queues with large priorities (i.e. 256), but takes longer to happen with small priorities (i.e 5) and could not reproduce it with normal queues. The issue comes from the async stop/start of the queues, as the initialization of the queues can overlap with At the same time, I believe that unrelated to the previous issues, I'm getting this error:
I will investigate later if it is independent and then create a new issue for it. I'm also getting:
which seems to be #545 and the next one which may be another manifestation of it:
|
The branch https://github.com/rabbitmq/rabbitmq-server/commits/rabbitmq-server-802 contains now two patches. The The
This needs to be solved before the patch is merged. A fix for this will solve part of #545. |
These bugs seems to be solved with the following patches, not able to reproduce in
The rationale behind the last one: |
This crash generates an infinity loop in the synchronization of priority queues
Found while reproducing #687
The text was updated successfully, but these errors were encountered: