3.0a2 (2007-08-24)

  • Fixed the README.txt example for defining the supervisor RPCinterface in the configuration file. Thanks to Drew Perttula.
  • Fixed a bug where process communication events would not have theproper payload if the payload data was very short.
  • when supervisord attempted to kill a process with SIGKILL afterthe process was not killed within “stopwaitsecs” using a “normal”kill signal, supervisord would crash with an improperAssertionError. 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 atwhich supervisor was notified of its exit status. Thanks to DrewPerttula.
  • RPC interface behavior change: if the RPC method“sendProcessStdin” is called against a process that has closed itsstdin file descriptor (e.g. it has done the equivalent of“sys.stdin.close(); os.close(0)”), we return a NO_FILE faultinstead of accepting the data.
  • Changed the semantics of the process configuration autorestartparameter with respect to processes which move between the RUNNING andEXITED state. autorestart was previously a boolean. Now it’s atrinary, accepting one of false, unexpected, or true. If it’sfalse, a process will never be automatically restarted from the EXITEDstate. If it’s unexpected, a process that enters the EXITED state willbe automatically restarted if it exited with an exit code that was notnamed in the process config’s exitcodes list. If it’s true, aprocess that enters the EXITED state will be automatically restartedunconditionally. The default is now unexpected (it was previouslytrue). The readdition of this feature is a reversion of the behaviorchange note in the changelog notes for 3.0a1 that asserted we never caredabout the process’ exit status when determining whether to restart it ornot.
  • setup.py develop (and presumably setup.py install) would fail under Python2.3.3, because setuptools attempted to import splituser from urllib2,and it didn’t exist.
  • It’s now possible to use setup.pyinstall and setup.pydevelop onsystems 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 thesecommands (versions of meld3 > 0.6.1 respect this envvar and do not try tocompile optional C extensions when it’s set).
  • The test suite would fail on Python versions <= 2.3.3 becausethe “assertTrue” and “assertFalse” methods of unittest.TestCasedidn’t exist in those versions.
  • The supervisorctl and supervisord wrapper scripts were disused infavor of using setuptools’ console_scripts entry point settings.
  • Documentation files and the sample configuration file are put intothe generated supervisor egg’s doc directory.
  • Using the web interface would cause fairly dramatic memoryleakage. We now require a version of meld3 that does not appearto leak memory from its C extensions (0.6.3).