Supervisor 3.0a2 Released
-
While I still don’t have some of the features that are going to be required to make a final release of 3.0, enough bugs have been fixed since 3.0a1 to warrant another alpha ( download,
info ). Thanks to Mike Naberezny, Drew Perttula, and Calvin Hendryx-Parker for supplying bug reports and fixes:
3.0a2 - 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).

Post a comment