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

Post-4.0.5: rabbitmq_ct_helpers: Change how Mnesia/Khepri is selected #12737

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

dumbbell
Copy link
Member

Why

Once khepr_db is enabled by default, we need another way to disable it to select Mnesia instead.

How

We use the new relative forced feature flags mechanism to indicate if we want to explicitly enable or disable khepri_db. This way, we don't touch other stable feature flags and only mess with Khepri.

However, this mechanism is not supported by RabbitMQ 4.0.x and older. They will ignore the setting. Therefore, to make this work in mixed-version testing, after a node has been started, we try to enable khepri_db if we detect that it doesn't support this mechanism.

At the end, we compare the effective metadata store to the expected one. If they don't match, we skip the test.

While here, change rjms_topic_selector_SUITE to only choose Khepri without specifying any feature flags.

@dumbbell dumbbell self-assigned this Nov 15, 2024
@dumbbell dumbbell force-pushed the improve-metadata-store-selection-in-rabbitmq_ct_helpers branch 6 times, most recently from bcec955 to 1b5b125 Compare November 22, 2024 12:07
@dumbbell dumbbell force-pushed the improve-metadata-store-selection-in-rabbitmq_ct_helpers branch from 24237cf to 55587eb Compare November 25, 2024 15:42
@dumbbell dumbbell force-pushed the improve-metadata-store-selection-in-rabbitmq_ct_helpers branch 8 times, most recently from ed7d063 to 764a32f Compare November 29, 2024 10:26
[Why]
Once `khepr_db` is enabled by default, we need another way to disable it
to select Mnesia instead.

[How]
We use the new relative forced feature flags mechanism to indicate if we
want to explicitly enable or disable `khepri_db`. This way, we don't
touch other stable feature flags and only mess with Khepri.

However, this mechanism is not supported by RabbitMQ 4.0.x and older.
They will ignore the setting. Therefore, to make this work in
mixed-version testing, we set the `$RABBITMQ_FEATURE_FLAGS` variable for
the secondary umbrella. This part will go away once we test against
RabbitMQ 4.1.x as the secondary umbrella in the future.

At the end, we compare the effective metadata store to the expected one.
If they don't match, we skip the test.

While here, change `rjms_topic_selector_SUITE` to only choose Khepri
without specifying any feature flags.
... instead of 4.0.3.

[Why]
We need the following bugfixes:
* one in the Khepri reset code backported in #12739 and published in
  RabbitMQ 4.0.4.
* one in the quorum queue code backported in #12850 and published in
  RabbitMQ 4.0.5.
@dumbbell dumbbell force-pushed the improve-metadata-store-selection-in-rabbitmq_ct_helpers branch from 764a32f to 7aa5975 Compare November 29, 2024 11:39
@dumbbell
Copy link
Member Author

dumbbell commented Nov 29, 2024

This pull request depends on the release of RabbitMQ because it needs the following fixes already backported to v4.0.x:

@michaelklishin michaelklishin changed the title rabbitmq_ct_helpers: Change how Mnesia/Khepri is selected Post-4.0.5: rabbitmq_ct_helpers: Change how Mnesia/Khepri is selected Nov 29, 2024
@michaelklishin michaelklishin modified the milestones: 4.0.6, 4.1.0 Nov 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

Successfully merging this pull request may close these issues.

2 participants