Hello, Debugging a long term perl daemon for memory leaks I have found out that just a DB connect and undef leaks.
This simple code leaks: === #!/usr/bin/perl use DBI; my $con; $con = DBI->connect('DBI:mysql:database=test;host=127.0.0.1', 'root', 'pass', {PrintError => 0,PrintWarn=>0}); undef $con; === I used Devel::Leak and opened a bug in DBD::mysql http://bugs.mysql.com/bug.php?id=66859 But the problem seems to be in DBI. Using Devel::leak::Object reveals leaking in DBI::var. This code: === #!/usr/bin/perl # Track every object including where they're created use Devel::Leak::Object qw{ GLOBAL_bless }; $Devel::Leak::Object::TRACKSOURCELINES = 1; use DBI; my $con; for (1..1000) { $con = DBI->connect('DBI:mysql:database=test;host=127.0.0.1', 'root', 'pass', {PrintError => 0,PrintWarn=>0}); $con->disconnect(); undef $con; } === Outputs: === Tracked objects by class: Config 1 DBI::var 5 Sources of leaks: Config 1 from /usr/lib64/perl5/5.16.1/x86_64-linux-thread-multi/Config.pm line: 73 DBI::var 5 from /usr/lib64/perl5/site_perl/5.16.1/x86_64-linux-thread-multi/DBI.pm line: 306 === I used DBI-1.622_901 (latest version I saw), and line 306 is: sub DBI::var::TIESCALAR{ my $var = $_[1]; bless \$var, 'DBI::var'; } Don't know how to debug this further. Perl is 5.16.1 DBD::mysql is 4.022 mysql is mysql-5.5.27.tar.gz Also, it seems these leaks have been there from long time ago: https://bugs.launchpad.net/ubuntu/+source/libdbd-mysql-perl/+bug/51746 Regards, Carlos Velasco