I have inherited a solution made up of an HP w/apache 1.3.26 and modperl
1.3.?? config.
The modperl makes some C calls. One of the C calls spawns 2 pthreads.
Seems when the apache process gets a signal to terminate it cores upon exit.
If I do not spawn the two threads things seem much more stable. i even made
sure the 2 pthreads mask out all signals. (I have to spawn these threads,
it was just a test).
The odd thing is that stack trace in the core shows that the main
thread (1), is now one of the spawned threads, and the main thread is
thread 3. I actually have one core where 2 threads stack traces go
up to main. Seems apache is hijacking threads and strange things are going
on.
Any ideas? Are there certain things i should know or do in this
multi-threaded env or is it not supported?
Here is the stack of thread 3 of the core:
#0 0xc01ecb88 in kill () from /usr/lib/libc.2
#1 0x179254 in sig_coredump (sig=10) at
http_main.c:3081
#2 <signal handler called>
#3 0xc0175160 in free () from /usr/lib/libc.2
#4 0x1e3d70 in Perl_safesysfree ()
#5 0x1c1a40 in perl_destruct ()
#6 0x632b8 in perl_shutdown (s=0x400640b8,
p=0x409dec58) at
mod_perl.c:294
#7 0x684a8 in perl_child_exit (s=0x400640b8,
p=0x409dec58) at
mod_perl.c:958
#8 0x67cfc in perl_child_exit_cleanup
(data=0x409dee00 "@\006@\270@\235\354X@\235\356")
at mod_perl.c:926
#9 0x15cf14 in run_cleanups (c=0x409dee08) at
alloc.c:1713
#10 0x15a060 in ap_clear_pool (a=0x409dec58) at
alloc.c:538
#11 0x15a190 in ap_destroy_pool (a=0x409dec58) at
alloc.c:568
#12 0x175690 in clean_child_exit (code=0) at
http_main.c:512
#13 0x1792dc in just_die (sig=1) at http_main.c:3109
#14 <signal handler called>