diff --git a/bin/pt-stalk b/bin/pt-stalk index e2d5a518..0f482400 100755 --- a/bin/pt-stalk +++ b/bin/pt-stalk @@ -721,7 +721,19 @@ collect() { else local mutex="SHOW MUTEX STATUS" fi - $CMD_MYSQL $EXT_ARGV -e "$innostat" >> "$d/$p-innodbstatus1" & + ( + $CMD_MYSQL $EXT_ARGV -e "$innostat" >> "$d/$p-innodbstatus1" + grep "END OF INNODB" "$d/$p-innodbstatus1" >/dev/null || { + for fd in /proc/$mysqld_pid/fd/*; do + file $fd | grep deleted > /dev/null && { + grep 'INNODB' $fd >/dev/null && { + cat $fd > "$d/$p-innodbstatus1" + break + } + } + done + } + ) & $CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status1" & open_tables >> "$d/$p-opentables1" & diff --git a/lib/bash/collect.sh b/lib/bash/collect.sh index 5a8edfc9..afbe4577 100644 --- a/lib/bash/collect.sh +++ b/lib/bash/collect.sh @@ -109,7 +109,19 @@ collect() { else local mutex="SHOW MUTEX STATUS" fi - $CMD_MYSQL $EXT_ARGV -e "$innostat" >> "$d/$p-innodbstatus1" & + ( + $CMD_MYSQL $EXT_ARGV -e "$innostat" >> "$d/$p-innodbstatus1" + grep "END OF INNODB" "$d/$p-innodbstatus1" >/dev/null || { + for fd in /proc/$mysqld_pid/fd/*; do + file $fd | grep deleted > /dev/null && { + grep 'INNODB' $fd >/dev/null && { + cat $fd > "$d/$p-innodbstatus1" + break + } + } + done + } + ) & $CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status1" & open_tables >> "$d/$p-opentables1" &