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

Reply via email to