puppet: ‘supervisorctl stop all’ before restarting Supervisor.

This fixes a failure of the 3.4 upgrade test running on Ubuntu 20.04
with Supervisor 4.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg
2022-04-26 14:51:18 -07:00
committed by Alex Vandiver
parent 1292338537
commit a7e6cb7705
2 changed files with 14 additions and 5 deletions

View File

@@ -8,11 +8,19 @@ class zulip::common {
$supervisor_system_conf_dir = '/etc/supervisor/conf.d' $supervisor_system_conf_dir = '/etc/supervisor/conf.d'
$supervisor_conf_file = '/etc/supervisor/supervisord.conf' $supervisor_conf_file = '/etc/supervisor/supervisord.conf'
$supervisor_service = 'supervisor' $supervisor_service = 'supervisor'
$supervisor_start = '/etc/init.d/supervisor start' $supervisor_start = '/usr/sbin/service supervisor start'
$supervisor_reload = @(EOT)
# The init script's timeout waiting for supervisor is shorter
# than supervisor's timeout waiting for its programs, so we need
# to ask supervisor to stop its programs first.
supervisorctl stop all &&
service supervisor restart &&
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=877086 # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=877086
# "restart" is actually "stop" under sysvinit # "restart" is actually "stop" under sysvinit
$supervisor_reload = '/etc/init.d/supervisor restart && (/etc/init.d/supervisor start || /bin/true) && /etc/init.d/supervisor status' { service supervisor start || true; } &&
$supervisor_status = '/etc/init.d/supervisor status' service supervisor status
| EOT
$supervisor_status = '/usr/sbin/service supervisor status'
} }
'RedHat': { 'RedHat': {
$nagios_plugins = 'nagios-plugins' $nagios_plugins = 'nagios-plugins'

View File

@@ -91,6 +91,7 @@ class zulip::supervisor {
} }
exec { 'supervisor-restart': exec { 'supervisor-restart':
refreshonly => true, refreshonly => true,
provider => shell,
command => $zulip::common::supervisor_reload, command => $zulip::common::supervisor_reload,
require => Service[$supervisor_service], require => Service[$supervisor_service],
} }