Vivek Khera wrote:
> AB> To summarise: Apache dlclose's the mod_perl.so, which then results in
> AB> the perl libperl.so being unloaded as well (there's a linker dependency
>
> Excellent summary... thanks!
>
> AB> from mod_perl -> perl libperl.so). Unfortunately the perl XS modules
> AB> loaded in during startup via dlopen are *not* unloaded, nor do they
> AB> succeed in locking the perl libperl.so into memory (you could construe
> AB> this as a linker bug). Then Apache reloads the mod_perl libperl.so,
>
> I think the linker is in error here for not adding the dependency on
> the library and that is what should be fixed...
Don't worry, I already have a bug report open and someone from the
linker group is having a look. I havn't been able to replicate the
exact same problem in a minimal set of C files, but I'm working on it.
I have a linker debug trace that shows the problem, though (on Solaris,
use "LD_DEBUG=files,detail httpd -X" and look for the addresses that the
perl libperl.so is mapped in at).
However, other folks have reported the exact same problem on other OSs,
eg Linux & BSD, so I think that in the short term we need to be
realistic and find a way of not tickling what seems to be a common
linker bug.
Alan Burlison