Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Deprecated features are being used" for transient_nonexcl_queues even when there are no transient queues in the cluster #12802

Closed
daanwa opened this issue Nov 25, 2024 · 5 comments · Fixed by #12840
Labels
Milestone

Comments

@daanwa
Copy link

daanwa commented Nov 25, 2024

Describe the bug

After a clean install of RabbitMQ 4.0.4 and configuring deprecated_features.permit.transient_nonexcl_queues = false in /etc/rabbitmq/rabbitmq.conf, creating a queue via the RabbitMQ Management Interface, I get the message "Deprecated features are being used".

If I look in "Admin -> Deprecated features" I see that transient_nonexcl_queues is "in_use". This also occurs when I use a stream queue or quorum queue.

I would expect this message to not show when I create a new queue (of any type).

Perhaps I'm misunderstanding how these feature flags work. But I would expect this feature to not be enabled (?) or usable upon a fresh install of RabbitMQ 4.0.4

Reproduction steps

  1. Install RabbitMQ
  2. Add deprecated_features.permit.transient_nonexcl_queues = false to the config file
  3. Restart RabbitMQ
  4. Create a queue of any type
  5. See the message
  6. See that transient_nonexcl_queues is "in_use"

Expected behavior

To not have transient_nonexcl_queues is "in_use" when creating a new queue in a fresh RabbitMQ 4.0.4 install

Additional context

No response

@daanwa daanwa added the bug label Nov 25, 2024
@Dutchy-
Copy link

Dutchy- commented Nov 25, 2024

I just upgraded to 4.0.4 and I also get this message. I do not have transient_nonexcl_queues explicitly disabled but I cannot find any queue that uses it. I only have quorum queues.

@michaelklishin
Copy link
Member

Yes, the function that detects if transient non-exclusive queues are used does not do it correctly at least with Mnesia.

This was the conclusion of #12793.

This is a harmless warning, although I understand that it is annoying.

@michaelklishin michaelklishin added this to the 4.0.5 milestone Nov 25, 2024
@michaelklishin michaelklishin changed the title Adding a queue in a free 4.0.4 install results in the message "Deprecated features are being used". "Deprecated features are being used" for transient_nonexcl_queues even when there are no transient queues in the cluster Nov 25, 2024
mkuratczyk added a commit that referenced this issue Nov 27, 2024
This fixes the issue where RabbitMQ would warn about
transient queues being used in a cluster with no transient queues.

Fixes #12802
mkuratczyk added a commit that referenced this issue Nov 27, 2024
This fixes the issue where RabbitMQ would warn about
transient queues being used in a cluster with no transient queues.

Fixes #12802
mergify bot pushed a commit that referenced this issue Nov 27, 2024
This fixes the issue where RabbitMQ would warn about
transient queues being used in a cluster with no transient queues.

Fixes #12802

(cherry picked from commit 46259b5)
@Tazmaniac
Copy link

Tazmaniac commented Dec 17, 2024

All my classic queues are either "exclusive: true" or "auto-delete:true x-expires:10000" but after the upgrade to from 4.0.4 to 4.0.5 of my cluster, I still have the deprecated feature message in the interface.
Is it because I did not completely shutdown the cluster ?
Are "auto-delete:true x-expires:10000" classic queues considered "transient_nonexcl_queues" queues ? In this case which alternatives I have ?
Or is the fix incomplete ?

@mkuratczyk
Copy link
Contributor

I've checked and I don't see an error here. I guess your "auto-delete:true x-expires:10000" are non-durable (in other words: transient) and that's what triggers the warning.

@michaelklishin
Copy link
Member

@Tazmaniac this is not a support forum. Discussions are.

You must restart cluster nodes in case of an upgrade, and if some nodes are not upgraded, certain behaviors of earlier versions are to be expected.

Neither TTL nor auto-deletion is at play in transient_nonexcl_queues. The rule only takes into account non-durable (transient) and non-exclusive queues. Their TTL and auto-deletion settings are not considered.

I have not seen any false positives since #12840.

@rabbitmq rabbitmq locked as resolved and limited conversation to collaborators Dec 17, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants