Not particularly useful unfortunately.
Next thing would be to determine if crash happens as a result of
import WSGI script file itself, or due to call of WSGI application.
Thus at head of WSGI script file add:
import sys
print >> sys.stderr, "START OF WSGI SCRIPT FILE"
and at end of WSGI script file add:
print >> sys.stderr, "END OF WSGI SCRIPT FILE"
If it isn't crashing at load of WSGI script file, both should appear
in Apache error log.
If does crash, add more debug output like that to ascertain which
module being imported causes it to crash.
If that is a big module, then need to recursively work out what module
that module imports and do the import at start of WSGI script file and
try and narrow down which module causes crash.
I can't remember, but will test later, if one can manage to set
environment variable to force Python to log all imports. This will
help narrow it down quicker.
Other option is since works in %{GLOBAL}, once everything imported,
iterate over modules in sys.modules and find all that have __file__
referencing a .so file and print that out. That will tell you which C
extension modules are being used. Standard ones should be okay, but
third party ones would be worth a closer look.
More later.
Graham
2008/9/30 Pigletto <[EMAIL PROTECTED]>:
>
> Today I was not able to start my application as I got segmentation
> faults constantly.
> I've attached gdb and that is the result:
>
> (gdb) cont
> Continuing.
>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread -1212216416 (LWP 29850)]
> PyErr_Occurred () at Python/errors.c:80
> 80 Python/errors.c: No such file or directory.
> in Python/errors.c
> (gdb) bt
> #0 PyErr_Occurred () at Python/errors.c:80
> #1 0x002ce167 in _PyObject_GC_Malloc (basicsize=40) at Modules/
> gcmodule.c:1326
> #2 0x002ce21c in _PyObject_GC_NewVar (tp=0x3083c0, nitems=7) at
> Modules/gcmodule.c:1352
> #3 0x00267c33 in PyTuple_New (size=7) at Objects/tupleobject.c:68
> #4 0x0041cdc0 in ?? ()
> #5 0x00000007 in ?? ()
> #6 0x0000001c in ?? ()
> #7 0xb7beab18 in ?? ()
> #8 0x0041cd4e in ?? ()
> #9 0xb7be9af8 in ?? ()
> #10 0xb758b22c in ?? ()
> #11 0xb7be9b80 in ?? ()
> #12 0x0042fed4 in ?? ()
> #13 0x0042fed4 in ?? ()
> #14 0xb7be9acc in ?? ()
> #15 0xb7be9a2c in ?? ()
> #16 0xfbad8001 in ?? ()
> #17 0xb7be9ca0 in ?? ()
> #18 0xb7be9ca0 in ?? ()
> #19 0xb7be9ca0 in ?? ()
> #20 0xb7be9ca0 in ?? ()
> #21 0x0042fed4 in ?? ()
> #22 0x08098608 in apr_bucket_type_eos ()
> #23 0x09ba7920 in ?? ()
> #24 0x0000002c in ?? ()
> #25 0xffffffff in ?? ()
> #26 0x00000413 in ?? ()
> #27 0x00000000 in ?? ()
> (gdb) thread apply all bt
>
> Thread 4 (Thread -1211159648 (LWP 29848)):
> #0 0x00ad57a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0x00bb33b1 in ___newselect_nocancel () from /lib/tls/libc.so.6
> #2 0x0097826b in apr_sleep (t=299000053) at time/unix/time.c:246
> #3 0x00a76110 in wsgi_monitor_thread (thd=0x9a93420, data=0x9a92dd0)
> at mod_wsgi.c:8367
> #4 0x0097783c in dummy_worker (opaque=0xfffffdfe) at threadproc/unix/
> thread.c:142
> #5 0x00c723cc in start_thread () from /lib/tls/libpthread.so.0
> #6 0x00bba96e in clone () from /lib/tls/libc.so.6
>
> Thread 3 (Thread -1211688032 (LWP 29849)):
> #0 0x00ad57a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0x00bb33b1 in ___newselect_nocancel () from /lib/tls/libc.so.6
> #2 0x0097826b in apr_sleep (t=1000000) at time/unix/time.c:246
> #3 0x00a75f6a in wsgi_deadlock_thread (thd=0x9a93440, data=0x9a92dd0)
> at mod_wsgi.c:8279
> #4 0x0097783c in dummy_worker (opaque=0xfffffdfe) at threadproc/unix/
> thread.c:142
> #5 0x00c723cc in start_thread () from /lib/tls/libpthread.so.0
> #6 0x00bba96e in clone () from /lib/tls/libc.so.6
>
> Thread 2 (Thread -1212216416 (LWP 29850)):
> #0 PyErr_Occurred () at Python/errors.c:80
> #1 0x002ce167 in _PyObject_GC_Malloc (basicsize=40) at Modules/
> gcmodule.c:1326
> #2 0x002ce21c in _PyObject_GC_NewVar (tp=0x3083c0, nitems=7) at
> Modules/gcmodule.c:1352
> #3 0x00267c33 in PyTuple_New (size=7) at Objects/tupleobject.c:68
> #4 0x0041cdc0 in ?? ()
> #5 0x00000007 in ?? ()
> #6 0x0000001c in ?? ()
> #7 0xb7beab18 in ?? ()
> #8 0x0041cd4e in ?? ()
> #9 0xb7be9af8 in ?? ()
> #10 0xb758b22c in ?? ()
> #11 0xb7be9b80 in ?? ()
> #12 0x0042fed4 in ?? ()
> #13 0x0042fed4 in ?? ()
> #14 0xb7be9acc in ?? ()
> #15 0xb7be9a2c in ?? ()
> #16 0xfbad8001 in ?? ()
> #17 0xb7be9ca0 in ?? ()
> #18 0xb7be9ca0 in ?? ()
> #19 0xb7be9ca0 in ?? ()
> #20 0xb7be9ca0 in ?? ()
> #21 0x0042fed4 in ?? ()
> #22 0x08098608 in apr_bucket_type_eos ()
> #23 0x09ba7920 in ?? ()
> #24 0x0000002c in ?? ()
> #25 0xffffffff in ?? ()
> #26 0x00000413 in ?? ()
> #27 0x00000000 in ?? ()
>
> ---Type <return> to continue, or q <return> to quit---
> Thread 1 (Thread -1208453440 (LWP 29847)):
> #0 0x00ad57a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2
> #1 0x00c787c7 in do_sigwait () from /lib/tls/libpthread.so.0
> #2 0x00c7888f in sigwait () from /lib/tls/libpthread.so.0
> #3 0x009775ea in apr_signal_thread (signal_handler=0xa75e30
> <wsgi_check_signal>) at threadproc/unix/signals.c:383
> #4 0x00a76b61 in wsgi_start_process (p=0x9a0d0a8, daemon=0x9a92dd0)
> at mod_wsgi.c:8483
> #5 0x00a7707a in wsgi_manage_process (reason=0, data=0x9a92dd0,
> status=11) at mod_wsgi.c:7708
> #6 0x009703c8 in apr_proc_other_child_alert (proc=0xbfea8f80,
> reason=0, status=11) at misc/unix/otherchild.c:115
> #7 0x080817ad in ap_mpm_run (_pconf=0x9a0d0a8, plog=0x9a3b160,
> s=0x9a0ef48) at worker.c:1611
> #8 0x08061d9c in main (argc=3, argv=0xbfea90e4) at main.c:730
> (gdb) cont
> Continuing.
>
> Program received signal SIGSEGV, Segmentation fault.
> PyErr_Occurred () at Python/errors.c:80
> 80 in Python/errors.c
> (gdb) cont
> Continuing.
>
> Program terminated with signal SIGSEGV, Segmentation fault.
> The program no longer exists.
> (gdb) quit
>
>
> After switching to WSGIApplicationGroup %{GLOBAL} my application
> started, but I have few more applications on this apache instance so I
> can't use this kind of setup.
> Is there anything interesting in the above gdb log? Any other commands
> that I can use next time?
>
> --
> Maciej Wisniowski
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"modwsgi" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/modwsgi?hl=en
-~----------~----~----~----~------~----~------~--~---