My setup is apache/modperl+Apache::DBI with MySQL driver. On server startup in every httpd child a few queries that are executed very often are prepared. When the Apache::Registry scripts run values are bound to the cursors and they are executed. The server runs ok for 6-10 hours and then I'm seeing these messages in the error_log when trying to execute the cursors
[modperl] caught SIGPIPE in process 12620 hint: may be a client (browser) hit STOP? My initial guess was that the mysql daemon of the cursor has exitted, so I had the library recompiled by having all apache children execute a "do 'db.pl'" using a custom USR2 handler. Take a look at the file below: I think that the db connection and the cursor should have been reinitialized, but the SIGPPIPE remained. Now my guess is that Apache::DBI gets confused somehow... To stop the problem I added a $SIG{PIPE} = sub {} into the code, which works well, but isn't this going to cause other problems with mod_perl ? apache 1.3.12 mod_per 1.23 perl 5.005_03 Apache::DBI 0.87 DBI 1.14 Any help would be greatly appreciated. Thanks, -Balazs ps: The library looks something like this: #db.pl $DBH = &connect(); $CURSOR = $DBH->prepare("some sql"); sub routine { $CURSOR->bind_param(1, "$_[0]"); $SUSPECTS_CUR->execute(); . . }