This is not something that requires immediate action but please beware that Erlang/OTP 23 has shipped earlier today. RabbitMQ has been tested on it even before it was at rc.1 but some post-GA testing is in the cards.
There should be an OTP 23 adoption strategy for this image. E.g. if RabbitMQ 3.8.4 officially supports Erlang 23, should this image immediately follow? Wait some more?
Ooh, very nice! :smile: :heart:
IMO it depends mostly on the expected user impact -- do we need to worry whether user plugins are compatible with it?
If the impact is known to be low (maybe only a tiny subset of plugins break?) then I don't see a reason to delay, but if the impact is potentially higher or unknown, maybe we should wait a bit and see how it goes in the larger community before we jump in too?
Tier 1 plugins (that ship with RabbitMQ) are compatible. Other plugins may need recompilation but otherwise, I don't expect any major pain points.
We will run tests of all Tier 1 and Tier 2 (select community plugins) on Erlang 23 and report back.
We have only found one issue in rabbitmq-prometheus, so looks like using Erlang 23 with 3.8.4 should be reasonably safe. FWIW RabbitMQ core team is already adopting Erlang 23 in one of our commercial products.
So perhaps the switch should happen a week or two after 3.8.4 ships?
Somehow I forgot to mention that Erlang 23 has a behavior that is highly relevant for every container user: the runtime now takes CPU quotas into account when computing the number of schedulers to start (which directly corresponds to how many CPU cores it will use given sufficient load).
Nice! SGTM 馃憤
RabbitMQ 3.8.4 is out. There is one remaining known compatibility issue with Erlang 23, rabbitmq-diagnostics observer will fail on it. We are waiting for dependencies to be adapted and published, so it will be addressed in 3.8.5. It's a fairly unknown feature, however, and the CPU quotas improvement mentioned above greatly outweighs it IMO.
Nice! So we should bump Erlang to 23 before we merge https://github.com/docker-library/official-images/pull/8071?
Edit: opened a PR: https://github.com/docker-library/rabbitmq/pull/411 (which we can look to either merge before https://github.com/docker-library/official-images/pull/8071, after it, or after 3.8.5 at your discretion) :+1:
I'd like to see a 3.8.4 release with Erlang 23 given that the CPU quotas is a significant improvement for any container user. The rabbitmq-diagnostics observer issue is unfortunate but will affect perhaps < 1% of the userbase while Erlang 23 improvements will benefit almost everyone.
I assume image updates are an ongoing process, right? If so then docker-library/official-images#8071 can proceed. If it'd be more convenient to ship both together, I have no objections to that :)
Yeah, it's ongoing so we can easily merge in either order, but given you feel 23 is "ready", I'll go ahead and merge that and poke the bot to update https://github.com/docker-library/official-images/pull/8071 for us. :smile:
Most helpful comment
Tier 1 plugins (that ship with RabbitMQ) are compatible. Other plugins may need recompilation but otherwise, I don't expect any major pain points.
We will run tests of all Tier 1 and Tier 2 (select community plugins) on Erlang 23 and report back.