-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Perform definition import after plugins are enabled #2384
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
This way definitions that depend on a plugin, such as federation upstreams or exchanges of custom types, can be imported successfully. Closes #2384
…d on boot This is a behavior we use to provide because definitions were imported before the empty DB boot step. Now when the definitions are imported in the post-launch phase, we'd always end up with default data seeded in addition to definitions being imported. References #2384
@tbnguyen1407 please provide complete instructions for how to reproduce, including a definitions file that will reproduce the issue. We don't have time to guess. Thank you. |
@tbnguyen1407 this does work for the consistent hash exchange plugin. In fact, this plugin was specifically affected by certain boot path refactoring in I can do another test but you have provided no details of what you actually did. Very likely you are using docker-library/rabbitmq#429 and docker-library/rabbitmq#430 provide some details on the difference between the two. |
@michaelklishin yes seem I missed the new "load_definitions". It can work now. Thank you. |
Fixes #7678 References: * #2384 * #2396 PR #2396 preserved the old behavior where definitions import took priority over the default data and environment data that may be present. This behavior continues to confuse users where they expect `RABBITMQ_DEFAULT_USER` / `RABBITMQ_DEFAULT_PASS` to be imported, especially if there is no `users` data in the definitions file. This PR allows default data and the environment to be imported first, then possibly overwritten by the definitions file.
Currently there is a chicken-and-egg problem triangle between
which can be problematic when definitions related to or dependent on plugins are involved, e.g. an exchange of a custom plugin-provided type.
We can potentially untangle this with a few low risk changes:
load_definitions
is configuredWhile definitions can be imported at any point after node startup, it would be convenient for Shovel and custom exchange type users if this limitation of
load_definitions
was lifted.See #2381 for the background.
The text was updated successfully, but these errors were encountered: