|Subject:||select* methods output misleading error messages on InnoDB lock timeout|
(Also filed on mysql.com as bug #64475.) The various select* methods (such as selectrow_hashref or selectcol_arrayref) output misleading error messages when a timeout occurs while waiting for an InnoDB lock. (For example, selectrow_hashref outputs "fetch() without execute()", and selectcol_arrayref outputs "Statement has no result columns to bind".) From the look of it, the methods appear to not notice that execute() has failed, and proceed to call fetch() nonetheless. The resulting error message thus reflects the failure from wrongly calling fetch(), instead of the original timeout error (which is found to be accurately reported by the MySQL server with DBI_TRACE).