In my production error logs I occasionally see:
SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction >
SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction
Activate MySQL general.log (disk intensive) and use mysql_analyse_general_log.pl to extract long running transactions, for example with :
--min-duration=your innodb_lock_wait_timeout value
Disable general.log after that.