rabbitmq-server
rabbitmq-server copied to clipboard
Remove the old upgrade subsystem
Until RabbitMQ 3.8.0, the Upgrade subsystem was the solution to provide upgrade functions to e.g. change a Mnesia table schema or convert an on-disk file format. It did its magic during node startup. Unfortunately, it meant that the whole cluster would have to be shut down first, then a single node would start, run the upgrade steps and finally the rest of the cluster could start again.
RabbitMQ 3.8.0 introduced the new Feature flags subsystem. It allows to provide compatibility code which knows the old and new thing, whatever that thing is (a new file format, a modified Erlang record, a different protocol between two Erlang processes, etc.). A feature flag is enabled at runtime, which means that the cluster can continue to run meanwhile. There is no need to stop a cluster anymore to upgrade.
The Feature flags subsystem is now heavily used and it's time to get rid of the old Upgrade subsystem. That's ok to do it now because starting with RabbitMQ 3.11.0, a cluster can only be upgraded from 3.9.x. Cluster running older versions will have to upgrade to RabbitMQ 3.9.x or 3.10.x before jumping to 3.11.x+.
This patch removes the following things:
- the Upgrade subsystem itself
- the upgrade functions
- the upgrade-specific log file