In Queens, undercloud is non containerized and RabbitMQ is started via systemd.
systemd automatically starts epmd via another dedicated epmd.service.
[root@undercloud ~]# systemctl status epmd@*
● epmd@0.0.0.0.service - Erlang Port Mapper Daemon
Loaded: loaded (/usr/lib/systemd/system/epmd@.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2019-04-03 03:12:53 EDT; 2h 53min ago
Main PID: 20510 (epmd)
Status: "Processing port mapping requests..."
CGroup: /system.slice/system-epmd.slice/epmd@0.0.0.0.service
└─20510 /usr/bin/epmd -systemd
While working on lp#1822120 [1], we found that we need to restart epmd and rabbitmq
on undercloud upgrade because of erlang 18 -> erlang 19 major upgrade that occurs
on P -> Q upgrade.
However the ownership of epmd is not always clear, as it is normally started by
systemd, but it can also be started by rabbitmq if no epmd is running at the time
rabbitmq needs it, for whatever reason [2,3]
So in order to perform a restart of epmd and rabbitmq, in [1] we bindly kill the
running epmd, which is not super selective and doesn't try to recover from cases
where epmd is started by rabbitmq.
[1] https://review.openstack.org/#/c/649194
[2] http://logs.openstack.org/87/649287/2/check/tripleo-ci-centos-7-undercloud-oooq/f427642/logs/undercloud/var/log/extra/services.txt.gz
[3] https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=1653724
Fix proposed to branch: stable/queens /review. openstack. org/649901
Review: https:/