From ce7246a34ba51a5ccff0ac08d6e85a8cda7d275b Mon Sep 17 00:00:00 2001 From: Dan Smith Date: Thu, 23 Apr 2015 09:41:06 -0700 Subject: [PATCH] Workaround potential failure to shutdown services Kill them twice to make sure they're good'n'dead. There is a supposed fix to oslo-incubator code, but we're working around that here in the meantime with this change. This returned in Liberty. Change-Id: I02a7af995dc7de857c4efcf2cef2f95d357c007a Related-Bug: #1446583 (cherry picked from commit 953baa7998f253681ed31013fd18bd8aa8098b34) --- functions-common | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/functions-common b/functions-common index a7fec41bb9..cfe0c8d4ba 100644 --- a/functions-common +++ b/functions-common @@ -1476,6 +1476,22 @@ function stop_process { # Kill via pid if we have one available if [[ -r $SERVICE_DIR/$SCREEN_NAME/$service.pid ]]; then pkill -g $(cat $SERVICE_DIR/$SCREEN_NAME/$service.pid) + # oslo.service tends to stop actually shutting down + # reliably in between releases because someone believes it + # is dying too early due to some inflight work they + # have. This is a tension. It happens often enough we're + # going to just account for it in devstack and assume it + # doesn't work. + # + # Set OSLO_SERVICE_WORKS=True to skip this block + if [[ -z "$OSLO_SERVICE_WORKS" ]]; then + # TODO(danms): Remove this double-kill when we have + # this fixed in all services: + # https://bugs.launchpad.net/oslo-incubator/+bug/1446583 + sleep 1 + # /bin/true becakse pkill on a non existant process returns an error + pkill -g $(cat $SERVICE_DIR/$SCREEN_NAME/$service.pid) || /bin/true + fi rm $SERVICE_DIR/$SCREEN_NAME/$service.pid fi if [[ "$USE_SCREEN" = "True" ]]; then