Supervisor

Latest version: v4.2.5

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

Scan your dependencies

Page 7 of 10

3.0a10

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

- Fixed the stylesheet of the web interface so the footer line won't overlap
a long process list. Thanks to Derek DeVries for the patch.

- Allow rpc interface plugins to register new events types.

- Bug fix for FCGI sockets not getting cleaned up when the ``reload`` command
is issued from supervisorctl. Also, the default behavior has changed for
FCGI sockets. They are now closed whenever the number of running processes
in a group hits zero. Previously, the sockets were kept open unless a
group-level stop command was issued.

- Better error message when HTTP server cannot reverse-resolve a hostname to
an IP address. Previous behavior: show a socket error. Current behavior:
spit out a suggestion to stdout.

- Environment variables set via ``environment=`` value within
``[supervisord]`` section had no effect. Thanks to Wyatt Baldwin
for a patch.

- Fix bug where stopping process would cause process output that happened
after the stop request was issued to be lost. See
https://github.com/Supervisor/supervisor/issues/11.

- Moved 2.X change log entries into ``HISTORY.txt``.

- Converted ``CHANGES.txt`` and ``README.txt`` into proper ReStructuredText
and included them in the ``long_description`` in ``setup.py``.

- Added a tox.ini to the package (run via ``tox`` in the package dir). Tests
supervisor on multiple Python versions.

3.0a9

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

- Use rich comparison methods rather than __cmp__ to sort process configs and
process group configs to better straddle Python versions. (thanks to
Jonathan Riboux for identifying the problem and supplying an initial
patch).

- Fixed test_supervisorctl.test_maintail_dashf test for Python 2.7. (thanks
to Jonathan Riboux for identifying the problem and supplying an initial
patch).

- Fixed the way that supervisor.datatypes.url computes a "good" URL
for compatibility with Python 2.7 and Python >= 2.6.5. URLs with
bogus "schemes://" will now be accepted as a version-straddling
compromise (before they were rejected before supervisor would
start). (thanks to Jonathan Riboux for identifying the problem
and supplying an initial patch).

- Add a ``-v`` / ``--version`` option to supervisord: Print the
supervisord version number out to stdout and exit. (Roger Hoover)

- Import iterparse from xml.etree when available (eg: Python 2.6). Patch
by Sidnei da Silva.

- Fixed the url to the supervisor-users mailing list. Patch by
Sidnei da Silva

- When parsing "environment=" in the config file, changes introduced in
3.0a8 prevented Supervisor from parsing some characters commonly
found in paths unless quoting was used as in this example::

environment=HOME='/home/auser'

Supervisor once again allows the above line to be written as::

environment=HOME=/home/auser

Alphanumeric characters, "_", "/", ".", "+", "-", "(", ")", and ":" can all
be used as a value without quoting. If any other characters are needed in
the value, please quote it as in the first example above. Thanks to Paul
Heideman for reporting this issue.

- Supervisor will now look for its config file in locations relative to the
executable path, allowing it to be used more easily in virtual
environments. If sys.argv[0] is ``/path/to/venv/bin/supervisorctl``,
supervisor will now look for it's config file in
``/path/to/venv/etc/supervisord.conf`` and
``/path/to/venv/supervisord.conf`` in addition to the other standard
locations. Patch by Chris Rossi.

3.0a8

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

- Don't cleanup file descriptors on first supervisord invocation:
this is a lame workaround for Snow Leopard systems that use
libdispatch and are receiving "Illegal instruction" messages at
supervisord startup time. Restarting supervisord via
"supervisorctl restart" may still cause a crash on these systems.

- Got rid of Medusa hashbang headers in various files to ease RPM
packaging.

- Allow umask to be 000 (patch contributed by Rowan Nairn).

- Fixed a bug introduced in 3.0a7 where supervisorctl wouldn't ask
for a username/password combination properly from a
password-protected supervisord if it wasn't filled in within the
"[supervisorctl]" section username/password values. It now
properly asks for a username and password.

- Fixed a bug introduced in 3.0a7 where setup.py would not detect the
Python version correctly. Patch by Daniele Paolella.

- Fixed a bug introduced in 3.0a7 where parsing a string of key/value
pairs failed on Python 2.3 due to use of regular expression syntax
introduced in Python 2.4.

- Removed the test suite for the ``memmon`` console script, which was
moved to the Superlance package in 3.0a7.

- Added release dates to CHANGES.txt.

- Reloading the config for an fcgi process group did not close the fcgi
socket - now, the socket is closed whenever the group is stopped as a unit
(including during config update). However, if you stop all the processes
in a group individually, the socket will remain open to allow for graceful
restarts of FCGI daemons. (Roger Hoover)

- Rereading the config did not pick up changes to the socket parameter in a
fcgi-program section. (Roger Hoover)

- Made a more friendly exception message when a FCGI socket cannot be
created. (Roger Hoover)

- Fixed a bug where the --serverurl option of supervisorctl would not
accept a URL with a "unix" scheme. (Jason Kirtland)

- Running the tests now requires the "mock" package. This dependency has
been added to "tests_require" in setup.py. (Roger Hoover)

- Added support for setting the ownership and permissions for an FCGI socket.
This is done using new "socket_owner" and "socket_mode" options in an
[fcgi-program:x] section. See the manual for details. (Roger Hoover)

- Fixed a bug where the FCGI socket reference count was not getting
decremented on spawn error. (Roger Hoover)

- Fixed a Python 2.6 deprecation warning on use of the "sha" module.

- Updated ez_setup.py to one that knows about setuptools 0.6c11.

- Running "supervisorctl shutdown" no longer dumps a Python backtrace
when it can't connect to supervisord on the expected socket. Thanks
to Benjamin Smith for reporting this.

- Removed use of collections.deque in our bundled version of asynchat
because it broke compatibility with Python 2.3.

- The sample configuration output by "echo_supervisord_conf" now correctly
shows the default for "autorestart" as "unexpected". Thanks to
William Dode for noticing it showed the wrong value.

3.0a7

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

- We now bundle our own patched version of Medusa contributed by Jason
Kirtland to allow Supervisor to run on Python 2.6. This was done
because Python 2.6 introduced backwards incompatible changes to
asyncore and asynchat in the stdlib.

- The console script ``memmon``, introduced in Supervisor 3.0a4, has
been moved to Superlance (http://pypi.python.org/pypi/superlance).
The Superlance package contains other useful monitoring tools designed
to run under Supervisor.

- Supervisorctl now correctly interprets all of the error codes that can
be returned when starting a process. Patch by Francesc Alted.

- New ``stdout_events_enabled`` and ``stderr_events_enabled`` config options
have been added to the ``[program:x]``, ``[fcgi-program:x]``, and
``[eventlistener:x]`` sections. These enable the emitting of new
PROCESS_LOG events for a program. If unspecified, the default is False.

If enabled for a subprocess, and data is received from the stdout or
stderr of the subprocess while not in the special capture mode used by
PROCESS_COMMUNICATION, an event will be emitted.

Event listeners can subscribe to either PROCESS_LOG_STDOUT or
PROCESS_LOG_STDERR individually, or PROCESS_LOG for both.

- Values for subprocess environment variables specified with environment=
in supervisord.conf can now be optionally quoted, allowing them to
contain commas. Patch by Tim Godfrey.

- Added a new event type, REMOTE_COMMUNICATION, that is emitted by a new
RPC method, supervisor.sendRemoteCommEvent().

- Patch for bug 268 (KeyError on ``here`` expansion for
stdout/stderr_logfile) from David E. Kindred.

- Add ``reread``, ``update``, and ``avail`` commands based on Anders
Quist's ``online_config_reload.diff`` patch. This patch extends
the "add" and "drop" commands with automagical behavior::

In supervisorctl:

supervisor> status
bar RUNNING pid 14864, uptime 18:03:42
baz RUNNING pid 23260, uptime 0:10:16
foo RUNNING pid 14866, uptime 18:03:42
gazonk RUNNING pid 23261, uptime 0:10:16
supervisor> avail
bar in use auto 999:999
baz in use auto 999:999
foo in use auto 999:999
gazonk in use auto 999:999
quux avail auto 999:999

Now we add this to our conf:

[group:zegroup]
programs=baz,gazonk

Then we reread conf:

supervisor> reread
baz: disappeared
gazonk: disappeared
quux: available
zegroup: available
supervisor> avail
bar in use auto 999:999
foo in use auto 999:999
quux avail auto 999:999
zegroup:baz avail auto 999:999
zegroup:gazonk avail auto 999:999
supervisor> status
bar RUNNING pid 14864, uptime 18:04:18
baz RUNNING pid 23260, uptime 0:10:52
foo RUNNING pid 14866, uptime 18:04:18
gazonk RUNNING pid 23261, uptime 0:10:52

The magic make-it-so command:

supervisor> update
baz: stopped
baz: removed process group
gazonk: stopped
gazonk: removed process group
zegroup: added process group
quux: added process group
supervisor> status
bar RUNNING pid 14864, uptime 18:04:43
foo RUNNING pid 14866, uptime 18:04:43
quux RUNNING pid 23561, uptime 0:00:02
zegroup:baz RUNNING pid 23559, uptime 0:00:02
zegroup:gazonk RUNNING pid 23560, uptime 0:00:02
supervisor> avail
bar in use auto 999:999
foo in use auto 999:999
quux in use auto 999:999
zegroup:baz in use auto 999:999
zegroup:gazonk in use auto 999:999

- Fix bug with symptom "KeyError: 'process_name'" when using a logfile name
including documented``process_name`` Python string expansions.

- Tab completions in the supervisorctl shell, and a foreground mode for
Supervisor, implemented as a part of GSoC. The supervisorctl program now
has a ``fg`` command, which makes it possible to supply inputs to a
process, and see its output/error stream in real time.

- Process config reloading implemented by Anders Quist. The
supervisorctl program now has the commands "add" and "drop".
"add <programname>" adds the process group implied by <programname>
in the config file. "drop <programname>" removes the process
group from the running configuration (it must already be stopped).
This makes it possible to add processes to and remove processes from
a running supervisord without restarting the supervisord process.

- Fixed a bug where opening the HTTP servers would fail silently
for socket errors other than errno.EADDRINUSE.

- Thanks to Dave Peticolas, using "reload" against a supervisord
that is running in the background no longer causes supervisord
to crash.

- Configuration options for logfiles now accept mixed case reserved
words (e.g. "AUTO" or "auto") for consistency with other options.

- childutils.eventdata was buggy, it could not deal with carriage returns
in data. See http://www.plope.com/software/collector/257. Thanks
to Ian Bicking.

- Per-process exitcodes= configuration now will not accept exit
codes that are not 8-bit unsigned integers (supervisord will not
start when one of the exit codes is outside the range of 0 - 255).

- Per-process ``directory`` value can now contain expandable values like
``%(here)s``. (See http://www.plope.com/software/collector/262).

- Accepted patch from Roger Hoover to allow for a new sort of
process group: "fcgi-program". Adding one of these to your
supervisord.conf allows you to control fastcgi programs. FastCGI
programs cannot belong to heterogenous groups.

The configuration for FastCGI programs is the same as regular programs
except an additional "socket" parameter. Substitution happens on the
socket parameter with the ``here`` and ``program_name`` variables::

[fcgi-program:fcgi_test]
;socket=tcp://localhost:8002
socket=unix:///path/to/fcgi/socket

- Supervisorctl now supports a plugin model for supervisorctl
commands.

- Added the ability to retrieve supervisord's own pid through
supervisor.getPID() on the XML-RPC interface or a new
"pid" command on supervisorctl.

3.0a6

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

- The RotatingFileLogger had a race condition in its doRollover
method whereby a file might not actually exist despite a call to
os.path.exists on the line above a place where we try to remove
it. We catch the exception now and ignore the missing file.

3.0a5

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

- Supervisorctl now supports persistent readline history. To
enable, add "history_file = <pathname>" to the ``[supervisorctl]``
section in your supervisord.conf file.

- Multiple commands may now be issued on one supervisorctl command
line, e.g. "restart prog; tail -f prog". Separate commands with a
single semicolon; they will be executed in order as you would
expect.

Page 7 of 10

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.