Supervisor

Latest version: v4.2.5

Safety actively analyzes 687918 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 9 of 10

2.1b1

Not secure
------------------

- "supervisord -h" and "supervisorctl -h" did not work (traceback
instead of showing help view (thanks to Damjan from Macedonia for
the bug report).

- Processes which started successfully after failing to start
initially are no longer reported in BACKOFF state once they are
started successfully (thanks to Damjan from Macedonia for the bug
report).

- Add new 'maintail' command to supervisorctl shell, which allows
you to tail the 'main' supervisor log. This uses a new
readMainLog xmlrpc API.

- Various process-state-transition related changes, all internal.
README.txt updated with new state transition map.

- startProcess and startAllProcesses xmlrpc APIs changed: instead of
accepting a timeout integer, these accept a wait boolean (timeout
is implied by process' "startsecs" configuration). If wait is
False, do not wait for startsecs.

Known issues:

- Code does not match state transition map. Processes which are
configured as autorestarting which start "successfully" but
subsequently die after 'startsecs' go through the transitions
RUNNING -> BACKOFF -> STARTING instead of the correct transitions
RUNNING -> EXITED -> STARTING. This has no real negative effect,
but should be fixed for correctness.

2.0

Not secure
----------------

- pidfile written in daemon mode had incorrect pid.

- supervisorctl: tail (non -f) did not pass through proper error
messages when supplied by the server.

- Log signal name used to kill processes at debug level.

- supervisorctl "tail -f" didn't work with supervisorctl sections
configured with an absolute unix:// URL

- New "environment" config file option allows you to add environment
variable values to supervisord environment from config file.

2.0b1

Not secure
------------------

- Fundamental rewrite based on 1.0.7, use distutils (only) for
installation, use ConfigParser rather than ZConfig, use HTTP for
wire protocol, web interface, less lies in supervisorctl.

1.0.7

------------------

- Don't log a waitpid error if the error value is "no children".

- Use select() against child file descriptor pipes and bump up select
timeout appropriately.

1.0.6

------------------

- Various tweaks to make run more effectively on Mac OS X
(including fixing tests to run there, no more "error reading
from fd XXX" in logtail output, reduced disk/CPU usage as a
result of not writing to log file unnecessarily on Mac OS).

1.0.5

------------------

- Short description: In previous releases, managed programs that
created voluminous stdout/stderr output could run more slowly
than usual when invoked under supervisor, now they do not.

Long description: The supervisord manages child output by
polling pipes related to child process stderr/stdout. Polling
operations are performed in the mainloop, which also performs a
'select' on the filedescriptor(s) related to client/server
operations. In prior releases, the select timeout was set to 2
seconds. This release changes the timeout to 1/10th of a second
in order to keep up with client stdout/stderr output.

Gory description: On Linux, at least, there is a pipe buffer
size fixed by the kernel of somewhere between 512 - 4096 bytes;
when a child process writes enough data to fill the pipe buffer,
it will block on further stdout/stderr output until supervisord
comes along and clears out the buffer by reading bytes from the
pipe within the mainloop. We now clear these buffers much more
quickly than we did before due to the increased frequency of
buffer reads in the mainloop; the timeout value of 1/10th of a
second seems to be fast enough to clear out the buffers of child
process pipes when managing programs on even a very fast system
while still enabling the supervisord process to be in a sleeping
state for most of the time.

Page 9 of 10

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.