On Tue, Jan 18, 2000 at 11:02:27PM -0800, Doug MacEachern wrote:
> 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.

*blink*

Oh, you're right, of course.  They weren't getting called at all.

I think that's a problem, and I have a good idea of how to go about
fixing it - I'll get back to you on that in a few hours.

Dan

/--------------------------------\  /--------------------------------\
|       Daniel Jacobowitz        |__|        SCS Class of 2002       |
|   Debian GNU/Linux Developer    __    Carnegie Mellon University   |
|         [EMAIL PROTECTED]         |  |       [EMAIL PROTECTED]      |
\--------------------------------/  \--------------------------------/

Reply via email to