From 3cab0e1b955ebd3d55184cffed20ebf347d72cb7 Mon Sep 17 00:00:00 2001 From: Brian Fraser Date: Wed, 12 Dec 2012 02:43:30 -0300 Subject: [PATCH] Added t/pt-deadlock-logger/samples/bug_1082104.txt & changed the username regex per Daniel's comments --- bin/pt-deadlock-logger | 8 ++- t/pt-deadlock-logger/samples/bug_1082104.txt | 53 ++++++++++++++++++++ 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 t/pt-deadlock-logger/samples/bug_1082104.txt diff --git a/bin/pt-deadlock-logger b/bin/pt-deadlock-logger index 5a5e16b6..1eede88e 100755 --- a/bin/pt-deadlock-logger +++ b/bin/pt-deadlock-logger @@ -3757,8 +3757,8 @@ my $d = qr/(\d+)/; # Digit my $t = qr/((?:\d+ \d+)|(?:[A-Fa-f0-9]+))/; # Transaction ID my $i = qr/((?:\d{1,3}\.){3}\d+)/; # IP address my $n = qr/([^`\s]+)/; # MySQL object name -my $u = qr/((?!\b[0-9]+\b)\S+)/; # Username. This is somewhat wrong, but - # usernames with spcaes are rare enough. +my $u = qr/(\S+)/; # Username. This is somewhat wrong, but + # usernames with spaces are rare enough. my $s = qr/(\d{6} .\d:\d\d:\d\d)/; # InnoDB timestamp # A thread's proc_info can be at least 98 different things I've found in the @@ -4388,6 +4388,10 @@ held lock, you're looking at the same lock, so of course you'd prefer to see both wait-for locks and get more information. If the two waited-for locks are not on the same table, more than two transactions were involved in the deadlock. +Finally, keep in mind that, because usernames with spaces are not quoted by +InnoDB, the tool will generally misreport the second word of these usernames +as the hostname. + =head1 OPTIONS This tool accepts additional command-line arguments. Refer to the diff --git a/t/pt-deadlock-logger/samples/bug_1082104.txt b/t/pt-deadlock-logger/samples/bug_1082104.txt new file mode 100644 index 00000000..0003d9de --- /dev/null +++ b/t/pt-deadlock-logger/samples/bug_1082104.txt @@ -0,0 +1,53 @@ +===================================== +070915 15:34:37 INNODB MONITOR OUTPUT +===================================== +Per second averages calculated from the last 24 seconds +------------------------ +LATEST DETECTED DEADLOCK +------------------------ +111212 22:52:42 +*** (1) TRANSACTION: +TRANSACTION 3405, ACTIVE 161 sec starting index read +mysql tables in use 1, locked 1 +LOCK WAIT 3 lock struct(s), heap size 376, 3 row lock(s), undo log entries 2 +MySQL thread id 19, OS thread handle 0x7fac301e4700, query id 180 localhost ro-ot Updating +update a set movie_id=96 where id =2 +*** (1) WAITING FOR THIS LOCK TO BE GRANTED: +RECORD LOCKS space id 0 page no 307 n bits 72 index `PRIMARY` of table `test`.`a` trx id 3405 lock_mode X locks rec but not gap waiting +Record lock, heap no 3 PHYSICAL RECORD: n_fields 6; compact format; info bits 0 + 0: len 4; hex 80000002; asc ;; + 1: len 6; hex 000000003404; asc 4 ;; + 2: len 7; hex 040000163b2515; asc ;% ;; + 3: len 4; hex 80000063; asc c;; + 4: len 1; hex 01; asc ;; + 5: len 8; hex 8000124a7c1acb8c; asc J| ;; + +*** (2) TRANSACTION: +TRANSACTION 3404, ACTIVE 1026 sec starting index read +mysql tables in use 1, locked 1 +3 lock struct(s), heap size 376, 2 row lock(s), undo log entries 1 +MySQL thread id 18, OS thread handle 0x7fac30225700, query id 181 localhost ro-ot Updating +update a set movie_id=98 where id =4 +*** (2) HOLDS THE LOCK(S): +RECORD LOCKS space id 0 page no 307 n bits 72 index `PRIMARY` of table `test`.`a` trx id 3404 lock_mode X locks rec but not gap +Record lock, heap no 3 PHYSICAL RECORD: n_fields 6; compact format; info bits 0 + 0: len 4; hex 80000002; asc ;; + 1: len 6; hex 000000003404; asc 4 ;; + 2: len 7; hex 040000163b2515; asc ;% ;; + 3: len 4; hex 80000063; asc c;; + 4: len 1; hex 01; asc ;; + 5: len 8; hex 8000124a7c1acb8c; asc J| ;; + +*** (2) WAITING FOR THIS LOCK TO BE GRANTED: +RECORD LOCKS space id 0 page no 307 n bits 72 index `PRIMARY` of table `test`.`a` trx id 3404 lock_mode X locks rec but not gap waiting +Record lock, heap no 5 PHYSICAL RECORD: n_fields 6; compact format; info bits 0 + 0: len 4; hex 80000004; asc ;; + 1: len 6; hex 000000003405; asc 4 ;; + 2: len 7; hex 0500000e7017e8; asc p ;; + 3: len 4; hex 80000062; asc b;; + 4: len 1; hex 01; asc ;; + 5: len 8; hex 8000124a7c1acbb6; asc J| ;; + +*** WE ROLL BACK TRANSACTION (2) +END OF INNODB MONITOR OUTPUT +============================