Supervisor / supervisor

Supervisor process control system for Unix (supervisord)
http://supervisord.org
Other
8.43k stars 1.24k forks source link

Web interface 500 error if shutting down #732

Open mnaberez opened 8 years ago

mnaberez commented 8 years ago

@stephenmelrose posted this traceback:

2016-03-15 18:57:33,753 INFO stopped: queue-listener-sqs (terminated by SIGTERM)
2016-03-15 18:57:34,409 CRIT Supervisor running as root (no user in config file)
2016-03-15 18:57:34,410 WARN Included extra file "/etc/supervisord/queue-listeners.conf" during parsing
2016-03-15 18:57:34,414 ERRO Web interface error:Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/supervisor-3.2.1-py2.7.egg/supervisor/web.py", line 45, in more
    response = self.callback()
  File "/usr/local/lib/python2.7/site-packages/supervisor-3.2.1-py2.7.egg/supervisor/web.py", line 162, in __call__
    body = self.render()
  File "/usr/local/lib/python2.7/site-packages/supervisor-3.2.1-py2.7.egg/supervisor/web.py", line 490, in render
    info = rpcinterface.supervisor.getProcessInfo(sent_name)
  File "/usr/local/lib/python2.7/site-packages/supervisor-3.2.1-py2.7.egg/supervisor/rpcinterface.py", line 594, in getProcessInfo
    self._update('getProcessInfo')
  File "/usr/local/lib/python2.7/site-packages/supervisor-3.2.1-py2.7.egg/supervisor/rpcinterface.py", line 47, in _update
    raise RPCError(Faults.SHUTDOWN_STATE)
RPCError: code=6, text='SHUTDOWN_STATE'
2016-03-15 18:57:37,316 INFO waiting for queue-listener-central-to-app to die
2016-03-15 18:57:40,320 INFO waiting for queue-listener-central-to-app to die
2016-03-15 18:57:43,324 INFO waiting for queue-listener-central-to-app to die
2016-03-15 18:57:44,325 WARN killing 'queue-listener-central-to-app' (23326) with SIGKILL
2016-03-15 18:57:44,328 INFO stopped: queue-listener-central-to-app (terminated by SIGKILL)

This request to the web interface was probably made right after a supervisorctl shutdown or supervisorctl reload command. The SHUTDOWN_STATE fault indicates that supervisord could not fulfill the request because it is shutting down.

supervisorctl catches the SHUTDOWN_STATE fault and shows an error message indicating that supervisord is shutting down. We should do the same on the web interface.

mnaberez commented 8 years ago

Errors from the web interface are only logged at the ERROR level since d86023b35f1db7d3d13130401280219b232daefc, which means the traceback above is from Supervisor 3.2.0 or later.