[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#205099: libc6: syslog makes cgi process hang after openlog() followed by syslog()



Title: libc6: syslog makes cgi process hang after openlog() followed by syslog()

Package: libc6
Version: 2.3.2-2
Severity: critical
Justification: breaks unrelated software



-- System Information:
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux gglinux 2.4.20 #1 SMP Fri Mar 21 19:08:42 CET 2003 i686
Locale: LANG=C, LC_CTYPE=C

Versions of packages libc6 depends on:
ii  libdb1-compat                 2.1.3-7    The Berkeley database routines [gl

-- no debconf information
After upgrading to glibc-2.3.2 (from 2.3.1-17) a cgi program of mine
suddenly started to hang.
The program is using syslog() to report error conditions.
After a bit of investigation I came to the following test case:
        #!/usr/bin/python

        import syslog
        import sys

        print """\
        content-type: text/plain

        """ ; sys.stdout.flush()

        syslog.syslog ("Should be ok")

        print "First syslog run" ; sys.stdout.flush()

        syslog.openlog (
                "test_libc6", syslog.LOG_PID, syslog.LOG_LOCAL1)

        print "openlog run" ; sys.stdout.flush()

        syslog.syslog ("Should be also ok")

        print "finished" ; sys.stdout.flush()

When calling this program, the web browser seems to hang, the apache
process used for the processing of this request hangs:
        F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
        5 S    33 11536 11534  0  69   0 -  1891 rt_sig ?        00:00:00 apache

When using gdb to debug the hanging process, I get the following
backtrace:
        (root@gglinux 661) gdb /usr/sbin/apache
        GNU gdb 5.3-debian
        Copyright 2002 Free Software Foundation, Inc.
        GDB is free software, covered by the GNU General Public License, and you
        are
        welcome to change it and/or distribute copies of it under certain
        conditions.
        Type "show copying" to see the conditions.
        There is absolutely no warranty for GDB.  Type "show warranty" for
        details.
        This GDB was configured as "i386-linux"...(no debugging symbols
        found)...
        (gdb) attach 11536
        Attaching to program: /usr/sbin/apache, process 11536
        Reading symbols from /lib/libm.so.6...(no debugging symbols
        found)...done.
        Loaded symbols for /lib/libm.so.6
        Reading symbols from /lib/libcrypt.so.1...(no debugging symbols
        found)...done.
        Loaded symbols for /lib/libcrypt.so.1
        Reading symbols from /usr/lib/libdb-4.1.so...(no debugging symbols
        found)...
        done.
        Loaded symbols for /usr/lib/libdb-4.1.so
        Reading symbols from /usr/lib/libexpat.so.1...(no debugging symbols
        found)...
        done.
        Loaded symbols for /usr/lib/libexpat.so.1
        Reading symbols from /lib/libdl.so.2...(no debugging symbols
        found)...done.
        Loaded symbols for /lib/libdl.so.2
        Reading symbols from /lib/libc.so.6...(no debugging symbols
        found)...done.
        Loaded symbols for /lib/libc.so.6
        Reading symbols from /lib/ld-linux.so.2...(no debugging symbols
        found)...done.
        Loaded symbols for /lib/ld-linux.so.2
        Reading symbols from /lib/libpthread.so.0...(no debugging symbols
        found)...
        done.
        [New Thread 16384 (LWP 11536)]
        Loaded symbols for /lib/libpthread.so.0
        Reading symbols from /lib/libnss_compat.so.2...(no debugging symbols
        found)...
        done.
        Loaded symbols for /lib/libnss_compat.so.2
        Reading symbols from /lib/libnsl.so.1...(no debugging symbols
        found)...done.
        Loaded symbols for /lib/libnsl.so.1
        Reading symbols from /lib/libnss_nis.so.2...(no debugging symbols
        found)...
        done.
        Loaded symbols for /lib/libnss_nis.so.2
        Reading symbols from /lib/libnss_files.so.2...(no debugging symbols
        found)...
        done.
        Loaded symbols for /lib/libnss_files.so.2
        Reading symbols from /usr/lib/apache/1.3/mod_log_config.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_log_config.so
        Reading symbols from /usr/lib/apache/1.3/mod_mime_magic.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_mime_magic.so
        Reading symbols from /usr/lib/apache/1.3/mod_mime.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_mime.so
        Reading symbols from /usr/lib/apache/1.3/mod_negotiation.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_negotiation.so
        Reading symbols from /usr/lib/apache/1.3/mod_status.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_status.so
        Reading symbols from /usr/lib/apache/1.3/mod_info.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_info.so
        Reading symbols from /usr/lib/apache/1.3/mod_autoindex.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_autoindex.so
        Reading symbols from /usr/lib/apache/1.3/mod_dir.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_dir.so
        Reading symbols from /usr/lib/apache/1.3/mod_cgi.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_cgi.so
        Reading symbols from /usr/lib/apache/1.3/mod_asis.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_asis.so
        Reading symbols from /usr/lib/apache/1.3/mod_userdir.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_userdir.so
        Reading symbols from /usr/lib/apache/1.3/mod_alias.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_alias.so
        Reading symbols from /usr/lib/apache/1.3/mod_rewrite.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_rewrite.so
        Reading symbols from /usr/lib/apache/1.3/mod_access.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_access.so
        Reading symbols from /usr/lib/apache/1.3/mod_auth.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_auth.so
        Reading symbols from /usr/lib/apache/1.3/libproxy.so...
        ---Type <return> to continue, or q <return> to quit---
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/libproxy.so
        Reading symbols from /usr/lib/apache/1.3/mod_expires.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_expires.so
        Reading symbols from /usr/lib/apache/1.3/mod_headers.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_headers.so
        Reading symbols from /usr/lib/apache/1.3/mod_unique_id.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_unique_id.so
        Reading symbols from /usr/lib/apache/1.3/mod_setenvif.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_setenvif.so
        Reading symbols from /usr/lib/apache/1.3/mod_gzip.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_gzip.so
        Reading symbols from /lib/libdb2.so.2...(no debugging symbols
        found)...done.
        Loaded symbols for /lib/libdb2.so.2
        Reading symbols from /usr/lib/apache/1.3/mod_python.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/apache/1.3/mod_python.so
        Reading symbols from /lib/libutil.so.1...(no debugging symbols
        found)...done.
        Loaded symbols for /lib/libutil.so.1
        Reading symbols from /usr/lib/python2.2/lib-dynload/strop.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/python2.2/lib-dynload/strop.so
        Reading symbols from /usr/lib/python2.2/lib-dynload/time.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/python2.2/lib-dynload/time.so
        Reading symbols from /usr/lib/python2.2/lib-dynload/syslog.so...
        (no debugging symbols found)...done.
        Loaded symbols for /usr/lib/python2.2/lib-dynload/syslog.so
        0x403f4b88 in __pthread_sigsuspend () from /lib/libpthread.so.0
        (gdb) bt
        #0  0x403f4b88 in __pthread_sigsuspend () from /lib/libpthread.so.0
        #1  0x403f4999 in __pthread_wait_for_restart_signal ()
           from /lib/libpthread.so.0
        #2  0x403f6159 in __pthread_alt_lock () from /lib/libpthread.so.0
        #3  0x403f34e6 in pthread_mutex_lock () from /lib/libpthread.so.0
        #4  0x40202ead in vsyslog () from /lib/libc.so.6
        #5  0x40202a8d in syslog () from /lib/libc.so.6
        #6  0x405203b3 in initsyslog () from
        /usr/lib/python2.2/lib-dynload/syslog.so
        #7  0x40341316 in PyCFunction_Call () from
        /usr/lib/apache/1.3/mod_python.so
        #8  0x403640f6 in PyEval_EvalCode () from
        /usr/lib/apache/1.3/mod_python.so
        #9  0x40364bd1 in PyEval_EvalCodeEx () from
        /usr/lib/apache/1.3/mod_python.so
        #10 0x4036196b in PyEval_EvalCode () from
        /usr/lib/apache/1.3/mod_python.so
        #11 0x403869ef in PyImport_ExecCodeModuleEx ()
           from /usr/lib/apache/1.3/mod_python.so
        #12 0x40388ae3 in PyImport_AppendInittab ()
           from /usr/lib/apache/1.3/mod_python.so
        #13 0x4038710d in PyImport_ExecCodeModuleEx ()
           from /usr/lib/apache/1.3/mod_python.so
        #14 0x403897da in PyImport_AppendInittab ()
           from /usr/lib/apache/1.3/mod_python.so
        #15 0x40341316 in PyCFunction_Call () from
        /usr/lib/apache/1.3/mod_python.so
        #16 0x403640f6 in PyEval_EvalCode () from
        /usr/lib/apache/1.3/mod_python.so
        #17 0x40364bd1 in PyEval_EvalCodeEx () from
        /usr/lib/apache/1.3/mod_python.so
        #18 0x40365f24 in PyEval_GetFuncDesc () from
        /usr/lib/apache/1.3/mod_python.so
        #19 0x40364051 in PyEval_EvalCode () from
        /usr/lib/apache/1.3/mod_python.so
        #20 0x40364bd1 in PyEval_EvalCodeEx () from
        /usr/lib/apache/1.3/mod_python.so
        #21 0x403b3142 in PyStaticMethod_New () from
        /usr/lib/apache/1.3/mod_python.so
        #22 0x40329b20 in PyObject_Call () from
        /usr/lib/apache/1.3/mod_python.so
        #23 0x403310ae in PyMethod_Fini () from
        /usr/lib/apache/1.3/mod_python.so
        #24 0x40329b20 in PyObject_Call () from
        /usr/lib/apache/1.3/mod_python.so
        #25 0x40365bfc in PyEval_CallObjectWithKeywords ()
           from /usr/lib/apache/1.3/mod_python.so
        #26 0x40329af0 in PyObject_CallObject () from
        /usr/lib/apache/1.3/mod_python.so
        #27 0x40329d1e in PyObject_CallMethod () from
        /usr/lib/apache/1.3/mod_python.so
        #28 0x40321e2d in make_obcallback () from
        /usr/lib/apache/1.3/mod_python.so
        #29 0x40322e6f in python_finalize () from
        /usr/lib/apache/1.3/mod_python.so
        #30 0x08053a56 in ap_invoke_handler ()
        #31 0x08062d8a in ap_some_auth_required ()
        #32 0x08062f6f in ap_process_request ()
        #33 0x0805c880 in ap_child_terminate ()
        #34 0x0805c9cb in ap_child_terminate ()
        #35 0x0805cab8 in ap_child_terminate ()
        #36 0x0805d3e5 in ap_child_terminate ()
        #37 0x0805d8f2 in main ()
        #38 0x40153d04 in __libc_start_main () from /lib/libc.so.6
        (gdb) q
        A debugging session is active.
        Do you still want to close the debugger?(y or n) y
        Detaching from program: /usr/sbin/apache, process 11536

When I don't use mod_python as an app accelerator the problem does not
occur.
When I take out the openlog() line the problem does not occur.

The version of apache I'm using is:
ii  apache         1.3.27.0-2     Versatile, high-performance HTTP server

The version of mod_python is:
ii  libapache-mod- 2.7.8-7        An Apache module that embeds Python 2.2 with

The python version I'm using is:
ii  python2.2      2.2.3-2        An interactive high-level object-oriented la

Cheers,

Gottfried Gan?auge


Reply to: