block).
One possibility is that MySQL is itself changing the signal handling. Mr. Google brought up a few suggestions:
is typical, with some alternative code, but I would have thought this would be common.
specifically for calling from alarm handlers. This implies that the database driver itself might be immune to SIGALRM and it is up to the Perl signal handler to cancel the operation.