Search code examples
rabbitmq

RabbitMQ enagle feature flags before run server


I have tried to start rabbitmq-server after update and got this error.

2023-07-18 14:47:49.621801+03:00 [error] <0.234.0> Feature flags: `classic_mirrored_queue_version`: required feature flag not enabled! It must be enabled before upgrading RabbitMQ.
2023-07-18 14:47:49.627876+03:00 [error] <0.234.0> Failed to initialize feature flags registry: {disabled_required_feature_flag,
2023-07-18 14:47:49.627876+03:00 [error] <0.234.0>                                               classic_mirrored_queue_version}

BOOT FAILED
===========
Error during startup: {error,failed_to_initialize_feature_flags_registry}
2023-07-18 14:47:49.633989+03:00 [error] <0.234.0>
2023-07-18 14:47:49.633989+03:00 [error] <0.234.0> BOOT FAILED
2023-07-18 14:47:49.633989+03:00 [error] <0.234.0> ===========
2023-07-18 14:47:49.633989+03:00 [error] <0.234.0> Error during startup: {error,failed_to_initialize_feature_flags_registry}
2023-07-18 14:47:49.633989+03:00 [error] <0.234.0>

2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>   crasher:
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>     initial call: application_master:init/4
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>     pid: <0.233.0>
CONFIG_FILE=/opt/homebrew/etc/rabbitmq/rabbitmq
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>     registered_name: []
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>     exception exit: {failed_to_initialize_feature_flags_registry,
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>                         {rabbit,start,[normal,[]]}}
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>       in function  application_master:init/4 (application_master.erl, line 142)
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>     ancestors: [<0.232.0>]
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>     message_queue_len: 1
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>     messages: [{'EXIT',<0.234.0>,normal}]
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>     links: [<0.232.0>,<0.44.0>]
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>     dictionary: []
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>     trap_exit: true
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>     status: running
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>     heap_size: 376
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>     stack_size: 28
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>     reductions: 173
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>   neighbours:
2023-07-18 14:47:50.635088+03:00 [error] <0.233.0>
2023-07-18 14:47:50.646529+03:00 [notice] <0.44.0> Application rabbit exited with reason: {failed_to_initialize_feature_flags_registry,{rabbit,start,[normal,[]]}}
Kernel pid terminated (application_controller) ({application_start_failure,rabbit,{failed_to_initialize_feature_flags_registry,{rabbit,start,[normal,[]]}}})

Solutions what I have found in official doc are to use rabbitmqctl or web plugin.

I'm getting an error while I try to work with rabbitmqctl. As I understand, it can't connect to the server and server I can't start until I find a way to add the necessary function flags

$ rabbitmqctl list_feature_flags
Error: {:badrpc, :nodedown}

Solution

  • You must enable all feature flags prior to an upgrade. To resolve your situation:

    • Downgrade to the version of RabbitMQ you were using
    • Enable all feature flags
    • Re-do the upgrade process

    We are working on making feature flag enablement happen automatically - https://github.com/rabbitmq/rabbitmq-server/issues/5212