This is happening because of the isolation level that InnoDB tables use by default. If you change the isolation level to "repeatable read", the problem will go away. See
my message about this on the mod_perl list for more. I'm planning to add this to the mod_perl documentation, since it seems like something that others will get bitten by.