Supported RabbitMQ versions

The AiiDA documentation currently states

RabbitMQ v3.5 and older are end-of-life and are not supported in any way. For RabbitMQ v3.8.15 and up, AiiDA is not compatible with the default configuration of the server.

This is outdated, if you follow the link all version below 3.11 are unsupported. In fact, since RabbitMQ is part of VMWare, which was recently acquired by Broadcomm, you’ll see this “friendly” message.

From June 1st, 2024 and onwards, the RabbitMQ Core Team at Broadcom only provides support to paying customers and regularly contributing users.

In practice, the “community support” only covers the latest released version.

As a near-term action item, should we update the testing matrix in .github/workflows/rabbitmq.yml, drop the old versions (3.6, 3.7) and test 3.8, 3.9, 3.10?

Are some people actually using versions >3.8? Which ones? In AiiDAlab, we control the RabbitMQ configuration, so it would make sense to us to use a newer version, but I don’t know which versions are battle-tested and known to work. 3.9 is probably safe? (we use 3.9.13 for our ARM64 build)

Thanks for raising this @danielhollas! I’m using 3.13.2, installed with brew on MacOS, and then configure the consumer_timeout as described here:

1 Like

Thanks @mbercx, that’s very helpful to know!

As a near-term action item, should we update the testing matrix in .github/workflows/rabbitmq.yml, drop the old versions (3.6, 3.7) and test 3.8, 3.9, 3.10?

This has been done in

Configuring consumer_timeout didn’t take for me. Followed the provided instructions, but grep still shows the default timeout (not undefined).

We’d need a bit more info about your environment I think. What OS? How did you install RabbitMQ and what version? How do you normally manage it? What is the full output of?

sudo rabbitmqctl environment

Conda environment
conda install rabbitmq-server
rabbitmq-server start -d
verdi profile configure-rabbitmq
verdi status

...
Warning: RabbitMQ v3.13.2 is not supported and will cause unexpected problems!
Warning: It can cause long-running workflows to crash and jobs to be submitted multiple times.
Warning: See https://github.com/aiidateam/aiida-core/wiki/RabbitMQ-version-to-use for details.
...

I then tried the suggested fix (advanced.config file). Restarted the server with service rabbitmq-server restart. No output, so not sure if that worked. I guess not, because

rabbitmqctl environment | grep consumer_timeout
      {consumer_timeout,1800000},

That only works if RabbitMQ is installed as a service in Ubuntu right? But you have installed it through Conda. The service command doesn’t apply there. Do you also have RMQ installed as a service through Ubuntu?

Also, where did you place the advanced.config file?

The location of the config file is in the cones environment in that case, see this recent topic:

Excellent! Thanks @danielhollas for referencing this thread. Solved my issue.

There is unfortunately no mention of how to handle conda environments in the article linked in the verdi status warning.

I’m gonna add a note referencing these instructions.

One more question, there is a note in the linked article regarding AiiDA having already created queues under ~/.rabbitmq (at least in the aiida-core docker container). I don’t see such a directory in my case. Is this also Conda-dependent? Should I be looking somewhere else?

I have no idea, and don’t quite understand what it tries to say. I wouldn’t worry about it.