[Bug 2074309] Re: upgrade 22.04 -> 24.04 won't start due to feature flags

James Olsen 2074309 at bugs.launchpad.net
Wed Sep 11 21:30:26 UTC 2024


Not sure if this should be a new report or added to this one, so I'll
start here and create a new report if directed to.

I am trying to execute do-release-upgrade and I'm getting this error
message:

  Currently, you have RabbitMQ server installed, which is not directly
  upgradable to the newer version. Upgrading may prevent the server
  from starting due to missing feature flags.

I am currently on Ubuntu 22.04.5 LTS and have executed apt update and
upgrade.

My RabbitMQ seems to be the latest RabbitMQ release, according to rabbitmq.com
  sudo rabbitmqctl version 
returns:
  3.13.7

All feature flags are currently enabled except for khepri_db:
  Listing feature flags ...
  name    state
  classic_mirrored_queue_version  enabled
  classic_queue_type_delivery_support     enabled
  detailed_queues_endpoint        enabled
  direct_exchange_routing_v2      enabled
  drop_unroutable_metric  enabled
  empty_basic_get_metric  enabled
  feature_flags_v2        enabled
  implicit_default_bindings       enabled
  khepri_db       disabled
  listener_records_in_ets enabled
  maintenance_mode_status enabled
  message_containers      enabled
  message_containers_deaths_v2    enabled
  quorum_queue    enabled
  quorum_queue_non_voters enabled
  restart_streams enabled
  stream_filtering        enabled
  stream_queue    enabled
  stream_sac_coordinator_unblock_group    enabled
  stream_single_active_consumer   enabled
  stream_update_config_command    enabled
  tracking_records_in_ets enabled
  user_limits     enabled
  virtual_host_metadata   enabled

I'm not sure what exactly the issue is, especially since it seems like
I'm already on the latest version of RabbitMQ. My assumption (like
wrong) is there is an issue with one or more tests in the ubuntu-
release-upgrader.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to ubuntu-release-upgrader in
Ubuntu.
https://bugs.launchpad.net/bugs/2074309

Title:
  upgrade 22.04 -> 24.04 won't start due to feature flags

Status in Release Notes for Ubuntu:
  New
Status in rabbitmq-server package in Ubuntu:
  Confirmed
Status in ubuntu-release-upgrader package in Ubuntu:
  Invalid
Status in rabbitmq-server source package in Noble:
  Confirmed
Status in ubuntu-release-upgrader source package in Noble:
  Fix Released
Status in rabbitmq-server source package in Oracular:
  Confirmed
Status in ubuntu-release-upgrader source package in Oracular:
  Invalid

Bug description:
  [Impact]

  Upgrading systems with rabbitmq-server installed will leave the server
  in a bad state because upgrading directly from the version in Jammy to
  the version in Noble is not supported by upstream rabbitmq-server.

  [Test Plan]

  For now, we add an upgrade quirk to prevent upgrades from Jammy to
  Noble if rabbitmq-server is installed, and provide an brief
  explanation to the user.

  To test:

  1. Create a Jammy container

  $ lxc launch ubuntu:jammy jammy

  2. Install rabbitmq-server

  $ apt install -y rabbitmq-server

  3. Attempt the upgrade

  $ do-release-upgrade -d

  The upgrade should abort with a message explaining why.

  [Impact]

  This quirk uses a common pattern in ubuntu-release-upgrader for
  similar purposes. If the package name was typo'd, it would not work
  correctly.

  [Other information]

  We may eventually need another SRU to revert this change if another
  solution is found.

  [Original Description]

  Hi,

  I was just doing an upgrade from ubuntu 22.04 server to 24.04 server.

  After upgrading, the rabbitmq-server cannot be started anymore.

  Reason:

  See
  https://www.rabbitmq.com/blog/2022/07/20/required-feature-flags-in-rabbitmq-3.11

  Higher versions of rabbitmq require feature flags to be set *before*
  upgrade. In my rabbitmq installation these features had not been set,
  therefore the the rabbitmq server would not start. They ask you to
  downgerade to an earlier version and do the upgrade.

  I therefore used LXD to run a Ubuntu 22.04 machine with rabbitmq 3.9
  to set the missing feature flags and achieved:

  rabbitmqctl  enable_feature_flag all

  rabbitmqctl list_feature_flags
  Listing feature flags ...
  name    state
  implicit_default_bindings       enabled
  maintenance_mode_status enabled
  quorum_queue    enabled
  stream_queue    enabled
  user_limits     enabled
  virtual_host_metadata   enabled

  But it still does not work, it still complains about  one feature
  missing:

  classic_mirrored_queue_version

  unfortunately, this is required by rabbitmq 3.12 coming with Ubuntu
  24.04, but is not known and thus cannot be set by rabbitmq 3.9 coming
  with Ubuntu 22.04.

  Now the problem is: There is no Ubuntu coming with 3.9 or 3.10. Ubuntu
  jumps directly from rabbitmq 3.9 to rabbitmq 3.12, although there is
  no upgrade path from 3.9 to 3.12.

  Three nasty options:

  - loose your data and configuration and run from scratch
  - run an old version in either docker or LXD
  - try some upgrade path with docker/podman and non-ubuntu versions of rabbitmq

  Unfortunately,

  https://hub.docker.com/_/rabbitmq

  does not list versions older than 3.12, but they still seem to be
  available, so this might by some migration/workaround path.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-release-notes/+bug/2074309/+subscriptions




More information about the foundations-bugs mailing list