Skip to content

Commit 89eca2c

Browse files
committed
Merge pull request #74 from percona/collect-module-binlog-error-action-bug
new var binlog_error_action caused bug in collect module
2 parents 8d9fadb + 377b501 commit 89eca2c

2 files changed

Lines changed: 18 additions & 11 deletions

File tree

bin/pt-stalk

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -816,7 +816,7 @@ collect() {
816816

817817
local mysql_version="$(awk '/^version[^_]/{print substr($2,1,3)}' "$d/$p-variables")"
818818

819-
local mysql_error_log="$(awk '/log_error/{print $2}' "$d/$p-variables")"
819+
local mysql_error_log="$(awk '/^log_error/{print $2}' "$d/$p-variables")"
820820
if [ -z "$mysql_error_log" -a "$mysqld_pid" ]; then
821821
mysql_error_log="$(ls -l /proc/$mysqld_pid/fd | awk '/ 2 ->/{print $NF}')"
822822
fi
@@ -871,7 +871,6 @@ collect() {
871871
$CMD_SYSCTL -a >> "$d/$p-sysctl" &
872872
fi
873873

874-
# collect dmesg events from 60 seconds ago until present
875874
if [ "$CMD_DMESG" ]; then
876875
local UPTIME=`cat /proc/uptime | awk '{ print $1 }'`
877876
local START_TIME=$(echo "$UPTIME 60" | awk '{print ($1 - $2)}')
@@ -892,7 +891,6 @@ collect() {
892891
$CMD_MPSTAT -P ALL $OPT_RUN_TIME 1 >> "$d/$p-mpstat-overall" &
893892
fi
894893

895-
896894
$CMD_MYSQLADMIN $EXT_ARGV ext -i$OPT_SLEEP_COLLECT -c$cnt >>"$d/$p-mysqladmin" &
897895
local mysqladmin_pid=$!
898896

lib/bash/collect.sh

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ collect() {
8383
local mysql_version="$(awk '/^version[^_]/{print substr($2,1,3)}' "$d/$p-variables")"
8484

8585
# Is MySQL logging its errors to a file? If so, tail that file.
86-
local mysql_error_log="$(awk '/log_error/{print $2}' "$d/$p-variables")"
86+
local mysql_error_log="$(awk '/^log_error/{print $2}' "$d/$p-variables")"
8787
if [ -z "$mysql_error_log" -a "$mysqld_pid" ]; then
8888
# Try getting it from the open filehandle...
8989
mysql_error_log="$(ls -l /proc/$mysqld_pid/fd | awk '/ 2 ->/{print $NF}')"
@@ -110,6 +110,7 @@ collect() {
110110
local mutex="SHOW MUTEX STATUS"
111111
fi
112112
innodb_status 1
113+
tokudb_status 1
113114
$CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status1" &
114115
open_tables >> "$d/$p-opentables1" &
115116

@@ -133,7 +134,7 @@ collect() {
133134
fi
134135
elif [ "$CMD_STRACE" -a "$OPT_COLLECT_STRACE" -a "$mysqld_pid" ]; then
135136
# Don't run oprofile and strace at the same time.
136-
$CMD_STRACE -T -s 0 -f -p $mysqld_pid > "${DEST}/$d-strace" &
137+
$CMD_STRACE -T -s 0 -f -p $mysqld_pid -o "$d/$p-strace" &
137138
local strace_pid=$!
138139
fi
139140

@@ -283,6 +284,7 @@ collect() {
283284
fi
284285

285286
innodb_status 2
287+
tokudb_status 2
286288
$CMD_MYSQL $EXT_ARGV -e "$mutex" >> "$d/$p-mutex-status2" &
287289
open_tables >> "$d/$p-opentables2" &
288290

@@ -304,7 +306,7 @@ collect() {
304306
for file in "$d/$p-"*; do
305307
# If there's not at least 1 line that's not a TS,
306308
# then the file is empty.
307-
if [ -z "$(grep -v '^TS ' --max-count 1 "$file")" ]; then
309+
if [ -z "$(grep -v '^TS ' --max-count 10 "$file")" ]; then
308310
log "Removing empty file $file";
309311
rm "$file"
310312
fi
@@ -321,7 +323,7 @@ open_tables() {
321323
}
322324

323325
lock_waits() {
324-
local sql1="SELECT
326+
local sql1="SELECT SQL_NO_CACHE
325327
CONCAT('thread ', b.trx_mysql_thread_id, ' from ', p.host) AS who_blocks,
326328
IF(p.command = \"Sleep\", p.time, 0) AS idle_in_trx,
327329
MAX(TIMESTAMPDIFF(SECOND, r.trx_wait_started, CURRENT_TIMESTAMP)) AS max_wait_time,
@@ -333,7 +335,7 @@ lock_waits() {
333335
GROUP BY who_blocks ORDER BY num_waiters DESC\G"
334336
$CMD_MYSQL $EXT_ARGV -e "$sql1"
335337

336-
local sql2="SELECT
338+
local sql2="SELECT SQL_NO_CACHE
337339
r.trx_id AS waiting_trx_id,
338340
r.trx_mysql_thread_id AS waiting_thread,
339341
TIMESTAMPDIFF(SECOND, r.trx_wait_started, CURRENT_TIMESTAMP) AS wait_time,
@@ -354,9 +356,16 @@ lock_waits() {
354356
}
355357

356358
transactions() {
357-
$CMD_MYSQL $EXT_ARGV -e "SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX\G"
358-
$CMD_MYSQL $EXT_ARGV -e "SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS\G"
359-
$CMD_MYSQL $EXT_ARGV -e "SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS\G"
359+
$CMD_MYSQL $EXT_ARGV -e "SELECT SQL_NO_CACHE * FROM INFORMATION_SCHEMA.INNODB_TRX\G"
360+
$CMD_MYSQL $EXT_ARGV -e "SELECT SQL_NO_CACHE * FROM INFORMATION_SCHEMA.INNODB_LOCKS\G"
361+
$CMD_MYSQL $EXT_ARGV -e "SELECT SQL_NO_CACHE * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS\G"
362+
}
363+
364+
tokudb_status() {
365+
local n=$1
366+
367+
$CMD_MYSQL $EXT_ARGV -e "SHOW ENGINE TOKUDB STATUS\G" \
368+
>> "$d/$p-tokudbstatus$n" || rm -f "$d/$p-tokudbstatus$n"
360369
}
361370

362371
innodb_status() {

0 commit comments

Comments
 (0)