Hello Thanh, This is regarding apache
which is not coming up with PHP. If you can give me some suggestions I will
move it further. I found that Apache has a
DSO(Dynamic Shared Object). Using this DSO it tries to register any third party
shared library which has been compiled as a plug in to be used by apache. When
I load PHP module then this DSO registers one function to be called at the time
of cleanup. During startup Apache runs this cleanup once and in this process
when it calls that function(dso_cleanup) which in turn calls dlclose() causes
the SIGABRT to be issued because of which Apache aborts. I am not able to fugure out
why at this moment it aborts. One reason can be that handle which is passed in
dlclose does not exist. But dlsym suggests that handle exists. Here is the GDB
output I got. (gdb) bt #0 0x0f584430 in
__do_global_dtors_aux () from
/home/msingh/httpd-2.2.3/usr/local/modules/libphp5.so #1 0x0f7bb288 in _fini () from
/home/msingh/httpd-2.2.3/usr/local/modules/libphp5.so #2 0x0fb4f170 in _dl_close
() from /lib/libc.so.6 #3 0x0fba1fe4 in dlopen ()
from /lib/libdl.so.2 #4 0x3000ba24 in
_dl_rtld_di_serinfo () from /lib/ld.so.1 #5 0x0fba259c in dlerror ()
from /lib/libdl.so.2 #6 0x0fba2038 in dlclose ()
from /lib/libdl.so.2 #7 0x0fceb354 in
dso_cleanup (thedso=Variable "thedso" is not available. ) at dso/unix/dso.c:72 #8 0x0fcf1004 in
run_cleanups (cref=0x100ba100) at
memory/unix/apr_pools.c:2034 #9 0x0fcf1f4c in
apr_pool_clear (pool=0x100ba0f0) at
memory/unix/apr_pools.c:689 #10 0x1001d890 in main
(argc=2, argv=0x7fc39b74) at main.c:667 (gdb) b main.c:667 Breakpoint 2 at 0x1001d888:
file main.c, line 667. (gdb) Thanks and Regards, Manish |