New submission from Julien Palard: I have a script that close its socket to /dev/log immediatly before using it, causing it to fail, here is the code : {{{ #!/usr/bin/env python # -*- coding: utf-8 -*- import logging import logging.handlers import daemon from daemon.pidlockfile import PIDLockFile
logger = logging.getLogger('twitterCounter') logger.addHandler(logging.handlers.SysLogHandler(address='/dev/log')) logger.setLevel(logging.DEBUG) logger.info("Hello") with daemon.DaemonContext(): logger.info("World !") }}} and here is an strace : {{{ strace -s999 -f /tmp/test.py 2>&1 | grep -C2 ^connect // Outside daemonContext, all is OK // Note that inside daemonContext, all is OK if we do not log outside daemonContext. close(3) = 0 socket(PF_FILE, SOCK_DGRAM, 0) = 3 connect(3, {sa_family=AF_FILE, path="/dev/log"}, 10) = 0 sendto(3, "<14>Hello\0", 10, 0, NULL, 0) = 10 getuid() = 1001 -- // Second log, inside daemonContext, with the erroneous "socket(); close()" : socket(PF_FILE, SOCK_DGRAM, 0) = 3 close(3) = 0 connect(3, {sa_family=AF_FILE, path="/dev/log"}, 10) = -1 EBADF (Bad file descriptor) close(3) = -1 EBADF (Bad file descriptor) // As the previous try has failed, SysLogHandler seems to give another try with different parameters, failing too as expected socket type is DGRAM : socket(PF_FILE, SOCK_STREAM, 0) = 3 connect(3, {sa_family=AF_FILE, path="/dev/log"}, 10) = -1 EPROTOTYPE (Protocol wrong type for socket) }}} ---------- components: Library (Lib) messages: 189283 nosy: Julien.Palard priority: normal severity: normal status: open title: SysLogHandler closes connection before using it type: behavior versions: Python 2.7 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue17981> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com