Supervisor Changelog

What's new in Supervisor 3.1.3

Nov 24, 2014
  • Fixed an XML-RPC bug where the ElementTree-based parser handled strings like ``hello`` but not strings like `hello``, which are valid in the XML-RPC spec. This fixes compatibility with the Apache XML-RPC client for Java and possibly other clients.

New in Supervisor 3.1.2 (Sep 16, 2014)

  • Fixed a bug where tail group:* in supervisorctl would show a 500 Internal Server Error rather than a BAD_NAME fault.
  • Fixed a bug where the web interface would show a 500 Internal Server Error instead of an error message for some process start faults.
  • Removed medusa files not used by Supervisor.

New in Supervisor 3.1.1 (Aug 12, 2014)

  • Fixed a bug where ``supervisorctl tail -f name`` output would stop if log rotation occurred while tailing.
  • Prevent a crash when a greater number file descriptors were attempted to be opened than permitted by the environment when starting a bunch of programs. Now, instead a spawn error is logged.
  • Compute "channel delay" properly, fixing symptoms where a supervisorctl start command would hang for a very long time when a process (or many processes) are spewing to their stdout or stderr. See comments attached to https://github.com/Supervisor/supervisor/pull/263 .
  • Added docs/conf.py, docs/Makefile.py, and supervisor/scripts/*.py to the release package.

New in Supervisor 3.1.0 (Aug 5, 2014)

  • The output of the start, stop, restart, and clear commands in supervisorctl has been changed to be consistent with the status command. Previously, the status command would show a process like foo:foo_01 but starting that process would show foo_01: started (note the group prefix foo: was missing). Now, starting the process will show foo:foo_01: started. Suggested by Chris Wood.
  • The status command in supervisorctl now supports group name syntax: status group:*.
  • The process column in the table output by the status command in supervisorctl now expands to fit the widest name.
  • The update command in supervisorctl now accepts optional group names. When group names are specified, only those groups will be updated. Patch by Gary M. Josack.
  • Tab completion in supervisorctl has been improved and now works for more cases. Thanks to Mathieu Longtin and Marc Abramowitz for the patches.
  • Attempting to start or stop a process group in supervisorctl with the group:* syntax will now show the same error message as the process syntax if the name does not exist. Previously, it would show a Python exception. Patch by George Ang.
  • Added new PROCESS_GROUP_ADDED and PROCESS_GROUP_REMOVED events. These events are fired when process groups are added or removed from Supervisor’s runtime configuration when using the add and remove commands in supervisorctl. Patch by Brent Tubbs.
  • Stopping a process in the backoff state now changes it to the stopped state. Previously, an attempt to stop a process in backoff would be ignored. Patch by Pascal Varet.
  • The directory option is now expanded separately for each process in a homogeneous process group. This allows each process to have its own working directory. Patch by Perttu Ranta-aho.
  • Removed setuptools from the requires list in setup.py because it caused installation issues on some systems.
  • Fixed a bug in Medusa where the HTTP Basic authorizer would cause an exception if the password contained a colon. Thanks to Thomas Guttler for reporting this issue.
  • Fixed an XML-RPC bug where calling supervisor.clearProcessLogs() with a name like group:* would cause a 500 Internal Server Error rather than returning a BAD_NAME fault.
  • Fixed a hang that could occur in supervisord if log rotation is used and an outside program deletes an active log file. Patch by Magnus Lycka.
  • A warning is now logged if a glob pattern in an [include] section does not match any files. Patch by Daniel Hahler.

New in Supervisor 3.0 Alpha 9 (Feb 12, 2011)

  • 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.