rabbitmq / rabbitmq-server

Open source RabbitMQ: core server and tier 1 (built-in) plugins
https://www.rabbitmq.com/
Other
12.31k stars 3.92k forks source link

rabbitmq_ct_helpers: Change how Mnesia/Khepri is selected #12737

Open dumbbell opened 6 days ago

dumbbell commented 6 days ago

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.