I believe I have found a rather curious bug with Apache::DBI and restarts under mod_perl. I created simple (handler) that just did queries against an Oracle db. I ran ab and generated a fairly signifigant load on the box (10 - 20) on a dual proc box. Once the requests got up to around 120 r/s I ran graceful restarts. What I saw happening was each of the processes was read blocked on its connection to Oracle, which seemed rather odd. I am running mod_perl 1.26 / apache 1.3.26 with perl 5.61 and Apache::DBI 0.89.
I found the following fixes this problem. In the childinit subroutine, add: %Connected = (); just after the debugging call. You must have a connect_on_init call in your startup.pl though. Has anyone else run in to this? thanks, --eric