[Bug 1784757] Re: [SRU] rabbitmq-server does not properly shutdown
Sergio Durigan Junior
1784757 at bugs.launchpad.net
Thu Oct 29 19:25:50 UTC 2020
First, verifying that the current package fails:
root at bug1784757-rabbitmq-server:~# apt policy rabbitmq-server
rabbitmq-server:
Installed: 3.6.10-1ubuntu0.3
Candidate: 3.6.10-1ubuntu0.3
Version table:
*** 3.6.10-1ubuntu0.3 500
500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
100 /var/lib/dpkg/status
3.6.10-1 500
500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages
root at bug1784757-rabbitmq-server:~# time systemctl restart rabbitmq-server.service
real 1m33.535s
user 0m0.005s
sys 0m0.007s
Now, installing rabbitmq-server from -proposed, and verifying that the
bug is fixed:
root at bug1784757-rabbitmq-server:~# apt policy rabbitmq-server
rabbitmq-server:
Installed: 3.6.10-1ubuntu0.4
Candidate: 3.6.10-1ubuntu0.4
Version table:
*** 3.6.10-1ubuntu0.4 500
500 http://archive.ubuntu.com/ubuntu bionic-proposed/main amd64 Packages
100 /var/lib/dpkg/status
3.6.10-1ubuntu0.3 500
500 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
3.6.10-1 500
500 http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages
root at bug1784757-rabbitmq-server:~# for i in $(seq 10); do time systemctl restart rabbitmq-server.service ; done
real 0m2.980s
user 0m0.006s
sys 0m0.004s
real 0m3.010s
user 0m0.004s
sys 0m0.000s
real 0m4.907s
user 0m0.004s
sys 0m0.000s
real 0m3.012s
user 0m0.002s
sys 0m0.002s
real 0m2.899s
user 0m0.004s
sys 0m0.000s
real 0m2.975s
user 0m0.004s
sys 0m0.000s
real 0m3.036s
user 0m0.002s
sys 0m0.003s
real 0m3.013s
user 0m0.004s
sys 0m0.000s
real 0m3.003s
user 0m0.004s
sys 0m0.000s
real 0m3.040s
user 0m0.004s
sys 0m0.000s
Therefore, I'm marking this bug as verified.
** Tags removed: verification-needed-bionic
** Tags added: verification-done-bionic
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to rabbitmq-server in Ubuntu.
https://bugs.launchpad.net/bugs/1784757
Title:
[SRU] rabbitmq-server does not properly shutdown
Status in rabbitmq-server package in Ubuntu:
Fix Released
Status in rabbitmq-server source package in Bionic:
Fix Committed
Status in rabbitmq-server source package in Cosmic:
Won't Fix
Status in rabbitmq-server package in Debian:
Fix Released
Bug description:
[Impact]
The systemd file rabbitmq-server.service on Bionic uses "Type=simple"
when defining the service, but unfortunately this doesn't work very
well for rabbitmq-server. In certain situations, systemd will fail to
keep track of a start/stop/restart event, and will hang for 90 seconds
before giving the prompt back to the user. Another problem is that
rabbitmq-server must start after the epmd service, so we need to
explicitly declare this dependency in the service file.
[Test Case]
Although I was able to reproduce this almost 100% of the time, there
were rare occasions when the restart procedure finished normally. I
was also only able to reproduce it using a bionic VM, not a container.
If you have multipass or lxd configured to launch VMs, that should be
easy.
The steps are:
$ lxc launch ubuntu-daily:bionic --vm bug1784757-rabbitmq-server # or use multipass
$ lxc shell bug1784757-rabbitmq-server
# apt update
# apt install rabbitmq-server -y
# systemctl restart rabbitmq-server.service
In a normal scenario, the restart should take around 3 seconds or
less. With the bug, it takes around 90 seconds. If you can't reproduce
it, try running "systemctl restart" again. A quick way to trigger it
is to run a for loop like:
# for i in $(seq 10); do time systemctl restart rabbitmq-
server.service ; done
[Regression Potential]
* Because rabbitmq-server implements systemd's "Type=notify" using
socat to communicate with systemd-notify over a socket, we will be
introducing another point of failure (socat) in the mix.
* So, albeit unlikely, there may be a problem when using socat. That
would not be a regression, though, since the outcome would be the same
as we have today: "systemctl restart" would not properly work, even
though the service did restart.
[Original Report]
When I run `systemctl restart rabbitmq-server` it waits for 90 seconds
then systemd sends SIGKILL to it.
Presumably the `epmd` process does not receive SIGTERM, since if I run
`kill 1493` (or whatever pid it currently is) then restart happens
straight after that successfully
● rabbitmq-server.service - RabbitMQ Messaging Server
Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled)
Active: deactivating (final-sigterm) since Wed 2018-08-01 01:17:04 UTC; 7s ago
Process: 1183 ExecStop=/usr/sbin/rabbitmqctl stop (code=exited, status=0/SUCCESS)
Process: 178 ExecStartPost=/usr/lib/rabbitmq/bin/rabbitmq-server-wait (code=exited, status=0/SUCCESS)
Process: 177 ExecStart=/usr/sbin/rabbitmq-server (code=killed, signal=TERM)
Main PID: 177 (code=killed, signal=TERM)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/rabbitmq-server.service
└─1493 /usr/lib/erlang/erts-9.2/bin/epmd -daemon
Aug 01 01:11:20 rmq-1 systemd[1]: rabbitmq-server.service: Failed to reset devices.list: Operation not permitted
Aug 01 01:11:20 rmq-1 systemd[1]: Starting RabbitMQ Messaging Server...
Aug 01 01:11:25 rmq-1 rabbitmq[178]: Waiting for 'rabbit at rmq-1'
Aug 01 01:11:25 rmq-1 rabbitmq[178]: pid is 204
Aug 01 01:11:30 rmq-1 systemd[1]: Started RabbitMQ Messaging Server.
Aug 01 01:17:04 rmq-1 systemd[1]: Stopping RabbitMQ Messaging Server...
Aug 01 01:17:06 rmq-1 rabbitmq[1183]: Stopping and halting node 'rabbit at rmq-1'
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/rabbitmq-server/+bug/1784757/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list