RabbitMQ should use predefined ports below ephemeral ports range
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
tripleo |
Fix Released
|
High
|
Michele Baldessari |
Bug Description
Currently RabbitMQ cluster uses a predefined port 35672 for clustering. This port belongs to so-called ephemeral ports range.
Ephemeral ports are the ports kernel assigns to application if it doesn't specify which port to open. So there is a small chance that this application being started before RabbitMQ itself could grab this port. Unfortunately we've just saw this in the wild.
The error in the rabbit logs will be something like the following:
Protocol: ~tp: register/listen error: ~tp~n",
Which really means some other application opened port 35672.
If we need static predefined port, then we'd better use port 25672. It doesn't belong to ephemeral ports range, so chances are low that anyone opens this port by mistake.
Changed in tripleo: | |
status: | New → In Progress |
Changed in tripleo: | |
milestone: | newton-rc1 → newton-rc2 |
I am raising this bug to High because now that we landed HA-NG the chances that services start before rabbitmq will take the 35672 port in the ephemeral range is actually a lot higher because services can and will start before rabbitmq.