forking and InactiveDestroy
the hatter <[email protected]>
| Newsgroups | gmane.comp.db.mysql.perl |
|---|---|
| Message-ID | <[email protected]> |
I'm having a problem vaguely similar to some in the archives, but I'm not
convinced it's the same cause.
I have code that, approximately, says:
$dbopts{'InactiveDestroy'} = 0;
$db = DCP::db_connect("dcp",\%dbopts);
my $query = "SELECT * FROM foo";
my $dbq = $db->prepare($query); $dbq->execute;
my $forkid;
while (my ($uid,$ip,$lang)=$dbq->fetchrow_array) {
$forkid = fork();
next if $forkid != 0;
$dbm = $db->prepare("SELECT * FROM bar"); $dbm->execute; # Line 63
while (my ($port,$proto,$down)=$dbm->fetchrow_array) { # Line 64
#do some stuff
}
$dbq->finish;
$db->disconnect;
exit(0);
}
It runs on several machines, most a bit old, the database server running
mysql 3.23.32. A new machine (installed with mysql client and libs from
RH FC4) tries to run this script but gives a stack of DBD::mysql::st
execute failed: MySQL server has gone away at ./myscript line 63.
DBD::mysql::st fetchrow_array failed: fetch() without execute() at
./myscript line 64.
There is some mention of using InactiveDestroy in children, rather than in
the parent, but I'm not sure how that would work in this instance
(finish/disconn the query and db once inside the main while(), then
reconnect ? Doesn't seem to make so much sense)
Any suggestions, or known issues (google and the mailing list archives
didn't seem to help)
thanks
the hatter
--
MySQL Perl Mailing List
For list archives: http://lists.mysql.com/perl
To unsubscribe: http://lists.mysql.com/[email protected]