The check for a running mcollective process is totally wrong and fails
to handle a stale pid file:
if [ -f $(cat /proc/$(cat $pidfile)/exe > /dev/null) ] ; then
Basically it's
if [ -f ]; then echo "Someone can't write shell scripts"; fi
This error breaks image based deployment. During the first boot after
the image based provisioning cloud init reconfigures mcollective to use
rabbitmq for communication and restarts it. However the restart gets
suppressed due to a bug in the sysv-style init script, so OpenStack
deployment does not start (and eventually times out).
The error is non-deterministic since sometimes cloud-init manages to
configure mcollective before it actually gets started (thus the correct
configuration is used despite the skipped restart).
Related-Bug: #
1407634
Change-Id: I1608492ff807a1662fa1453c6e50d9fb4eb234bd
+mcollective (2.3.1~mos6.1+2) trusty; urgency=low
+
+ * Fix the sysv-style startup script so mcollective can be properly
+ restarted.
+
+ -- Alexei Sheplyakov <asheplaykov@mirantis.com> Thu, 29 Jan 2015 13:31:58 +0300
+
mcollective (2.3.1~mos6.1+1) trusty; urgency=low
* Pick the sources from packages/precise/mcollective.
start)
echo "Starting daemon: " $name
# start the program
- if [ -f $pidfile ]; then
- if [ -f $(cat /proc/$(cat $pidfile)/exe > /dev/null) ] ; then
+ if [ -f "$pidfile" ]; then
+ if [ -L "/proc/$(cat $pidfile)/exe" ] ; then
echo MCollective appears to be running
exit 1
else
start)
echo "Starting daemon: " $name
# start the program
- if [ -f $pidfile ]; then
- if [ -f $(cat /proc/$(cat $pidfile)/exe > /dev/null) ] ; then
+ if [ -f "$pidfile" ]; then
+ if [ -L "/proc/$(cat $pidfile)/exe" ] ; then
echo MCollective appears to be running
exit 1
else