Supervisor v3.0.a2 Release Notes

Release Date: 2007-08-24 // over 16 years ago
    • ๐Ÿ›  Fixed the README.txt example for defining the supervisor RPC interface in the configuration file. Thanks to Drew Perttula.

    • ๐Ÿ›  Fixed a bug where process communication events would not have the proper payload if the payload data was very short.

    • when supervisord attempted to kill a process with SIGKILL after the process was not killed within "stopwaitsecs" using a "normal" kill signal, supervisord would crash with an improper AssertionError. Thanks to Calvin Hendryx-Parker.

    • ๐Ÿง On Linux, Supervisor would consume too much CPU in an effective "busywait" between the time a subprocess exited and the time at which supervisor was notified of its exit status. Thanks to Drew Perttula.

    • RPC interface behavior change: if the RPC method "sendProcessStdin" is called against a process that has closed its stdin file descriptor (e.g. it has done the equivalent of "sys.stdin.close(); os.close(0)"), we return a NO_FILE fault instead of accepting the data.

    • ๐Ÿ”„ Changed the semantics of the process configuration autorestart parameter with respect to processes which move between the RUNNING and EXITED state. autorestart was previously a boolean. Now it's a trinary, accepting one of false, unexpected, or true. If it's false, a process will never be automatically restarted from the EXITED state. If it's unexpected, a process that enters the EXITED state will be automatically restarted if it exited with an exit code that was not named in the process config's exitcodes list. If it's true, a process that enters the EXITED state will be automatically restarted unconditionally. The default is now unexpected (it was previously true). The readdition of this feature is a reversion of the behavior change note in the changelog notes for 3.0a1 that asserted we never cared about the process' exit status when determining whether to restart it or not.

    • setup.py develop (and presumably setup.py install) would fail under Python 2.3.3, because setuptools attempted to import splituser from urllib2, and it didn't exist.

    • It's now possible to use setup.py install and setup.py develop on systems which do not have a C compiler if you set the environment variable "NO_MELD3_EXTENSION_MODULES=1" in the shell in which you invoke these commands (versions of meld3 > 0.6.1 respect this envvar and do not try to compile optional C extensions when it's set).

    • โœ… The test suite would fail on Python versions <= 2.3.3 because the "assertTrue" and "assertFalse" methods of unittest.TestCase didn't exist in those versions.

    • The supervisorctl and supervisord wrapper scripts were disused in favor of using setuptools' console_scripts entry point settings.

    • ๐Ÿ“š Documentation files and the sample configuration file are put into the generated supervisor egg's doc directory.

    • ๐ŸŒ Using the web interface would cause fairly dramatic memory leakage. We now require a version of meld3 that does not appear to leak memory from its C extensions (0.6.3).