-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Do not fail on bind/unbind operations if the binding records are inconsistent. #1884
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
Conversation
…nsistent. If there is a record for the rabbit_durable_route table but no record for rabbit_route table, the binding operations should still proceed to create/remove bindings. This will allow the clients to fix data inconsistency that server did not fix during recovery. [#163952284]
@hairyhum what does "which subscribe to binding actions" mean? If I manually remove a |
@michaelklishin some exchanges have callbacks, which are triggered inside/outside of transaction when a binding added or deleted. I'm not sure if there will not be any side-effects like there were with #1589 Yes, for testing it should be enough to delete |
Older versions still can return binding_not_found error.
Managed to reproduce the
With the same test on this branch I observe no channel exceptions and all binding rows for the queues in question in |
Conducted the above test with non-durable queues (and thus semi-durable bindings) and the outcome is the same 👍. |
There is a concern that this can affect stateful exchange types, namely I could not identify any regressions and the above tests look promising in addressing #1873 at least in part. |
Backported to |
Setting milestone on the PR here because we are not yet ready to consider #1873 resolved (and thus can't know what milestone it should use). |
If there is a record for the rabbit_durable_route table but no record
for rabbit_route table, the binding operations should still proceed to
create/remove bindings. This will allow the clients to fix data inconsistency
that server did not fix during recovery.
[#163952284]
This PR should be tested with exchanges, which subscribe to binding actions.