Apologies, I seem to have sent this to the wrong list. (Though now
that it's out here...any answers would be most welcome. :)
On 2/14/06, I wrote:
> Hi all,
>
> After many hours, I think I've found a bug in the logging module!
>
> If you add a (stdout) StreamHandler to a logger, then detach the
> terminal for that stdout, subsequent calls to log() will hang the
> calling thread.
>
> To reproduce this, write the following scripts (this was a small test
> case I came up with - maybe there's something simpler):
>
> $ cat tryhup.bash
> #!/usr/bin/env bash
> scp hup.* localhost:
> ssh localhost './hup.bash ; while true ; do sleep 1 ; done'
>
> $ cat hup.bash
> #!/usr/bin/env bash
> ./hup.py &
>
> $ cat hup.py
> #!/usr/bin/env python
> import time
> import logging
> f = file( '/tmp/hup.out', 'w' )
> try:
>logging.basicConfig( filename = '/tmp/lup.out', filemode = 'w' )
># XXX PROBLEM LINE BELOW
>logging.getLogger('').addHandler( logging.StreamHandler() )
>while True:
>f.write( '---\n' )
>f.flush()
>logging.critical( '==' )
>time.sleep(1)
> finally:
>f.close()
>
> Run ./tryhup.bash. It will sit in an idle spin. Monitor the files
> /tmp/hup.out and /tmp/lup.out. Hit Ctrl-C on tryhup to kill it. The
> python process is still running, but is stalled (the .out files are no
> longer changing).
>
> If you remove the above labeled line, however, this doesn't happen.
>
> Can anybody please acknowledge this bug? Any temporary workarounds to
> this problem? Thanks in advance for looking into this and for hearing
> me in!
>
--
http://mail.python.org/mailman/listinfo/python-list