-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Plugins are set up too late for custom exchange types #2381
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
Comments
So the sequence of events starting with
|
In this particular case it was easy enough to make the plugin itself recover its state => closing this for now. This is a fundamental chicken-and-egg problem that will affect plugins that depend on the state of the topology in the future, so perhaps investigating a more fundamental solution would be worth our time. |
@michaelklishin does this affect the delayed message exchange? |
As far as I can tell, it does not: that plugin stores its state in a local Mnesia table and does not reconstruct it using |
Hello this seems does not fix loading x-consistent-hash exchange type from load_definitions or management.load_definitions (error invalid exchange type). The plugin boot step happens after definitions are loaded. Anyway to workaround this? |
@tbnguyen1407 the chicken-and-egg problem of definition load, default data seeding and plugin activation is not a new problem and it affects more than just custom exchange types. Definitions can be imported at any time after the node is fully booted. |
Addressed in #2384 which will ship in |
Custom exchange types may need to re-populate their state during binding recovery (consistent hashing exchange is one example) and starting with
3.8.4
, plugin activation happens too lateso said exchanges are skipped:
This means that consistent hashing ring is not repopulated for durable consistent hashing exchanges, and such exchanges do not route any published messages as a result.
The text was updated successfully, but these errors were encountered: