Bug 275838 - net/rabbitmq: update to 3.12
Summary: net/rabbitmq: update to 3.12
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Dave Cottlehuber
URL: https://reviews.freebsd.org/D43954
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-19 11:50 UTC by Misso Works
Modified: 2024-03-18 12:32 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (erlang)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Misso Works 2023-12-19 11:50:28 UTC
Would it be possible to bump the version of the rabbitmq port from 3.11 to 3.12 because massive performance improvements relating to MQTT have been introduced in 3.12:

https://blog.rabbitmq.com/posts/2023/03/native-mqtt/

(for example handling 1 million connections only consumes 18 GB of memory in 3.12 instead of 301 GB in 3.11 - this is a 94% decrease in memory usage)
Comment 1 Misso Works 2023-12-29 16:47:58 UTC
Sorry I made a mistake in the title of the ticket: i meant update to 3.12 as explained in the comment. i mistakenly wrote 3.11.26 in the title of this ticket as I was also following the other ticket.
Comment 2 Misso Works 2023-12-29 16:49:16 UTC
I made a mistake in the title of the ticket
Comment 3 Misso Works 2024-01-09 22:08:42 UTC
Any feedback on this? is there a technical challenge blocking the upgrade of the port to 3.12?

This release introduces huge performance improvements along the board (94% memory usage decrease for MQTT, consumption of Quorum Queues up to 10 times faster in certain situations  etc...).
Comment 4 Misso Works 2024-01-20 09:20:01 UTC
3.12.12 is the last 3.12.X stable version not requiring an upgrade to erlang26, could be a good candidate to update the port.
Comment 5 Dave Cottlehuber freebsd_committer freebsd_triage 2024-02-19 16:13:08 UTC
hi misso

can you please look at https://reviews.freebsd.org/D43954 and see if this
gives you the desired performance improvements? Does your specific deployment
hit these 1_000_000 connections and memory usage, or is this just a general
performance point?

See https://lists.freebsd.org/archives/freebsd-erlang/2024-February/001814.html
mailing list for more details.
Comment 6 Artyom Davidov 2024-02-22 00:00:57 UTC
Added a bug #277214 with a patch to update net/rabbitmq to the version 3.12.13 using standard build approach.
Comment 7 Dave Cottlehuber freebsd_committer freebsd_triage 2024-03-02 15:16:31 UTC
A comment for users, according to https://www.rabbitmq.com/docs/upgrade it's
not possible to move directly to latest v3.13.0, you have to first enable all
feature flags, then move to v3.12.13, then to v3.13.0 next.

In both cases it seems a full shutdown (whether single node or cluster) is
required, if you've already done this then please advise if this is necessary!

The end goal is to move ports from 3.11.x OTP25 to 3.13 and OTP26, we'll need
to do this in steps. I would like to have 3.12.x in 2024Q2 quarterly ports
branch (coming soon), and then have 3.13.0 and OTP26 in the main branch,
so it will be available in 2024Q3 for those who are using quarterly branch.

From what I read, it's not possible in a single leap:

- current port is at 3.11.28 & OTP25
- because 3.12.0 requires all feature flags to be enabled before upgrading
    https://www.rabbitmq.com/docs/upgrade we need to move to 3.12.x first
- thus next feasible step is 3.12.13 & OTP25 and users need to update feature flags
- then we can finally update to 3.13.0 & OTP26
- each step would require a full cluster downtime during upgrade
Comment 8 Artyom Davidov 2024-03-02 20:47:31 UTC
(In reply to Dave Cottlehuber from comment #7)
Rolling upgrade is possible between 3.11.28 and 3.12.13.
And it is required that all feature flags should be enabled in 3.11.28 before performing the upgrade.

There is no straight upgrade path from the 3.11.x to the 3.13.x versions - an intermediate upgrade to the 3.12.x is required.

It is possible to upgrade 3.11.17 and newer versions to 3.12.x and Erlang 25 to Erlang 26 at the same time. But as a safety measure, in case if someone is still using rabbitmq versions prior to 3.11.17, it is better to upgrade to 3.12.x first using Erlang 25 and then upgrade Erlang version to 26.x.
Comment 9 Dave Cottlehuber freebsd_committer freebsd_triage 2024-03-13 08:11:13 UTC
Hi Artyom any feedback yet?

Planning to land this later this week if there's no further feedback, 
and in April when the next quarterly branch is forked, update to
latest release as Misso requested.
Comment 10 commit-hook freebsd_committer freebsd_triage 2024-03-16 11:11:05 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=ddf5b19f679c03dc6d52e03e6035ecf3c0b6aab4

commit ddf5b19f679c03dc6d52e03e6035ecf3c0b6aab4
Author:     Dave Cottlehuber <dch@FreeBSD.org>
AuthorDate: 2024-03-16 11:09:06 +0000
Commit:     Dave Cottlehuber <dch@FreeBSD.org>
CommitDate: 2024-03-16 11:09:17 +0000

    net/rabbitmq: update to v3.12.13 and new tarball

    Summary:
    RabbitMQ has long provided a generic unix tarball which is better
    suited for a FreeBSD port. There should be no functional changes
    for this approach, and it simplifies build and release by aligning
    better with upstream deployment, removing dependency on lang/elixir
    releases.

    Once the 2024Q2 branch is created, the next RabbitMQ release will
    be updated, as users need to migrate from 3.11 -> 3.12 -> 3.13
    without skipping in between versions.

    https://rabbitmq.com/install-generic-unix.html

    Differential Revision: https://reviews.freebsd.org/D43954
    PR:             275838

 net/rabbitmq/Makefile                              |  79 +-
 net/rabbitmq/distinfo                              |   6 +-
 ...defaults.in => patch-sbin_rabbitmq-defaults.in} |  12 +-
 net/rabbitmq/pkg-plist                             | 848 ++++++++++-----------
 4 files changed, 465 insertions(+), 480 deletions(-)
Comment 11 Dave Cottlehuber freebsd_committer freebsd_triage 2024-03-18 12:32:40 UTC
Done.

NB that net/rabbitmq 3.13 will come in late April or May, and users of
RabbitMQ should plan to upgrade from 3.11.x -> 3.12 to be ready for 3.13
when it lands in /latest/ ports branch.

This should allow quarterly users to migrate 3.11->3.12 in Q2, to be
ready for 3.13 in Q3.

See https://www.rabbitmq.com/docs/upgrade#rabbitmq-version-upgradability
for details.