On 23/11/10 17:20, Tee Shuwn Yuan wrote:
hi all,
I am currently doing development under Perl 5.8.8, with SQLite3 version 3.3.8.
I need to run a perl script that will takes few days to be completed& I use
DBI and DBD::SQLite to store something into sqlite3 database.
In my perl script, it has 10 child process running concurrently. However, I
noticed a slow memory leak, and eventually after like 12 hours, the script
die with "out of memory". I suspected it is due to DBD::SQLite& apparently
it is.
From this link: http://kobesearch.cpan.org/htdocs/DBD-SQLite/Changes.html
I read this:
1.30_06 Thu 9 Sep 2010
* Resolved # 60860: Slow but steady memory leak on last_insert_id calls
(ISHIGAKI)
In my script, I did use the method "last_insert_id". So I guess it is the
problem causing the memory leak.
Maybe it is.. or maybe there is another problem with your code?
Have you tried using tools such as Devel::Leak or even just the GTop
module to analyse your memory usage?
However, I upgraded the DBD::SQLite to version 1.31 (the latest) and rerun my
perl script, the leak problem still persist. Until I restart my machine, the
leak problem has gone away.
My question is, is that true the upgrading of DBD::SQLite cpan module require
a system restart to takes affect? Because I can always restart in my
development environment, but not on live server environment that is already
running. What can I do for the changes to take effect without rebooting the
whole system?
That is untrue. You can upgrade CPAN modules without needing to reboot.
I would make sure that your Perl script is getting the latest version of
the module - maybe you didn't upgrade it correctly on the server?
May I suggest that you put the required version number against the line
using it in your script? You do that by writing, for example:
#!/usr/bin/env perl
use strict;
use warnings;
use DBI;
use DBD::SQLite 1.31;
...
That way, if the version is less than 1.31, your perl script will exit
with an error message.
I hope this helps,
Toby
_______________________________________________
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite