Upgrade from RabbitMQ 3.3.5 and Erlang R14B04 to RabbitMQ latest (3.6.1) and Erlang latest (R16B03)

304 views
Skip to first unread message

Dan Stromberg

unread,
Apr 11, 2016, 11:24:40 AM4/11/16
to rabbitmq-users

Hi folks.

I'm using RabbitMQ 3.3.5 and Erlang R14B04 in a production environment, and I'm considering moving it to RabbitMQ 3.6.1 and Erlang R16B03.

What are the benefits and risks of such a move?

I've attempted to summarize the relevant changelog entries:

RabbitMQ:
* features
  * Persistence configuration: https://www.rabbitmq.com/persistence-conf.html . Probably not that interesting.
  * Priority queues added: https://www.rabbitmq.com/priority.html . Nice if we need them.
  * High availability queues: https://www.rabbitmq.com/ha.html
* performance
  * Direct reply-to makes RPC over Rabbit faster by eliminating the need for a reply queue:
  * Lazy queues are good for huge queues: https://www.rabbitmq.com/lazy-queues.html
  * With RabbitMQ 3.6.0 a new policy was introduced that can be configured with mirrored queues
  * ha-sync-batch-size. By synchronising messages in batches, the synchronisation process can be sped up considerably.
* bugs
  * apparently a lot of bug fixes, but if we aren't hitting one...
* security
  * At least 3 security fixes to the management plugin, including:
    * CVE-2015-8786
    * CVE-2015-0862
* reliability
  * See above for ha-sync-batch-size and lazy queues
* simplicity
  * Perhaps Direct reply-to relates here too.

Erlang:
* In R15B, tracebacks got a lot easier to read - they now include filenames and line numbers

Is that about right for the benefits?  Is anything missing or inaccurate?

I have no idea what the risks might be.  What should I watch out for?  What could go wrong?

Thanks!

Peter Lemenkov

unread,
Apr 11, 2016, 11:27:55 AM4/11/16
to rabbitm...@googlegroups.com
Hello All!

2016-04-11 17:24 GMT+02:00 Dan Stromberg <dstromb...@gmail.com>:
>
> Hi folks.
>
> I'm using RabbitMQ 3.3.5 and Erlang R14B04 in a production environment, and
> I'm considering moving it to RabbitMQ 3.6.1 and Erlang R16B03.

> Erlang:
> * In R15B, tracebacks got a lot easier to read - they now include filenames
> and line numbers

Skip R16 and jump directly to the latest 18.x.y (18.3.1 at this
moment). You'll have even more nice things, namely more reliable
mnesia, numerous improvements related to Ipv6, and improved
schedulers.


--
With best regards, Peter Lemenkov.

Michael Klishin

unread,
Apr 11, 2016, 11:39:18 AM4/11/16
to rabbitm...@googlegroups.com
The benefits are dozens of bugs fixed, some disk I/O efficiency improvements, new
features, completely revamped Web STOMP support, ability to use more recent
plugins/plugin versions.

Erlang upgrade value to me is also primarily in bug fixes, in particular when HiPE is used.

The downside of any upgrade is that software has regressions from time to time. I'd recommend
upgrading to 3.6.2 on Erlang 18.3 when it is out (we expect an RC by April 18th).

Every recent change log entry mentions how upgrades are performed. To upgrade from 3.3.x you don't
need to first upgrade to 3.4.x then 3.5.x then 3.6.x. You can go straight to 3.6.x.

If you upgrade via definitions export and import, see http://www.rabbitmq.com/passwords.html.
New password hashing functions is another good reason to upgrade.


--
You received this message because you are subscribed to the Google Groups "rabbitmq-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rabbitmq-user...@googlegroups.com.
To post to this group, send email to rabbitm...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
MK

Staff Software Engineer, Pivotal/RabbitMQ

Michael Klishin

unread,
Apr 11, 2016, 11:40:25 AM4/11/16
to rabbitm...@googlegroups.com
Good point, Peter.

There is certainly a deadlock in Mnesia prior to OTP 18.3.1 that affects RabbitMQ. It took
us several weeks to dig it out.

Dan Stromberg

unread,
Apr 11, 2016, 1:33:17 PM4/11/16
to rabbitmq-users
I mistakenly thought R16 was the latest.  Thanks!
 

Dan Stromberg

unread,
Apr 11, 2016, 1:50:32 PM4/11/16
to rabbitmq-users

On Monday, April 11, 2016 at 8:39:18 AM UTC-7, Michael Klishin wrote:
The downside of any upgrade is that software has regressions from time to time. I'd recommend
upgrading to 3.6.2 on Erlang 18.3 when it is out (we expect an RC by April 18th).

Is there any risk of losing messages during the upgrade?  Have any API's changed that might require us to change our code?

John F

unread,
Apr 13, 2016, 8:28:10 AM4/13/16
to rabbitmq-users
Are you using other protocols than AMQP?

We've seen some strange errors when using 3.6.2 milestone 1 and 2 with the STOMP plugin. Unfortunately we had to downgrade our test system from these versions to 3.5.7 so I can't say if the problems are gone in milestone 3 or will be in the final 3.6.2.

We're hoping that we will be able to find time to test 3.6.2 after it is released in final version, because we need a couple of stuff in there; STOMP plugin to stamp origin node, and LDAP connection pools.

Dan Stromberg

unread,
Apr 13, 2016, 2:44:13 PM4/13/16
to rabbitmq-users

On Wednesday, April 13, 2016 at 5:28:10 AM UTC-7, John F wrote:
Are you using other protocols than AMQP?
I don't think we are.  At least grep'ing our source tree for stomp doesn't find much.

John Foldager

unread,
Apr 14, 2016, 1:35:44 AM4/14/16
to rabbitm...@googlegroups.com
If you are only using AMQP then I think/believe that you are safe.

If you use STOMP then I would strongly advise you to test the setup
before going into production. I'm not saying that it doesn't work,
however we are still not convinced that we can upgrade from 3.5.7 to
the 3.6.x release just yet.
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "rabbitmq-users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/rabbitmq-users/O1KxnIcy-7Y/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to

bliy...@rentlytics.com

unread,
Apr 14, 2016, 5:56:34 PM4/14/16
to rabbitmq-users
Have to highly agree with John here.  You will want to test the 3.6.x branch heavily, underload, and with good benchmarking already in place.  We did the 3.6.1 upgrade and had to downgrade back to 3.5.7 due to memory leaks.  3.5.7 has been incredibly solid for us.

Michael Klishin

unread,
Apr 14, 2016, 7:17:11 PM4/14/16
to rabbitm...@googlegroups.com
"Memory leaks" here almost certainly means rabbitmq/rabbitmq-management#41, which is not a leak but a yet another manifestation of some parts of the system not keeping up with others in certain situations.
You received this message because you are subscribed to the Google Groups "rabbitmq-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rabbitmq-user...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages