rabbitmq-server icon indicating copy to clipboard operation
rabbitmq-server copied to clipboard

rabbit_feature_flags: Enable required feature flags during sync

Open dumbbell opened this issue 1 year ago • 0 comments

Why

Before this patch, required feature flags were basically checked during boot: they must have been enabled when they were mere stable feature flags. If they were not, the node refused to boot.

This was easy for the developer because making a feature flag required allowed to remove the entire compatibility code. Very satisfying.

Unfortunately, this was a pain point to end users, especially those who did not pay attention to RabbitMQ and the release notes and were just asking their package manager to update everything. They could end up with a node that refuse to boot. The only solution was to downgrade, enable the disabled stabte feature flags, upgrade again.

How

This patch removes the check and handle required feature flags like any other stable feature flags, except that they are forcibly enabled during boot.

This is done when the cluster feature flags states are verified and synchronized. If a required feature flag is not enabled yet, it is enabled at that time.

This means that as developers, we will have to keep compatibility code forever, like the required feature flag definition itself.

dumbbell avatar Oct 07 '24 16:10 dumbbell