Bug 123258 - (temporary) Log InnoDB locks and status in case "lock wait timeout exceeded" or "deadlock found while trying to get lock"
git-svn-id: svn://svn.office.custis.ru/3rdparty/bugzilla.org/trunk@1782 6955db30-a419-402b-8a0d-67ecbb4d7f56master
parent
3f9cd0a799
commit
46fbc7d44b
10
Bugzilla.pm
10
Bugzilla.pm
|
@ -82,6 +82,16 @@ sub _die_error
|
|||
# on each "Stop" click in the browser.
|
||||
if ($msg !~ /^(Apache2::RequestIO::print|:Apache2 IO write): \(103\)|^[^\n]*(Программа вызвала сброс соединения|Software caused connection abort) at /iso)
|
||||
{
|
||||
if ($msg =~ /lock wait|deadlock found/i)
|
||||
{
|
||||
# Log active InnoDB locks
|
||||
my $locks = Bugzilla->dbh->selectall_arrayref('SELECT * FROM information_schema.innodb_locks', {Slice=>{}});
|
||||
use Data::Dumper;
|
||||
$msg = "InnoDB locks:\n".Dumper($locks)."\n".$msg;
|
||||
# Also log full InnoDB Status
|
||||
($locks) = Bugzilla->dbh->selectrow_array('SHOW ENGINE INNODB STATUS');
|
||||
$msg = "InnoDB status:\n$locks\n$msg";
|
||||
}
|
||||
$msg = { eval_error => $msg };
|
||||
Bugzilla::Error::ThrowCodeError('eval_error', $msg);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue