[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Memory leak on reload when the 'Pg' driver is preloaded



[debian-isp readers, to recap, I'm trying to confirm a memory-leak/segfault problem with Debian stable plus apache(-ssl) plus libapache-mod-perl. The memory leak happens upon /etc/init.d/apache(-ssl) reload. You can see my startup script and my other comments below.]

Juha-Mikko Ahonen wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Wednesday 16 October 2002 22:52, Keith G. Murphy wrote:

It's not like it was an obvious problem: I only got the DSO to leak
when loading the Pg driver.  That's pretty obscure.


Have you tried to connect() without loading the Pg driver first? E.g. $dbh = DBI->connect('dbi:Pg:dbname=foo;host=bar', 'user', 'pass');

It would help eliminate if the leak is caused by your startup script. If it is, it may be the DBI module that's leaking memory.

OK, it gets weirder. The following script produces the leak. If I comment out the install_driver line, I get a big old segfault! Same if I comment out the Apache::DBI line in addition. This works with plain apache, or apache-ssl.

#!/usr/bin/perl
use strict;
use Apache::Status ();
use Apache::DBI ();
DBI->install_driver('Pg');
1; #return true value

If I comment it all out including the Apache::Status line, I get neither the segfault or the leak. (Well, small leak, a few bytes).

So the install_driver masks a bigger problem with Apache::Status? That's just too weird. But true, I swear.

Is there anyone else out there with Debian stable w/ apache+libapache-mod-perl who can try to reproduce this simple case? I'd really like either a confirmation or a counterexample. If the latter, I'd chalk it up to a weirdness on my system (and probably not even pursue it, since I've moved on to the static version). I'm pursuing it this far so Dan J. might get some useful feedback.

I've submitted this to debian-isp as well; maybe someone there can try it.



Reply to: