On Sat, 15 Jan 2000, Daniel Jacobowitz wrote:
... 
> Notice that DBI is never dlclose()'d.  But mod_perl is, when apache
> unloads its modules.  The linker is not clever enough to realize that
> DBI depends on symbols in mod_perl.so.  When mod_perl is reloaded at a
> DIFFERENT address, DBI has no reason to be rebound; its symbols are
> already resolved!

wow, *nice* catch!!  Daniel, I can't thank you and Alan enough for your
efforts here.  it's such a thorny problem to debug, the closest I came was
trying to prevent the dlclose of modperl's libperl.so, but had no idea why
that bandaid prevented the bleeding.  I hadn't heard of ltrace, what a
spectacular looking tool.
I'd really like to get the workaround in 1.22, even if Apache and/or
DynaLoader is the "right" place, we don't have any control over the
release schedules of either and modperl-1.22 is already long overdue.

perl_destruct/perl_free are not called at restart, only during child_exit.
it looks like that might need to change to finish the dso puzzle.  I
experienced some problems there, but that was a few years ago, looks
like it's time to revisit.

thanks again!!

Reply via email to