Permalink
Commits on Jun 13, 2012
  1. Merge pull request #32 from Fantomas42/django1.4_and_future

    Compatibility with Django >= 1.4
    committed Jun 13, 2012
Commits on Jun 6, 2012
  1. removing references to AdminMediaHandler, because of incompatibilitie…

    …s with django1.4 and future removal in django1.5
    Fantomas42 committed Jun 6, 2012
Commits on Apr 12, 2011
  1. removing osx cruft

    K. Noah committed with Oct 28, 2010
  2. updated scripts as to what I have working in prod plus mods for rtyle…

    …rs comments
    K. Noah committed with Oct 28, 2010
  3. adding rc-scripts for fedora

    noah committed with Oct 22, 2010
  4. Increment the version counter!

    Change-Id: I11b01075ac3065acfb6c5604799871d39e5a34b8
    committed Apr 12, 2011
Commits on Apr 11, 2011
  1. Removing logging calls from signal handlers

    Seeing an issue in production where this signal handler is being handled
    in a way that causes the eventlet hub to *not* be able to properly switch back
    to its runloop properly.
    
    My hunch is that this is happening due to the use of the threadpool and signal
    handlers being forced to execute on the primary thread. That said, no repro
    case whatsoever. HEISENBUG!
    
    Change-Id: Id303e3755d89d7e2aab06dde17719fef843b01a2
    committed Apr 11, 2011
Commits on Mar 13, 2011
  1. Move the spawning source code up a level in the directory

    That pesky src/ dir has always bothered me
    
    Change-Id: I242538c34db43301fde056c3c16015a3d39b9efe
    committed Mar 13, 2011
Commits on Mar 3, 2011
  1. Cleanup some superfluous whitespace

    Change-Id: I27a0513f5f901650293d6d2bb1dd3b9761f8a743
    committed Mar 3, 2011
  2. Allow --threads=1 to use a threadpool of size 1 instead of making `-t…

    … 0` and `-t 1` synonymous
    
    I'm hoping there aren't too many people relying on this behavior >_>
    
    Change-Id: Ia8871ff4f831dbd3a22c6a364e9f2bbe3b1a0125
    committed Mar 3, 2011
  3. Prefer simplejson over json in the child too

    Change-Id: Ie04bf15f891758625205983cb094f07583616d7b
    committed Mar 3, 2011
  4. Bump the version of Spawning to 0.9.6

    Change-Id: I6b8977af2473898c5bb1b048b9882c863a596150
    committed Mar 3, 2011
Commits on Mar 2, 2011
  1. Monkey-patch prior to importing standard lib modules to prevent unnec…

    …essary blockage
    
    In production environments, I've seen a some threading.Lock acquire calls
    killing the controller. I believe this patch should resolve that issue:
    
        A child intends to die, starting replacement before it dies
        Controller.spawn_children(number=1)
        Traceback (most recent call last):
        File "/usr/local/bin/spawning", line 8, in <module>
            load_entry_point('Spawning==0.9.5', 'console_scripts', 'spawning')()
        File "/usr/local/lib/python2.6/site-packages/spawning/spawning_controller.py", line 501, in main
            start_controller(sock, factory, factory_args)
        File "/usr/local/lib/python2.6/site-packages/spawning/spawning_controller.py", line 278, in start_controller
            c.run()
        File "/usr/local/lib/python2.6/site-packages/spawning/spawning_controller.py", line 236, in run
            self.runloop()
        File "/usr/local/lib/python2.6/site-packages/spawning/spawning_controller.py", line 158, in runloop
            eventlet.sleep(0.1)
        File "/usr/local/lib/python2.6/site-packages/eventlet/greenthread.py", line 30, in sleep
            hub.switch()
        File "/usr/local/lib/python2.6/site-packages/eventlet/hubs/hub.py", line 177, in switch
            return self.greenlet.switch()
        File "/usr/local/lib/python2.6/site-packages/eventlet/hubs/hub.py", line 226, in run
            self.wait(sleep_time)
        File "/usr/local/lib/python2.6/site-packages/eventlet/hubs/poll.py", line 84, in wait
            presult = self.do_poll(seconds)
        File "/usr/local/lib/python2.6/site-packages/eventlet/hubs/epolls.py", line 55, in do_poll
            return self.poll.poll(seconds)
        File "/usr/local/lib/python2.6/site-packages/spawning/spawning_controller.py", line 212, in handle_deadlychild
        File "/usr/local/lib/python2.6/site-packages/eventlet/hubs/poll.py", line 84, in wait
            presult = self.do_poll(seconds)
        File "/usr/local/lib/python2.6/site-packages/eventlet/hubs/epolls.py", line 55, in do_poll
            return self.poll.poll(seconds)
        File "/usr/local/lib/python2.6/site-packages/spawning/spawning_controller.py", line 212, in handle_deadlychild
            self.spawn_children(number=1)
        File "/usr/local/lib/python2.6/site-packages/spawning/spawning_controller.py", line 121, in spawn_children
            self.log.debug('Controller.spawn_children(number=%d)' % number)
        File "/usr/local/lib/python2.6/logging/__init__.py", line 1044, in debug
            self._log(DEBUG, msg, args, **kwargs)
        File "/usr/local/lib/python2.6/logging/__init__.py", line 1173, in _log
            self.handle(record)
        File "/usr/local/lib/python2.6/logging/__init__.py", line 1183, in handle
            self.callHandlers(record)
        File "/usr/local/lib/python2.6/logging/__init__.py", line 1220, in callHandlers
            hdlr.handle(record)
        File "/usr/local/lib/python2.6/logging/__init__.py", line 681, in handle
            self.release()
        File "/usr/local/lib/python2.6/logging/__init__.py", line 635, in release
            self.lock.release()
        File "/usr/local/lib/python2.6/threading.py", line 142, in release
            self.__block.release()
        File "/usr/local/lib/python2.6/site-packages/eventlet/semaphore.py", line 80, in release
            def release(self, blocking=True):
        File "/usr/local/lib/python2.6/site-packages/spawning/spawning_controller.py", line 211, in handle_deadlychild
            self.log.debug('A child intends to die, starting replacement before it dies')
        File "/usr/local/lib/python2.6/logging/__init__.py", line 1044, in debug
            self._log(DEBUG, msg, args, **kwargs)
        File "/usr/local/lib/python2.6/logging/__init__.py", line 1173, in _log
            self.handle(record)
        File "/usr/local/lib/python2.6/logging/__init__.py", line 1183, in handle
            self.callHandlers(record)
        File "/usr/local/lib/python2.6/logging/__init__.py", line 1220, in callHandlers
            hdlr.handle(record)
        File "/usr/local/lib/python2.6/logging/__init__.py", line 677, in handle
            self.acquire()
        File "/usr/local/lib/python2.6/logging/__init__.py", line 628, in acquire
            self.lock.acquire()
        File "/usr/local/lib/python2.6/threading.py", line 123, in acquire
            rc = self.__block.acquire(blocking)
        File "/usr/local/lib/python2.6/site-packages/eventlet/semaphore.py", line 71, in acquire
            hubs.get_hub().switch()
        File "/usr/local/lib/python2.6/site-packages/eventlet/hubs/hub.py", line 162, in switch
            assert cur is not self.greenlet, 'Cannot switch to MAINLOOP from MAINLOOP'
        AssertionError: Cannot switch to MAINLOOP from MAINLOOP
    
    Change-Id: I18a63313279963ba51a18ee221137660be473c8f
    committed Mar 2, 2011
  2. Default to importing simplejson if we can find it (a bit faster)

    Change-Id: Ie247fce87521ae2ea415546b32e28bdef280e6ea
    committed Mar 2, 2011
Commits on Oct 6, 2010
  1. Prepare for 0.9.5 release with an updated changelog

    Change-Id: Icc3a0e8d1dabd0f72dea886813a3ae5fd6aca534
    committed Oct 6, 2010
Commits on Oct 4, 2010
  1. Controller starts a new batch of children immediately when reloading.…

    … This fixes #21
    
    Tweaked css a little bit in the status page after looking at a lot of inactive children.
    rdw committed with Oct 4, 2010
  2. Rudimentary log file analyzer, intended as much as a library as a com…

    …mand-line tool.
    rdw committed with Oct 2, 2010
  3. A few tweaks to the status page so that we can continue to see child …

    …status while the child is finishing up its requests.
    rdw committed with Oct 1, 2010
  4. Adds status health page to the Spawning controller. This status page

    listens on a different port and provides information about the state
    of the child processes in HTML and JSON formats.
    rdw committed with Oct 1, 2010
Commits on Sep 25, 2010
  1. Fixes rtyler/Spawning#3, SIGHUP to parent causes it to die under load…

    …, when it should be restarting gracefully.
    
    The bug was caused by the os.close() in kill_children, which causes the controller to reuse pipe filenos which causes problems when the children take a while to close.  The solution is to only close the pipe when the child actually exits (which is already in the code).
    rdw committed with Sep 25, 2010
Commits on Sep 18, 2010
Commits on Sep 13, 2010
  1. Prevent negative --threads sizes, disable changing of tpool size for …

    …1-thread as well as 0-threads
    
    Change-Id: I06e8656b9b0e7f248711c701685b52b0458a5846
    committed Sep 13, 2010
  2. When using monkey-patching (--threads=0) prevent the setting the tpoo…

    …l size to zero
    
    This will prevent the ability to use eventlet.tpool or eventlet.db_pool later
    on
    
    Thanks to rdw@ for pointing out the issue
    
    Change-Id: I1013dd3df1516dc99db37d8e54ff69a9a964bd2d
    committed Sep 13, 2010
Commits on Aug 23, 2010
  1. Fix the command name for the readme

    Change-Id: I2ced8b40f2367c849327faa8825ab3152b2eba59
    committed Aug 23, 2010
  2. Create the news entries for 0.9.4

    Change-Id: I381edec203516e89d3dfd34270b19f81c2c9410d
    committed Aug 23, 2010
  3. Use eventlet 0.9.12 which corrects an issue on some 2.6 installs

    Change-Id: I5725d1dea484935aa21ac9498171603c36d40c5f
    committed Aug 23, 2010
Commits on Aug 18, 2010
  1. Bump eventlet dependency

    Change-Id: I7394a92601273c9be45a0fe42868a02b87554c2a
    committed Aug 18, 2010
  2. Fix pipe leakage courtesy of rdw@

    closes issue #13
    
    Change-Id: If482f27c9d37b67b49f4720e1f99e57c7686526b
    committed Aug 18, 2010
  3. Prevent proxying string returns when using eventlet.tpool

    Honestly you probably shouldn't return strings from the wsgi
    app but just in case..
    
    Change-Id: Id7a4604645009235961a7f88b0bea72e2eeeb27d
    committed Aug 18, 2010
Commits on Aug 14, 2010
  1. Improve thread performance by passing through literals directly inste…

    …ad of wrapping them in Proxy objects.
    rdw committed with Aug 5, 2010
Commits on Jul 19, 2010
  1. allow setup.py to be executed

    ashcrow committed Jul 19, 2010
Commits on Jul 18, 2010
  1. Re-connect --watch to the child so it will properly die when the relo…

    …ader sends SIGHUP
    
    Change-Id: I7ed07d5555054da019bd7a367e6c507e50e4c708
    committed Jul 18, 2010
Commits on Jul 17, 2010
  1. Prevent hard-failure if our config doesn't have the 'dev' key

    Change-Id: Ia5f7bcad3587c254c0d121d13d8ddcac3a53236d
    committed Jul 17, 2010