Merge lp:~percona-toolkit-dev/percona-toolkit/pt-stalk-1019648 into lp:percona-toolkit/2.2

Proposed by Daniel Nichter
Status: Merged
Merged at revision: 555
Proposed branch: lp:~percona-toolkit-dev/percona-toolkit/pt-stalk-1019648
Merge into: lp:percona-toolkit/2.2
Diff against target: 127 lines (+54/-14)
2 files modified
bin/pt-stalk (+27/-7)
lib/bash/collect.sh (+27/-7)
To merge this branch: bzr merge lp:~percona-toolkit-dev/percona-toolkit/pt-stalk-1019648
Reviewer Review Type Date Requested Status
Daniel Nichter Approve
Review via email: mp+152961@code.launchpad.net
To post a comment you must log in.
546. By Daniel Nichter

Move code to get InnoDB status into its own sub.

Revision history for this message
Daniel Nichter (daniel-nichter) wrote :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'bin/pt-stalk'
2--- bin/pt-stalk 2013-03-09 18:57:41 +0000
3+++ bin/pt-stalk 2013-03-12 21:10:29 +0000
4@@ -822,15 +822,14 @@
5 log "Could not find the MySQL error log"
6 fi
7
8- local innostat="SHOW /*!40100 ENGINE*/ INNODB STATUS\G"
9 if [ "${mysql_version}" '>' "5.1" ]; then
10 local mutex="SHOW ENGINE INNODB MUTEX"
11 else
12 local mutex="SHOW MUTEX STATUS"
13 fi
14- $CMD_MYSQL $EXT_ARGV -e "$innostat" >> "$d/$p-innodbstatus1" &
15- $CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status1" &
16- open_tables >> "$d/$p-opentables1" &
17+ innodb_status 1
18+ $CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status1" &
19+ open_tables >> "$d/$p-opentables1" &
20
21 local tcpdump_pid=""
22 if [ "$CMD_TCPDUMP" -a "$OPT_COLLECT_TCPDUMP" ]; then
23@@ -968,9 +967,9 @@
24 [ "$mysqld_pid" ] && kill -s 18 $mysqld_pid
25 fi
26
27- $CMD_MYSQL $EXT_ARGV -e "$innostat" >> "$d/$p-innodbstatus2" &
28- $CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status2" &
29- open_tables >> "$d/$p-opentables2" &
30+ innodb_status 2
31+ $CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status2" &
32+ open_tables >> "$d/$p-opentables2" &
33
34 kill $mysqladmin_pid
35 [ "$tail_error_log_pid" ] && kill $tail_error_log_pid
36@@ -1036,6 +1035,27 @@
37 $CMD_MYSQL $EXT_ARGV -e "SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS\G"
38 }
39
40+innodb_status() {
41+ local n=$1
42+
43+ local innostat=""
44+
45+ $CMD_MYSQL $EXT_ARGV -e "SHOW /*!40100 ENGINE*/ INNODB STATUS\G" \
46+ >> "$d/$p-innodbstatus$n"
47+ grep "END OF INNODB" "$d/$p-innodbstatus$n" >/dev/null || {
48+ if [ -d /proc -a -d /proc/$mysqld_pid ]; then
49+ for fd in /proc/$mysqld_pid/fd/*; do
50+ file $fd | grep deleted >/dev/null && {
51+ grep 'INNODB' $fd >/dev/null && {
52+ cat $fd > "$d/$p-innodbstatus$n"
53+ break
54+ }
55+ }
56+ done
57+ fi
58+ }
59+}
60+
61 # ###########################################################################
62 # End collect package
63 # ###########################################################################
64
65=== modified file 'lib/bash/collect.sh'
66--- lib/bash/collect.sh 2013-03-05 00:47:02 +0000
67+++ lib/bash/collect.sh 2013-03-12 21:10:29 +0000
68@@ -103,15 +103,14 @@
69
70 # Get a sample of these right away, so we can get these without interaction
71 # with the other commands we're about to run.
72- local innostat="SHOW /*!40100 ENGINE*/ INNODB STATUS\G"
73 if [ "${mysql_version}" '>' "5.1" ]; then
74 local mutex="SHOW ENGINE INNODB MUTEX"
75 else
76 local mutex="SHOW MUTEX STATUS"
77 fi
78- $CMD_MYSQL $EXT_ARGV -e "$innostat" >> "$d/$p-innodbstatus1" &
79- $CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status1" &
80- open_tables >> "$d/$p-opentables1" &
81+ innodb_status 1
82+ $CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status1" &
83+ open_tables >> "$d/$p-opentables1" &
84
85 # If TCP dumping is specified, start that on the server's port.
86 local tcpdump_pid=""
87@@ -272,9 +271,9 @@
88 [ "$mysqld_pid" ] && kill -s 18 $mysqld_pid
89 fi
90
91- $CMD_MYSQL $EXT_ARGV -e "$innostat" >> "$d/$p-innodbstatus2" &
92- $CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status2" &
93- open_tables >> "$d/$p-opentables2" &
94+ innodb_status 2
95+ $CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status2" &
96+ open_tables >> "$d/$p-opentables2" &
97
98 # Kill backgrounded tasks.
99 kill $mysqladmin_pid
100@@ -349,6 +348,27 @@
101 $CMD_MYSQL $EXT_ARGV -e "SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS\G"
102 }
103
104+innodb_status() {
105+ local n=$1
106+
107+ local innostat=""
108+
109+ $CMD_MYSQL $EXT_ARGV -e "SHOW /*!40100 ENGINE*/ INNODB STATUS\G" \
110+ >> "$d/$p-innodbstatus$n"
111+ grep "END OF INNODB" "$d/$p-innodbstatus$n" >/dev/null || {
112+ if [ -d /proc -a -d /proc/$mysqld_pid ]; then
113+ for fd in /proc/$mysqld_pid/fd/*; do
114+ file $fd | grep deleted >/dev/null && {
115+ grep 'INNODB' $fd >/dev/null && {
116+ cat $fd > "$d/$p-innodbstatus$n"
117+ break
118+ }
119+ }
120+ done
121+ fi
122+ }
123+}
124+
125 # ###########################################################################
126 # End collect package
127 # ###########################################################################

Subscribers

People subscribed via source and target branches