Supervisor 3.0a2 Released

  • Posted by Chris McDonough on August 25th, 2007

    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