You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by "Ralf S. Engelschall" <rs...@engelschall.com> on 1999/01/21 17:15:06 UTC

DSO and core dumps for mod_perl/mod_ssl?

Since a long time users observe core dumps under particular situations with
mod_perl and mod_ssl.  For mod_perl we searched a lot but were never really
successful. For mod_ssl I've now fixed and searched also, but I still got core
dumps under particular platforms like Solaris (while on my FreeBSD and Linux
boxes all is fine).

I've now dived into the debugger a few hours more on a Solaris 2.6 box and as
it looks the core dumps are _NOT_ related to bugs in Dougs or my code.  No,
they are directly related to the dynamic loader of the OS as it looks. Because
I discovered that the amount and order of loaded DSOs is the reason. For
instance Apache+mod_ssl works fine as a DSO on Solaris 2.6 when mod_ssl is the
last module loaded.  Same for mod_perl. When I just load an arbitrary
mod_xxx.so _after_ it I see strange things: Inside the debugger I can observe
that the dynamic loader seems to have loaded the mod_xxx.so _OVER_ the end of
code segment of mod_ssl.so.  And GDB thinks the same: For some mod_ssl hooks
inside the module structure it displays something like "<set_cookie_xxx+242>",
etc. I can reproduce the problem by just changing the order of LoadModule
lines. OTOH when I remove some LoadModules for standard modules it again
starts working.

So, as it looks to me it is as following: The dynamic loaders have problems
with large DSOs like mod_perl and mod_ssl (both are around 1MB) or problems
with the total amount of loaded DSOs.  Does anybody know about such
restrictions or problems? Is there a way to determine where exactly (upper and
lower memory bound) the loader has placed my DSO? Perhaps via _end or some
symbols?
                                       Ralf S. Engelschall
                                       rse@engelschall.com
                                       www.engelschall.com