So I seem to have repaired the problem by removing the calls to POSIX::Sigaction for the alarm signal handling wrapping the DBI connection code. This is, unfortunately, contrary to the perldoc for DBI which states that the POSIX::Sigation method should be used if your perl is greater than 5.8.0.