mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 13:11:32 +00:00
Merge 2.1.9 fixes for pt-pmp.
This commit is contained in:
@@ -82,6 +82,7 @@ aggregate_stacktrace() {
|
||||
}
|
||||
else {
|
||||
targ = \$4;
|
||||
tfile= \$NF;
|
||||
}
|
||||
if ( targ ~ /[<\\(]/ ) {
|
||||
targ = substr(\$0, index(\$0, \" in \") + 4);
|
||||
@@ -126,6 +127,13 @@ aggregate_stacktrace() {
|
||||
}
|
||||
else {
|
||||
fname = targ;
|
||||
if ( tfile ~ /^\// ) {
|
||||
last=split(tfile,filen,/\//);
|
||||
fname = targ \"(\" filen[last] \")\";
|
||||
}
|
||||
else {
|
||||
fname = targ
|
||||
}
|
||||
}
|
||||
if ( ${maxlen:-0} == 0 || c < ${maxlen:-0} ) {
|
||||
if (s != \"\" ) {
|
||||
|
@@ -3596,6 +3596,19 @@ sub parse_event {
|
||||
if ( $packet->{data_len} == 0 ) {
|
||||
PTDEBUG && _d('TCP control:',
|
||||
map { uc $_ } grep { $packet->{$_} } qw(syn ack fin rst));
|
||||
if ( $packet->{'fin'}
|
||||
&& ($session->{state} || '') eq 'server_handshake' ) {
|
||||
PTDEBUG && _d('Client aborted connection');
|
||||
my $event = {
|
||||
cmd => 'Admin',
|
||||
arg => 'administrator command: Connect',
|
||||
ts => $packet->{ts},
|
||||
};
|
||||
$session->{attribs}->{Error_msg} = 'Client closed connection during handshake';
|
||||
$event = $self->_make_event($event, $packet, $session);
|
||||
delete $self->{sessions}->{$session->{client}};
|
||||
return $event;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3812,7 +3825,8 @@ sub _packet_from_server {
|
||||
}
|
||||
my $event;
|
||||
|
||||
if ( $session->{state} eq 'client_auth' ) {
|
||||
if ( $session->{state} eq 'client_auth'
|
||||
|| $session->{state} eq 'server_handshake' ) {
|
||||
PTDEBUG && _d('Connection failed');
|
||||
$event = {
|
||||
cmd => 'Admin',
|
||||
@@ -3842,8 +3856,10 @@ sub _packet_from_server {
|
||||
cmd => $com,
|
||||
arg => $arg,
|
||||
ts => $packet->{ts},
|
||||
Error_no => $error->{errno} ? "#$error->{errno}" : 'none',
|
||||
};
|
||||
if ( $error->{errno} ) {
|
||||
$event->{Error_no} = $error->{errno};
|
||||
}
|
||||
$session->{attribs}->{Error_msg} = $error->{message};
|
||||
return $self->_make_event($event, $packet, $session);
|
||||
}
|
||||
@@ -4054,13 +4070,17 @@ sub _make_event {
|
||||
Thread_id => $session->{thread_id},
|
||||
pos_in_log => $session->{pos_in_log},
|
||||
Query_time => timestamp_diff($session->{ts}, $packet->{ts}),
|
||||
Error_no => $event->{Error_no} || 'none',
|
||||
Rows_affected => ($event->{Rows_affected} || 0),
|
||||
Warning_count => ($event->{Warning_count} || 0),
|
||||
No_good_index_used => ($event->{No_good_index_used} ? 'Yes' : 'No'),
|
||||
No_index_used => ($event->{No_index_used} ? 'Yes' : 'No'),
|
||||
};
|
||||
@{$new_event}{keys %{$session->{attribs}}} = values %{$session->{attribs}};
|
||||
foreach my $opt_attrib ( qw(Error_no) ) {
|
||||
if ( defined $event->{$opt_attrib} ) {
|
||||
$new_event->{$opt_attrib} = $event->{$opt_attrib};
|
||||
}
|
||||
}
|
||||
PTDEBUG && _d('Properties of event:', Dumper($new_event));
|
||||
|
||||
delete $session->{cmd};
|
||||
@@ -4191,9 +4211,17 @@ sub parse_error_packet {
|
||||
}
|
||||
my $errno = to_num(substr($data, 0, 4));
|
||||
my $marker = to_string(substr($data, 4, 2));
|
||||
return unless $marker eq '#';
|
||||
my $sqlstate = to_string(substr($data, 6, 10));
|
||||
my $message = to_string(substr($data, 16));
|
||||
my $sqlstate = '';
|
||||
my $message = '';
|
||||
if ( $marker eq '#' ) {
|
||||
$sqlstate = to_string(substr($data, 6, 10));
|
||||
$message = to_string(substr($data, 16));
|
||||
}
|
||||
else {
|
||||
$marker = '';
|
||||
$message = to_string(substr($data, 4));
|
||||
}
|
||||
return unless $message;
|
||||
my $pkt = {
|
||||
errno => $errno,
|
||||
sqlstate => $marker . $sqlstate,
|
||||
|
@@ -340,6 +340,19 @@ sub parse_event {
|
||||
if ( $packet->{data_len} == 0 ) {
|
||||
PTDEBUG && _d('TCP control:',
|
||||
map { uc $_ } grep { $packet->{$_} } qw(syn ack fin rst));
|
||||
if ( $packet->{'fin'}
|
||||
&& ($session->{state} || '') eq 'server_handshake' ) {
|
||||
PTDEBUG && _d('Client aborted connection');
|
||||
my $event = {
|
||||
cmd => 'Admin',
|
||||
arg => 'administrator command: Connect',
|
||||
ts => $packet->{ts},
|
||||
};
|
||||
$session->{attribs}->{Error_msg} = 'Client closed connection during handshake';
|
||||
$event = $self->_make_event($event, $packet, $session);
|
||||
delete $self->{sessions}->{$session->{client}};
|
||||
return $event;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -612,7 +625,8 @@ sub _packet_from_server {
|
||||
}
|
||||
my $event;
|
||||
|
||||
if ( $session->{state} eq 'client_auth' ) {
|
||||
if ( $session->{state} eq 'client_auth'
|
||||
|| $session->{state} eq 'server_handshake' ) {
|
||||
PTDEBUG && _d('Connection failed');
|
||||
$event = {
|
||||
cmd => 'Admin',
|
||||
@@ -644,8 +658,11 @@ sub _packet_from_server {
|
||||
cmd => $com,
|
||||
arg => $arg,
|
||||
ts => $packet->{ts},
|
||||
Error_no => $error->{errno} ? "#$error->{errno}" : 'none',
|
||||
};
|
||||
if ( $error->{errno} ) {
|
||||
# https://bugs.launchpad.net/percona-toolkit/+bug/823411
|
||||
$event->{Error_no} = $error->{errno};
|
||||
}
|
||||
$session->{attribs}->{Error_msg} = $error->{message};
|
||||
return $self->_make_event($event, $packet, $session);
|
||||
}
|
||||
@@ -902,13 +919,18 @@ sub _make_event {
|
||||
Thread_id => $session->{thread_id},
|
||||
pos_in_log => $session->{pos_in_log},
|
||||
Query_time => timestamp_diff($session->{ts}, $packet->{ts}),
|
||||
Error_no => $event->{Error_no} || 'none',
|
||||
Rows_affected => ($event->{Rows_affected} || 0),
|
||||
Warning_count => ($event->{Warning_count} || 0),
|
||||
No_good_index_used => ($event->{No_good_index_used} ? 'Yes' : 'No'),
|
||||
No_index_used => ($event->{No_index_used} ? 'Yes' : 'No'),
|
||||
};
|
||||
@{$new_event}{keys %{$session->{attribs}}} = values %{$session->{attribs}};
|
||||
# https://bugs.launchpad.net/percona-toolkit/+bug/823411
|
||||
foreach my $opt_attrib ( qw(Error_no) ) {
|
||||
if ( defined $event->{$opt_attrib} ) {
|
||||
$new_event->{$opt_attrib} = $event->{$opt_attrib};
|
||||
}
|
||||
}
|
||||
PTDEBUG && _d('Properties of event:', Dumper($new_event));
|
||||
|
||||
# Delete cmd to prevent re-making the same event if the
|
||||
@@ -1070,9 +1092,17 @@ sub parse_error_packet {
|
||||
}
|
||||
my $errno = to_num(substr($data, 0, 4));
|
||||
my $marker = to_string(substr($data, 4, 2));
|
||||
return unless $marker eq '#';
|
||||
my $sqlstate = to_string(substr($data, 6, 10));
|
||||
my $message = to_string(substr($data, 16));
|
||||
my $sqlstate = '';
|
||||
my $message = '';
|
||||
if ( $marker eq '#' ) {
|
||||
$sqlstate = to_string(substr($data, 6, 10));
|
||||
$message = to_string(substr($data, 16));
|
||||
}
|
||||
else {
|
||||
$marker = '';
|
||||
$message = to_string(substr($data, 4));
|
||||
}
|
||||
return unless $message;
|
||||
my $pkt = {
|
||||
errno => $errno,
|
||||
sqlstate => $marker . $sqlstate,
|
||||
|
@@ -9,7 +9,7 @@ BEGIN {
|
||||
use strict;
|
||||
use warnings FATAL => 'all';
|
||||
use English qw(-no_match_vars);
|
||||
use Test::More tests => 72;
|
||||
use Test::More;
|
||||
|
||||
use MySQLProtocolParser;
|
||||
use TcpdumpParser;
|
||||
@@ -38,7 +38,6 @@ test_protocol_parser(
|
||||
pos_in_log => 0,
|
||||
bytes => length('select "hello world" as greeting'),
|
||||
cmd => 'Query',
|
||||
Error_no => 'none',
|
||||
Rows_affected => 0,
|
||||
Warning_count => 0,
|
||||
No_good_index_used => 'No',
|
||||
@@ -66,7 +65,6 @@ test_protocol_parser(
|
||||
pos_in_log => 1470,
|
||||
bytes => length('administrator command: Connect'),
|
||||
cmd => 'Admin',
|
||||
Error_no => 'none',
|
||||
Rows_affected => 0,
|
||||
Warning_count => 0,
|
||||
No_good_index_used => 'No',
|
||||
@@ -84,7 +82,6 @@ test_protocol_parser(
|
||||
pos_in_log => 2449,
|
||||
ts => '090412 11:00:13.118643',
|
||||
user => 'msandbox',
|
||||
Error_no => 'none',
|
||||
Rows_affected => 0,
|
||||
Warning_count => 0,
|
||||
No_good_index_used => 'No',
|
||||
@@ -102,7 +99,6 @@ test_protocol_parser(
|
||||
pos_in_log => 3298,
|
||||
ts => '090412 11:00:13.119079',
|
||||
user => 'msandbox',
|
||||
Error_no => 'none',
|
||||
Rows_affected => 0,
|
||||
Warning_count => 0,
|
||||
No_good_index_used => 'No',
|
||||
@@ -120,7 +116,6 @@ test_protocol_parser(
|
||||
pos_in_log => '4186',
|
||||
ts => '090412 11:00:13.119487',
|
||||
user => 'msandbox',
|
||||
Error_no => 'none',
|
||||
Rows_affected => 0,
|
||||
Warning_count => 0,
|
||||
No_good_index_used => 'No',
|
||||
@@ -177,7 +172,7 @@ test_protocol_parser(
|
||||
pos_in_log => 0,
|
||||
bytes => length('select 5 from foo'),
|
||||
cmd => 'Query',
|
||||
Error_no => "#1046",
|
||||
Error_no => "1046",
|
||||
Error_msg => 'No database selected',
|
||||
Rows_affected => 0,
|
||||
Warning_count => 0,
|
||||
@@ -194,7 +189,7 @@ test_protocol_parser(
|
||||
protocol => $protocol,
|
||||
file => "$sample/tcpdump005.txt",
|
||||
result => [
|
||||
{ Error_no => 'none',
|
||||
{
|
||||
Rows_affected => 1,
|
||||
Query_time => '0.000435',
|
||||
Thread_id => 4294967296,
|
||||
@@ -212,7 +207,7 @@ test_protocol_parser(
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
},
|
||||
{ Error_no => 'none',
|
||||
{
|
||||
Rows_affected => 2,
|
||||
Query_time => '0.000565',
|
||||
Thread_id => 4294967296,
|
||||
@@ -252,7 +247,6 @@ test_protocol_parser(
|
||||
pos_in_log => 0,
|
||||
bytes => length('select * from t'),
|
||||
cmd => 'Query',
|
||||
Error_no => 'none',
|
||||
Rows_affected => 0,
|
||||
Warning_count => 0,
|
||||
No_good_index_used => 'No',
|
||||
@@ -280,7 +274,6 @@ test_protocol_parser(
|
||||
pos_in_log => 0,
|
||||
bytes => length('insert into t values(current_date)'),
|
||||
cmd => 'Query',
|
||||
Error_no => 'none',
|
||||
Rows_affected => 1,
|
||||
Warning_count => 1,
|
||||
No_good_index_used => 'No',
|
||||
@@ -412,7 +405,6 @@ test_protocol_parser(
|
||||
pos_in_log => 0,
|
||||
bytes => length('select "hello world" as greeting'),
|
||||
cmd => 'Query',
|
||||
Error_no => 'none',
|
||||
Rows_affected => 0,
|
||||
Warning_count => 0,
|
||||
No_good_index_used => 'No',
|
||||
@@ -434,7 +426,7 @@ test_protocol_parser(
|
||||
file => "$sample/tcpdump013.txt",
|
||||
desc => 'old password and compression',
|
||||
result => [
|
||||
{ Error_no => 'none',
|
||||
{
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.034355',
|
||||
@@ -466,7 +458,6 @@ test_protocol_parser(
|
||||
desc => 'in-stream compression detection',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.001375',
|
||||
@@ -503,7 +494,6 @@ SKIP: {
|
||||
desc => 'compressed data',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.006415',
|
||||
@@ -522,7 +512,6 @@ SKIP: {
|
||||
user => 'msandbox',
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'Yes',
|
||||
Query_time => '0.002884',
|
||||
@@ -541,7 +530,6 @@ SKIP: {
|
||||
user => 'msandbox',
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000000',
|
||||
@@ -574,7 +562,6 @@ test_protocol_parser(
|
||||
desc => 'TCP retransmission',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.001000',
|
||||
@@ -607,7 +594,6 @@ test_protocol_parser(
|
||||
desc => 'Multiple servers',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000206',
|
||||
@@ -626,7 +612,6 @@ test_protocol_parser(
|
||||
user => undef,
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000203',
|
||||
@@ -656,7 +641,6 @@ test_protocol_parser(
|
||||
desc => 'Multiple servers but watch only one',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000206',
|
||||
@@ -713,7 +697,6 @@ test_protocol_parser(
|
||||
desc => 'prepared statements, simple, no NULL',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000286',
|
||||
@@ -733,7 +716,6 @@ test_protocol_parser(
|
||||
Statement_id => 2,
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'Yes',
|
||||
Query_time => '0.000281',
|
||||
@@ -753,7 +735,6 @@ test_protocol_parser(
|
||||
Statement_id => 2,
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000000',
|
||||
@@ -782,7 +763,6 @@ test_protocol_parser(
|
||||
desc => 'prepared statements, NULL value',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000303',
|
||||
@@ -802,7 +782,6 @@ test_protocol_parser(
|
||||
Statement_id => 2,
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000186',
|
||||
@@ -832,7 +811,6 @@ test_protocol_parser(
|
||||
desc => 'prepared statements, string, char and float',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000315',
|
||||
@@ -852,7 +830,6 @@ test_protocol_parser(
|
||||
Statement_id => 2,
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000249',
|
||||
@@ -882,7 +859,6 @@ test_protocol_parser(
|
||||
desc => 'prepared statements, all NULL',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000278',
|
||||
@@ -902,7 +878,6 @@ test_protocol_parser(
|
||||
Statement_id => 2,
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000159',
|
||||
@@ -932,7 +907,6 @@ test_protocol_parser(
|
||||
desc => 'prepared statements, no params',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000268',
|
||||
@@ -952,7 +926,6 @@ test_protocol_parser(
|
||||
Statement_id => 2,
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'Yes',
|
||||
Query_time => '0.000234',
|
||||
@@ -982,7 +955,6 @@ test_protocol_parser(
|
||||
desc => 'prepared statements, close statement',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000000',
|
||||
@@ -1011,7 +983,6 @@ test_protocol_parser(
|
||||
desc => 'prepared statements, reset statement',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000023',
|
||||
@@ -1041,7 +1012,6 @@ test_protocol_parser(
|
||||
desc => 'prepared statements, multiple exec, new param',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000292',
|
||||
@@ -1061,7 +1031,6 @@ test_protocol_parser(
|
||||
user => undef
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'Yes',
|
||||
Query_time => '0.000254',
|
||||
@@ -1081,7 +1050,6 @@ test_protocol_parser(
|
||||
user => undef
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'Yes',
|
||||
Query_time => '0.000190',
|
||||
@@ -1101,7 +1069,6 @@ test_protocol_parser(
|
||||
user => undef
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'Yes',
|
||||
Query_time => '0.000166',
|
||||
@@ -1131,7 +1098,6 @@ test_protocol_parser(
|
||||
desc => 'prepared statements, real param types',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000221',
|
||||
@@ -1151,7 +1117,6 @@ test_protocol_parser(
|
||||
user => undef
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000203',
|
||||
@@ -1171,7 +1136,6 @@ test_protocol_parser(
|
||||
user => undef
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000000',
|
||||
@@ -1190,7 +1154,6 @@ test_protocol_parser(
|
||||
user => undef
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000000',
|
||||
@@ -1219,7 +1182,6 @@ test_protocol_parser(
|
||||
desc => 'prepared statements, ok response to execute',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000046',
|
||||
@@ -1239,7 +1201,6 @@ test_protocol_parser(
|
||||
user => undef
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000024',
|
||||
@@ -1269,7 +1230,6 @@ test_protocol_parser(
|
||||
desc => 'prepared statements, NULL bitmap',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000288',
|
||||
@@ -1289,7 +1249,6 @@ test_protocol_parser(
|
||||
user => undef
|
||||
},
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000322',
|
||||
@@ -1322,7 +1281,6 @@ test_protocol_parser(
|
||||
desc => 'issue 761',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000431',
|
||||
@@ -1354,7 +1312,6 @@ test_protocol_parser(
|
||||
desc => 'issue 760',
|
||||
result => [
|
||||
{
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000430',
|
||||
@@ -1397,7 +1354,6 @@ test_protocol_parser(
|
||||
pos_in_log => 1470,
|
||||
bytes => length('administrator command: Connect'),
|
||||
cmd => 'Admin',
|
||||
Error_no => 'none',
|
||||
Rows_affected => 0,
|
||||
Warning_count => 0,
|
||||
No_good_index_used => 'No',
|
||||
@@ -1415,7 +1371,6 @@ test_protocol_parser(
|
||||
pos_in_log => 2449,
|
||||
ts => '090412 11:00:13.119079',
|
||||
user => 'msandbox',
|
||||
Error_no => 'none',
|
||||
Rows_affected => 0,
|
||||
Warning_count => 0,
|
||||
No_good_index_used => 'No',
|
||||
@@ -1433,7 +1388,6 @@ test_protocol_parser(
|
||||
pos_in_log => 3337,
|
||||
ts => '090412 11:00:13.119487',
|
||||
user => 'msandbox',
|
||||
Error_no => 'none',
|
||||
Rows_affected => 0,
|
||||
Warning_count => 0,
|
||||
No_good_index_used => 'No',
|
||||
@@ -1441,7 +1395,6 @@ test_protocol_parser(
|
||||
},
|
||||
# port reused...
|
||||
{ ts => '090412 12:00:00.800000',
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.700000',
|
||||
@@ -1459,7 +1412,6 @@ test_protocol_parser(
|
||||
user => 'msandbox',
|
||||
},
|
||||
{ ts => '090412 12:00:01.000000',
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.100000',
|
||||
@@ -1477,7 +1429,6 @@ test_protocol_parser(
|
||||
user => 'msandbox',
|
||||
},
|
||||
{ ts => '090412 12:00:01.100000',
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000000',
|
||||
@@ -1516,7 +1467,6 @@ test_protocol_parser(
|
||||
pos_in_log => 1470,
|
||||
bytes => length('administrator command: Connect'),
|
||||
cmd => 'Admin',
|
||||
Error_no => 'none',
|
||||
Rows_affected => 0,
|
||||
Warning_count => 0,
|
||||
No_good_index_used => 'No',
|
||||
@@ -1524,7 +1474,6 @@ test_protocol_parser(
|
||||
},
|
||||
# port reused...
|
||||
{ ts => '090412 12:00:00.800000',
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.700000',
|
||||
@@ -1542,7 +1491,6 @@ test_protocol_parser(
|
||||
user => 'msandbox',
|
||||
},
|
||||
{ ts => '090412 12:00:01.000000',
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.100000',
|
||||
@@ -1560,7 +1508,6 @@ test_protocol_parser(
|
||||
user => 'msandbox',
|
||||
},
|
||||
{ ts => '090412 12:00:01.100000',
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000000',
|
||||
@@ -1588,7 +1535,6 @@ test_protocol_parser(
|
||||
desc => 'no server ok (issue 794)',
|
||||
result => [
|
||||
{ ts => '090412 12:00:01.000000',
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000000',
|
||||
@@ -1606,7 +1552,6 @@ test_protocol_parser(
|
||||
user => undef
|
||||
},
|
||||
{ ts => '090412 12:00:03.000000',
|
||||
Error_no => 'none',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '1.000000',
|
||||
@@ -1659,7 +1604,7 @@ test_protocol_parser(
|
||||
[
|
||||
{
|
||||
Error_msg => "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1",
|
||||
Error_no => '#1064',
|
||||
Error_no => '1064',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000316',
|
||||
@@ -1679,7 +1624,7 @@ test_protocol_parser(
|
||||
},
|
||||
{
|
||||
Error_msg => 'Unknown system variable \'nono\'',
|
||||
Error_no => '#1193',
|
||||
Error_no => '1193',
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '0.000329',
|
||||
@@ -1700,7 +1645,107 @@ test_protocol_parser(
|
||||
],
|
||||
);
|
||||
|
||||
# #############################################################################
|
||||
# Bug 1103045: pt-query-digest fails to parse non-SQL errors
|
||||
# https://bugs.launchpad.net/percona-toolkit/+bug/1103045
|
||||
# #############################################################################
|
||||
|
||||
$protocol = new MySQLProtocolParser(
|
||||
server => '127.0.0.1',
|
||||
port => '12345',
|
||||
);
|
||||
|
||||
test_protocol_parser(
|
||||
parser => $tcpdump,
|
||||
protocol => $protocol,
|
||||
file => "$sample/tcpdump043.txt",
|
||||
desc => 'Bad connection',
|
||||
result =>
|
||||
[
|
||||
{
|
||||
Error_msg => 'Got packets out of order',
|
||||
Error_no => 1156,
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '3.536306',
|
||||
Rows_affected => 0,
|
||||
Thread_id => 27,
|
||||
Warning_count => 0,
|
||||
arg => 'administrator command: Connect',
|
||||
bytes => 30,
|
||||
cmd => 'Admin',
|
||||
db => undef,
|
||||
host => '127.0.0.1',
|
||||
ip => '127.0.0.1',
|
||||
port => '62160',
|
||||
pos_in_log => undef,
|
||||
ts => '130124 13:03:28.672987',
|
||||
user => undef,
|
||||
}
|
||||
],
|
||||
);
|
||||
|
||||
test_protocol_parser(
|
||||
parser => $tcpdump,
|
||||
protocol => $protocol,
|
||||
file => "$sample/tcpdump042.txt",
|
||||
desc => 'Client went away during handshake',
|
||||
result => [
|
||||
{
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '9.998411',
|
||||
Rows_affected => 0,
|
||||
Thread_id => 24,
|
||||
Warning_count => 0,
|
||||
arg => 'administrator command: Connect',
|
||||
bytes => 30,
|
||||
cmd => 'Admin',
|
||||
db => undef,
|
||||
host => '127.0.0.1',
|
||||
ip => '127.0.0.1',
|
||||
port => '62133',
|
||||
pos_in_log => undef,
|
||||
ts => '130124 12:55:48.274417',
|
||||
user => undef,
|
||||
Error_msg => 'Client closed connection during handshake',
|
||||
}
|
||||
],
|
||||
);
|
||||
|
||||
$protocol = new MySQLProtocolParser(
|
||||
server => '100.0.0.1',
|
||||
);
|
||||
|
||||
test_protocol_parser(
|
||||
parser => $tcpdump,
|
||||
protocol => $protocol,
|
||||
file => "$sample/tcpdump044.txt",
|
||||
desc => 'Client aborted connection (bug 1103045)',
|
||||
result => [
|
||||
{
|
||||
No_good_index_used => 'No',
|
||||
No_index_used => 'No',
|
||||
Query_time => '3.819507',
|
||||
Rows_affected => 0,
|
||||
Thread_id => 13,
|
||||
Warning_count => 0,
|
||||
arg => 'administrator command: Connect',
|
||||
bytes => 30,
|
||||
cmd => 'Admin',
|
||||
db => undef,
|
||||
host => '100.0.0.2',
|
||||
ip => '100.0.0.2',
|
||||
port => '44432',
|
||||
pos_in_log => undef,
|
||||
ts => '130122 09:55:57.793375',
|
||||
user => undef,
|
||||
Error_msg => 'Client closed connection during handshake',
|
||||
},
|
||||
],
|
||||
);
|
||||
|
||||
# #############################################################################
|
||||
# Done.
|
||||
# #############################################################################
|
||||
exit;
|
||||
done_testing;
|
||||
|
59
t/lib/samples/tcpdump/tcpdump042.txt
Normal file
59
t/lib/samples/tcpdump/tcpdump042.txt
Normal file
@@ -0,0 +1,59 @@
|
||||
2013-01-24 12:55:38.276006 IP 127.0.0.1.62133 > 127.0.0.1.12345: tcp 0
|
||||
0x0000: 4510 0040 b290 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 f2b5 3039 58cf 8e7c 0000 0000
|
||||
0x0020: b002 ffff fe34 0000 0204 3fd8 0103 0303
|
||||
0x0030: 0101 080a 0580 fe1f 0000 0000 0402 0000
|
||||
2013-01-24 12:55:38.276053 IP 127.0.0.1.12345 > 127.0.0.1.62133: tcp 0
|
||||
0x0000: 4500 0040 65de 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 3039 f2b5 1c49 dad0 58cf 8e7d
|
||||
0x0020: b012 ffff fe34 0000 0204 3fd8 0103 0303
|
||||
0x0030: 0101 080a 0580 fe1f 0580 fe1f 0402 0000
|
||||
2013-01-24 12:55:38.276062 IP 127.0.0.1.62133 > 127.0.0.1.12345: tcp 0
|
||||
0x0000: 4510 0034 2fb2 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 f2b5 3039 58cf 8e7d 1c49 dad1
|
||||
0x0020: 8010 ffff fe28 0000 0101 080a 0580 fe1f
|
||||
0x0030: 0580 fe1f
|
||||
2013-01-24 12:55:38.276071 IP 127.0.0.1.12345 > 127.0.0.1.62133: tcp 0
|
||||
0x0000: 4500 0034 4cba 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 3039 f2b5 1c49 dad1 58cf 8e7d
|
||||
0x0020: 8010 ffff fe28 0000 0101 080a 0580 fe1f
|
||||
0x0030: 0580 fe1f
|
||||
2013-01-24 12:55:38.278813 IP 127.0.0.1.12345 > 127.0.0.1.62133: tcp 60
|
||||
0x0000: 4508 0070 e5f9 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 3039 f2b5 1c49 dad1 58cf 8e7d
|
||||
0x0020: 8018 ffff fe64 0000 0101 080a 0580 fe1f
|
||||
0x0030: 0580 fe1f 3800 0000 0a35 2e31 2e35 332d
|
||||
0x0040: 6c6f 6700 1800 0000 6553 5179 332d 2925
|
||||
0x0050: 00ff f708 0200 0000 0000 0000 0000 0000
|
||||
0x0060: 0000 007b 6154 5f62 4d3d 274a 2269 6900
|
||||
2013-01-24 12:55:38.278831 IP 127.0.0.1.62133 > 127.0.0.1.12345: tcp 0
|
||||
0x0000: 4510 0034 0cb3 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 f2b5 3039 58cf 8e7d 1c49 db0d
|
||||
0x0020: 8010 ffff fe28 0000 0101 080a 0580 fe1f
|
||||
0x0030: 0580 fe1f
|
||||
2013-01-24 12:55:48.274417 IP 127.0.0.1.12345 > 127.0.0.1.62133: tcp 0
|
||||
0x0000: 4508 0034 5ba9 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 3039 f2b5 1c49 db0d 58cf 8e7d
|
||||
0x0020: 8011 ffff fe28 0000 0101 080a 0580 fe83
|
||||
0x0030: 0580 fe1f
|
||||
2013-01-24 12:55:48.274515 IP 127.0.0.1.62133 > 127.0.0.1.12345: tcp 0
|
||||
0x0000: 4510 0034 4493 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 f2b5 3039 58cf 8e7d 1c49 db0e
|
||||
0x0020: 8010 ffff fe28 0000 0101 080a 0580 fe83
|
||||
0x0030: 0580 fe83
|
||||
2013-01-24 12:55:48.274541 IP 127.0.0.1.12345 > 127.0.0.1.62133: tcp 0
|
||||
0x0000: 4508 0034 cfea 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 3039 f2b5 1c49 db0e 58cf 8e7d
|
||||
0x0020: 8010 ffff fe28 0000 0101 080a 0580 fe83
|
||||
0x0030: 0580 fe83
|
||||
2013-01-24 12:55:48.274741 IP 127.0.0.1.62133 > 127.0.0.1.12345: tcp 0
|
||||
0x0000: 4510 0034 6e98 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 f2b5 3039 58cf 8e7d 1c49 db0e
|
||||
0x0020: 8011 ffff fe28 0000 0101 080a 0580 fe83
|
||||
0x0030: 0580 fe83
|
||||
2013-01-24 12:55:48.274836 IP 127.0.0.1.12345 > 127.0.0.1.62133: tcp 0
|
||||
0x0000: 4508 0034 bcc4 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 3039 f2b5 1c49 db0e 58cf 8e7e
|
||||
0x0020: 8010 fffe fe28 0000 0101 080a 0580 fe83
|
||||
0x0030: 0580 fe83
|
||||
|
82
t/lib/samples/tcpdump/tcpdump043.txt
Normal file
82
t/lib/samples/tcpdump/tcpdump043.txt
Normal file
@@ -0,0 +1,82 @@
|
||||
2013-01-24 13:03:25.136681 IP 127.0.0.1.62160 > 127.0.0.1.12345: tcp 0
|
||||
0x0000: 4510 0040 ea0e 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 f2d0 3039 ad71 3d49 0000 0000
|
||||
0x0020: b002 ffff fe34 0000 0204 3fd8 0103 0303
|
||||
0x0030: 0101 080a 0581 1055 0000 0000 0402 0000
|
||||
2013-01-24 13:03:25.136728 IP 127.0.0.1.12345 > 127.0.0.1.62160: tcp 0
|
||||
0x0000: 4500 0040 dc6f 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 3039 f2d0 7d01 6881 ad71 3d4a
|
||||
0x0020: b012 ffff fe34 0000 0204 3fd8 0103 0303
|
||||
0x0030: 0101 080a 0581 1055 0581 1055 0402 0000
|
||||
2013-01-24 13:03:25.136737 IP 127.0.0.1.62160 > 127.0.0.1.12345: tcp 0
|
||||
0x0000: 4510 0034 0e53 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 f2d0 3039 ad71 3d4a 7d01 6882
|
||||
0x0020: 8010 ffff fe28 0000 0101 080a 0581 1055
|
||||
0x0030: 0581 1055
|
||||
2013-01-24 13:03:25.136746 IP 127.0.0.1.12345 > 127.0.0.1.62160: tcp 0
|
||||
0x0000: 4500 0034 f54e 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 3039 f2d0 7d01 6882 ad71 3d4a
|
||||
0x0020: 8010 ffff fe28 0000 0101 080a 0581 1055
|
||||
0x0030: 0581 1055
|
||||
2013-01-24 13:03:25.146062 IP 127.0.0.1.12345 > 127.0.0.1.62160: tcp 60
|
||||
0x0000: 4508 0070 6334 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 3039 f2d0 7d01 6882 ad71 3d4a
|
||||
0x0020: 8018 ffff fe64 0000 0101 080a 0581 1055
|
||||
0x0030: 0581 1055 3800 0000 0a35 2e31 2e35 332d
|
||||
0x0040: 6c6f 6700 1b00 0000 4d34 5946 3267 3260
|
||||
0x0050: 00ff f708 0200 0000 0000 0000 0000 0000
|
||||
0x0060: 0000 006c 225e 3633 3a6c 3048 5863 6800
|
||||
2013-01-24 13:03:25.146080 IP 127.0.0.1.62160 > 127.0.0.1.12345: tcp 0
|
||||
0x0000: 4510 0034 3e79 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 f2d0 3039 ad71 3d4a 7d01 68be
|
||||
0x0020: 8010 ffff fe28 0000 0101 080a 0581 1055
|
||||
0x0030: 0581 1055
|
||||
2013-01-24 13:03:28.672802 IP 127.0.0.1.62160 > 127.0.0.1.12345: tcp 15
|
||||
0x0000: 4510 0043 145a 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 f2d0 3039 ad71 3d4a 7d01 68be
|
||||
0x0020: 8018 ffff fe37 0000 0101 080a 0581 1079
|
||||
0x0030: 0581 1055 6865 6c6c 6f2c 2077 6f72 6c64
|
||||
0x0040: 210d 0a
|
||||
2013-01-24 13:03:28.672856 IP 127.0.0.1.12345 > 127.0.0.1.62160: tcp 0
|
||||
0x0000: 4508 0034 b07b 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 3039 f2d0 7d01 68be ad71 3d59
|
||||
0x0020: 8010 ffff fe28 0000 0101 080a 0581 1079
|
||||
0x0030: 0581 1079
|
||||
2013-01-24 13:03:28.672987 IP 127.0.0.1.12345 > 127.0.0.1.62160: tcp 31
|
||||
0x0000: 4508 0053 6336 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 3039 f2d0 7d01 68be ad71 3d59
|
||||
0x0020: 8018 ffff fe47 0000 0101 080a 0581 1079
|
||||
0x0030: 0581 1079 1b00 0001 ff84 0447 6f74 2070
|
||||
0x0040: 6163 6b65 7473 206f 7574 206f 6620 6f72
|
||||
0x0050: 6465 72
|
||||
2013-01-24 13:03:28.673017 IP 127.0.0.1.62160 > 127.0.0.1.12345: tcp 0
|
||||
0x0000: 4510 0034 fb76 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 f2d0 3039 ad71 3d59 7d01 68dd
|
||||
0x0020: 8010 ffff fe28 0000 0101 080a 0581 1079
|
||||
0x0030: 0581 1079
|
||||
2013-01-24 13:03:28.673103 IP 127.0.0.1.12345 > 127.0.0.1.62160: tcp 0
|
||||
0x0000: 4508 0034 ae21 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 3039 f2d0 7d01 68dd ad71 3d59
|
||||
0x0020: 8011 ffff fe28 0000 0101 080a 0581 1079
|
||||
0x0030: 0581 1079
|
||||
2013-01-24 13:03:28.673139 IP 127.0.0.1.62160 > 127.0.0.1.12345: tcp 0
|
||||
0x0000: 4510 0034 d821 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 f2d0 3039 ad71 3d59 7d01 68de
|
||||
0x0020: 8010 ffff fe28 0000 0101 080a 0581 1079
|
||||
0x0030: 0581 1079
|
||||
2013-01-24 13:03:28.673156 IP 127.0.0.1.12345 > 127.0.0.1.62160: tcp 0
|
||||
0x0000: 4508 0034 ab2e 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 3039 f2d0 7d01 68de ad71 3d59
|
||||
0x0020: 8010 ffff fe28 0000 0101 080a 0581 1079
|
||||
0x0030: 0581 1079
|
||||
2013-01-24 13:03:28.673444 IP 127.0.0.1.62160 > 127.0.0.1.12345: tcp 0
|
||||
0x0000: 4510 0034 e03d 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 f2d0 3039 ad71 3d59 7d01 68de
|
||||
0x0020: 8011 ffff fe28 0000 0101 080a 0581 1079
|
||||
0x0030: 0581 1079
|
||||
2013-01-24 13:03:28.673464 IP 127.0.0.1.12345 > 127.0.0.1.62160: tcp 0
|
||||
0x0000: 4508 0034 b22d 4000 4006 0000 7f00 0001
|
||||
0x0010: 7f00 0001 3039 f2d0 7d01 68de ad71 3d5a
|
||||
0x0020: 8010 fffe fe28 0000 0101 080a 0581 1079
|
||||
0x0030: 0581 1079
|
||||
|
70
t/lib/samples/tcpdump/tcpdump044.txt
Normal file
70
t/lib/samples/tcpdump/tcpdump044.txt
Normal file
@@ -0,0 +1,70 @@
|
||||
2013-01-22 09:55:53.973868 IP 100.0.0.2.44432 > 100.0.0.1.3306: tcp 0
|
||||
0x0000: 4510 003c bbae 4000 4006 f033 0a1c bd48
|
||||
0x0010: 0a1c bd49 ad90 0cea af89 ab81 0000 0000
|
||||
0x0020: a002 16d0 f7a5 0000 0204 05b4 0402 080a
|
||||
0x0030: 850b 102f 0000 0000 0103 0307
|
||||
2013-01-22 09:55:53.973885 IP 100.0.0.1.3306 > 100.0.0.2.44432: tcp 0
|
||||
0x0000: 4500 003c 0000 4000 4006 abf2 0a1c bd49
|
||||
0x0010: 0a1c bd48 0cea ad90 bcdd 5ddd af89 ab82
|
||||
0x0020: a012 16a0 e720 0000 0204 05b4 0402 080a
|
||||
0x0030: 7a96 7b52 850b 102f 0103 0307
|
||||
2013-01-22 09:55:53.973886 IP 100.0.0.1.3306 > 100.0.0.2.44432: tcp 0
|
||||
0x0000: 4500 003c 0000 4000 4006 abf2 0a1c bd49
|
||||
0x0010: 0a1c bd48 0cea ad90 bcdd 5ddd af89 ab82
|
||||
0x0020: a012 16a0 e720 0000 0204 05b4 0402 080a
|
||||
0x0030: 7a96 7b52 850b 102f 0103 0307
|
||||
2013-01-22 09:55:53.973929 IP 100.0.0.2.44432 > 100.0.0.1.3306: tcp 0
|
||||
0x0000: 4510 0034 bbaf 4000 4006 f03a 0a1c bd48
|
||||
0x0010: 0a1c bd49 ad90 0cea af89 ab82 bcdd 5dde
|
||||
0x0020: 8010 002e 2c5f 0000 0101 080a 850b 102f
|
||||
0x0030: 7a96 7b52
|
||||
2013-01-22 09:55:53.974017 IP 100.0.0.1.3306 > 100.0.0.2.44432: tcp 113
|
||||
0x0000: 4508 00a5 268c 4000 4006 84f5 0a1c bd49
|
||||
0x0010: 0a1c bd48 0cea ad90 bcdd 5dde af89 ab82
|
||||
0x0020: 8018 002e 8f61 0000 0101 080a 7a96 7b52
|
||||
0x0030: 850b 102f 6d00 0000 0a35 2e35 2e32 382d
|
||||
0x0040: 656e 7465 7270 7269 7365 2d63 6f6d 6d65
|
||||
0x0050: 7263 6961 6c2d 6164 7661 6e63 6564 2d6c
|
||||
0x0060: 6f67 000d 0000 006c 706d 5338 5d4a 3c00
|
||||
0x0070: fff7 0802 000f 8015 0000 0000 0000 0000
|
||||
0x0080: 0000 2f72 7265 247e 7347 4565 4f3c 006d
|
||||
0x0090: 7973 716c 5f6e 6174 6976 655f 7061 7373
|
||||
0x00a0: 776f 7264 00
|
||||
2013-01-22 09:55:53.974019 IP 100.0.0.1.3306 > 100.0.0.2.44432: tcp 113
|
||||
0x0000: 4508 00a5 268c 4000 4006 84f5 0a1c bd49
|
||||
0x0010: 0a1c bd48 0cea ad90 bcdd 5dde af89 ab82
|
||||
0x0020: 8018 002e 8f61 0000 0101 080a 7a96 7b52
|
||||
0x0030: 850b 102f 6d00 0000 0a35 2e35 2e32 382d
|
||||
0x0040: 656e 7465 7270 7269 7365 2d63 6f6d 6d65
|
||||
0x0050: 7263 6961 6c2d 6164 7661 6e63 6564 2d6c
|
||||
0x0060: 6f67 000d 0000 006c 706d 5338 5d4a 3c00
|
||||
0x0070: fff7 0802 000f 8015 0000 0000 0000 0000
|
||||
0x0080: 0000 2f72 7265 247e 7347 4565 4f3c 006d
|
||||
0x0090: 7973 716c 5f6e 6174 6976 655f 7061 7373
|
||||
0x00a0: 776f 7264 00
|
||||
2013-01-22 09:55:53.974064 IP 100.0.0.2.44432 > 100.0.0.1.3306: tcp 0
|
||||
0x0000: 4510 0034 bbb0 4000 4006 f039 0a1c bd48
|
||||
0x0010: 0a1c bd49 ad90 0cea af89 ab82 bcdd 5e4f
|
||||
0x0020: 8010 002e 2bee 0000 0101 080a 850b 102f
|
||||
0x0030: 7a96 7b52
|
||||
2013-01-22 09:55:57.793375 IP 100.0.0.2.44432 > 100.0.0.1.3306: tcp 0
|
||||
0x0000: 4510 0034 bbb1 4000 4006 f038 0a1c bd48
|
||||
0x0010: 0a1c bd49 ad90 0cea af89 ab82 bcdd 5e4f
|
||||
0x0020: 8011 002e 1d02 0000 0101 080a 850b 1f1a
|
||||
0x0030: 7a96 7b52
|
||||
2013-01-22 09:55:57.793485 IP 100.0.0.1.3306 > 100.0.0.2.44432: tcp 0
|
||||
0x0000: 4508 0034 268d 4000 4006 8565 0a1c bd49
|
||||
0x0010: 0a1c bd48 0cea ad90 bcdd 5e4f af89 ab83
|
||||
0x0020: 8011 002e 0e16 0000 0101 080a 7a96 8a3d
|
||||
0x0030: 850b 1f1a
|
||||
2013-01-22 09:55:57.793489 IP 100.0.0.1.3306 > 100.0.0.2.44432: tcp 0
|
||||
0x0000: 4508 0034 268d 4000 4006 8565 0a1c bd49
|
||||
0x0010: 0a1c bd48 0cea ad90 bcdd 5e4f af89 ab83
|
||||
0x0020: 8011 002e 0e16 0000 0101 080a 7a96 8a3d
|
||||
0x0030: 850b 1f1a
|
||||
2013-01-22 09:55:57.793529 IP 100.0.0.2.44432 > 100.0.0.1.3306: tcp 0
|
||||
0x0000: 4510 0034 bbb2 4000 4006 f037 0a1c bd48
|
||||
0x0010: 0a1c bd49 ad90 0cea af89 ab83 bcdd 5e50
|
||||
0x0020: 8010 002e 0e15 0000 0101 080a 850b 1f1b
|
||||
0x0030: 7a96 8a3d
|
||||
|
@@ -1,123 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# This test file must be ran by util/test-bash-functions.
|
||||
|
||||
TESTS=6
|
||||
PT_TMPDIR=$TEST_PT_TMPDIR
|
||||
|
||||
# ############################################################################
|
||||
TEST_NAME="stacktrace-001.txt"
|
||||
# ############################################################################
|
||||
cat > $PT_TMPDIR/expected <<EOF
|
||||
187 __lll_mutex_lock_wait,_L_mutex_lock_1133,pthread_mutex_lock,safe_mutex_lock,open_table,open_tables,open_and_lock_tables,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread,clone
|
||||
62 __lll_mutex_lock_wait,_L_mutex_lock_1133,pthread_mutex_lock,safe_mutex_lock,close_thread_tables,dispatch_command,handle_one_connection,start_thread,clone
|
||||
39 read,vio_read,my_real_read,my_net_read,handle_one_connection,start_thread,clone
|
||||
18 pthread_cond_wait,safe_cond_wait,os_event_wait_low,os_aio_simulated_handle,fil_aio_wait,io_handler_thread,start_thread,clone
|
||||
15 pthread_cond_wait,safe_cond_wait,end_thread,handle_one_connection,start_thread,clone
|
||||
15 __lll_mutex_lock_wait,_L_mutex_lock_1133,pthread_mutex_lock,safe_mutex_lock,open_table,open_tables,mysql_update,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread,clone
|
||||
12 __lll_mutex_lock_wait,_L_mutex_lock_1133,pthread_mutex_lock,safe_mutex_lock,open_table,open_tables,open_and_lock_tables,mysql_insert,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread,clone
|
||||
2 __lll_mutex_lock_wait,_L_mutex_lock_107,pthread_mutex_lock,safe_mutex_lock,Log_event::read_log_event,mysql_binlog_send,dispatch_command,handle_one_connection,start_thread,clone
|
||||
1 select,os_thread_sleep,srv_master_thread,start_thread,clone
|
||||
1 select,os_thread_sleep,srv_lock_timeout_and_monitor_thread,start_thread,clone
|
||||
1 select,os_thread_sleep,srv_error_monitor_thread,start_thread,clone
|
||||
1 select,handle_connections_sockets,main
|
||||
1 _sanity,_myfree,st_join_table::cleanup,JOIN::cleanup,JOIN::join_free,do_select,JOIN::exec,mysql_select,handle_select,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread,clone
|
||||
1 pread64,_os_file_pread,_os_file_read,_fil_io,buf_read_page_low,buf_read_page,buf_page_get_gen,btr_cur_search_to_nth_level,btr_estimate_n_rows_in_range,ha_innobase::records_in_range,check_quick_keys,check_quick_select,get_key_scans_params,SQL_SELECT::test_quick_select,mysql_update,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread,clone
|
||||
1 __lll_mutex_lock_wait,_L_mutex_lock_1133,pthread_mutex_lock,safe_mutex_lock,_sanity,_myrealloc,String::realloc,String::append,Log_event::read_log_event,mysql_binlog_send,dispatch_command,handle_one_connection,start_thread,clone
|
||||
1 __lll_mutex_lock_wait,_L_mutex_lock_1133,pthread_mutex_lock,safe_mutex_lock,_sanity,_mymalloc,_myrealloc,mi_alloc_rec_buff,mi_open,ha_myisam::open,handler::ha_open,open_tmp_table,create_tmp_table,select_union::create_result_table,mysql_derived_prepare,mysql_handle_derived,open_and_lock_tables,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread,clone
|
||||
1 __lll_mutex_lock_wait,_L_mutex_lock_1133,pthread_mutex_lock,safe_mutex_lock,_sanity,_mymalloc,init_dynamic_array,QUICK_RANGE_SELECT,get_quick_select,TRP_RANGE::make_quick,SQL_SELECT::test_quick_select,make_join_statistics,JOIN::optimize,mysql_select,mysql_derived_filling,mysql_handle_derived,open_and_lock_tables,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread,clone
|
||||
1 __lll_mutex_lock_wait,_L_mutex_lock_1133,pthread_mutex_lock,safe_mutex_lock,_mymalloc,alloc_root,MYSQLparse,mysql_make_view,open_unireg_entry,open_table,open_tables,open_and_lock_tables,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread,clone
|
||||
1 __lll_mutex_lock_wait,_L_mutex_lock_107,pthread_mutex_lock,safe_mutex_lock,mi_open,ha_myisam::open,handler::ha_open,open_tmp_table,create_tmp_table,select_union::create_result_table,mysql_derived_prepare,mysql_handle_derived,open_and_lock_tables,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread,clone
|
||||
1 do_sigwait,sigwait,signal_hand,start_thread,clone
|
||||
EOF
|
||||
|
||||
aggregate_stacktrace 0 samples/stacktrace-001.txt > $PT_TMPDIR/got
|
||||
no_diff $PT_TMPDIR/got $PT_TMPDIR/expected
|
||||
|
||||
# ############################################################################
|
||||
TEST_NAME="stacktrace-002.txt"
|
||||
# ############################################################################
|
||||
cat > $PT_TMPDIR/expected <<EOF
|
||||
2387 pthread_cond_wait,open_table,open_tables,open_and_lock_tables_derived,execute_sqlcom_select,mysql_execute_command,mysql_parse,dispatch_command,do_command,handle_one_connection,start_thread,clone
|
||||
5 pthread_cond_wait,open_table,open_tables,open_and_lock_tables_derived,mysql_insert,mysql_execute_command,mysql_parse,dispatch_command,do_command,handle_one_connection,start_thread,clone
|
||||
4 pthread_cond_wait,os_event_wait_low,os_aio_simulated_handle,fil_aio_wait,io_handler_thread,start_thread,clone
|
||||
4 pthread_cond_wait,open_table,open_tables,open_and_lock_tables_derived,mysql_delete,mysql_execute_command,mysql_parse,dispatch_command,do_command,handle_one_connection,start_thread,clone
|
||||
1 select,os_thread_sleep,srv_master_thread,start_thread,clone
|
||||
1 select,os_thread_sleep,srv_lock_timeout_and_monitor_thread,start_thread,clone
|
||||
1 select,os_thread_sleep,srv_error_monitor_thread,start_thread,clone
|
||||
1 select,handle_connections_sockets,main,select
|
||||
1 read,my_real_read,my_net_read,do_command,handle_one_connection,start_thread,clone
|
||||
1 pthread_cond_wait,cache_thread,one_thread_per_connection_end,handle_one_connection,start_thread,clone
|
||||
1 free,ut_free,page_cur_insert_rec_low,btr_cur_optimistic_insert,row_ins_index_entry_low,row_ins_index_entry,row_ins,row_ins_step,row_insert_for_mysql,ha_innobase::write_row,handler::ha_write_row,ha_partition::copy_partitions,ha_partition::change_partitions,handler::ha_change_partitions,mysql_change_partitions,fast_alter_partition_table,mysql_alter_table,mysql_execute_command,mysql_parse,dispatch_command,do_command,handle_one_connection,start_thread,clone
|
||||
1 do_sigwait,sigwait,signal_hand,start_thread,clone
|
||||
EOF
|
||||
|
||||
aggregate_stacktrace 0 samples/stacktrace-002.txt > $PT_TMPDIR/got
|
||||
no_diff $PT_TMPDIR/got $PT_TMPDIR/expected
|
||||
|
||||
# ############################################################################
|
||||
TEST_NAME="stacktrace-003.txt"
|
||||
# ############################################################################
|
||||
cat > $PT_TMPDIR/expected <<EOF
|
||||
35 pthread_cond_wait,end_thread,handle_one_connection,start_thread,clone
|
||||
20 read,read,vio_read,my_real_read,my_net_read,handle_one_connection,start_thread,clone
|
||||
18 pthread_cond_wait,os_event_wait_low,os_aio_simulated_handle,fil_aio_wait,io_handler_thread,start_thread,clone
|
||||
3 pthread_cond_wait,MYSQL_LOG::wait_for_update,mysql_binlog_send,dispatch_command,handle_one_connection,start_thread,clone
|
||||
1 select,os_thread_sleep,srv_master_thread,start_thread,clone
|
||||
1 select,os_thread_sleep,srv_lock_timeout_and_monitor_thread,start_thread,clone
|
||||
1 select,os_thread_sleep,srv_error_monitor_thread,start_thread,clone
|
||||
1 select,handle_connections_sockets,main
|
||||
1 do_sigwait,sigwait,signal_hand,start_thread,clone
|
||||
1 btr_search_guess_on_hash,btr_cur_search_to_nth_level,btr_pcur_open_with_no_init,row_search_for_mysql,ha_innobase::index_read,join_read_always_key,sub_select,evaluate_join_record,sub_select,evaluate_join_record,sub_select,evaluate_join_record,sub_select,evaluate_join_record,sub_select,evaluate_join_record,sub_select,do_select,JOIN::exec,mysql_select,handle_select,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread,clone
|
||||
1 btr_cur_search_to_nth_level,btr_estimate_n_rows_in_range,ha_innobase::records_in_range,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_select,get_key_scans_params,SQL_SELECT::test_quick_select,get_quick_record_count,make_join_statistics,JOIN::optimize,mysql_select,handle_select,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread,clone
|
||||
EOF
|
||||
|
||||
aggregate_stacktrace 0 samples/stacktrace-003.txt > $PT_TMPDIR/got
|
||||
no_diff $PT_TMPDIR/got $PT_TMPDIR/expected
|
||||
|
||||
# ############################################################################
|
||||
TEST_NAME="stacktrace-003-b.txt"
|
||||
# ############################################################################
|
||||
cat > $PT_TMPDIR/expected <<EOF
|
||||
35 pthread_cond_wait,end_thread
|
||||
20 read,read
|
||||
18 pthread_cond_wait,os_event_wait_low
|
||||
3 select,os_thread_sleep
|
||||
3 pthread_cond_wait,MYSQL_LOG::wait_for_update
|
||||
1 select,handle_connections_sockets
|
||||
1 do_sigwait,sigwait
|
||||
1 btr_search_guess_on_hash,btr_cur_search_to_nth_level
|
||||
1 btr_cur_search_to_nth_level,btr_estimate_n_rows_in_range
|
||||
EOF
|
||||
|
||||
aggregate_stacktrace 2 samples/stacktrace-003.txt > $PT_TMPDIR/got
|
||||
no_diff $PT_TMPDIR/got $PT_TMPDIR/expected
|
||||
|
||||
# ############################################################################
|
||||
TEST_NAME="stacktrace-004.txt"
|
||||
# ############################################################################
|
||||
cat > $PT_TMPDIR/expected <<EOF
|
||||
33 pthread_cond_wait,boost::condition_variable::wait,Queue::pop,Worker::work,boost::_mfi::mf0::operator,boost::_bi::list1::operator,boost::_bi::bind_t::operator,boost::detail::thread_data::run,thread_proxy,start_thread,clone,??
|
||||
1 StringBuilder::length,Parser::add,Parser::try_parse_query,Parser::parse_block,Parser::work,boost::_mfi::mf0::operator,boost::_bi::list1::operator,boost::_bi::bind_t::operator,boost::detail::thread_data::run,thread_proxy,start_thread,clone,??
|
||||
1 pthread_cond_wait,boost::thread::join,LogReader::wait,Replay::wait,main
|
||||
1 pthread_cond_wait,boost::condition_variable::wait,Queue::push,LogReader::work,boost::_mfi::mf0::operator,boost::_bi::list1::operator,boost::_bi::bind_t::operator,boost::detail::thread_data::run,thread_proxy,start_thread,clone,??
|
||||
1 pthread_cond_wait,boost::condition_variable::wait,Queue::pop,Reporter::work,boost::_mfi::mf0::operator,boost::_bi::list1::operator,boost::_bi::bind_t::operator,boost::detail::thread_data::run,thread_proxy,start_thread,clone,??
|
||||
EOF
|
||||
|
||||
aggregate_stacktrace 0 samples/stacktrace-004.txt > $PT_TMPDIR/got
|
||||
no_diff $PT_TMPDIR/got $PT_TMPDIR/expected
|
||||
|
||||
# ############################################################################
|
||||
TEST_NAME="stacktrace-005.txt"
|
||||
# ############################################################################
|
||||
cat > $PT_TMPDIR/expected <<EOF
|
||||
32 read,vio_read_buff,libmysqlclient::??,my_net_read,cli_safe_read,libmysqlclient::??,mysql_real_query,Connection::run,Worker::work,thread_proxy,start_thread,clone,??
|
||||
1 pthread_cond_wait,LogReader::work,thread_proxy,start_thread,clone,??
|
||||
1 pthread_cond_wait,boost::thread::join,main
|
||||
1 pthread_cond_wait,boost::condition_variable::wait,Worker::work,thread_proxy,start_thread,clone,??
|
||||
1 pthread_cond_wait,boost::condition_variable::wait,Reporter::work,thread_proxy,start_thread,clone,??
|
||||
1 pthread_cond_wait,boost::condition_variable::wait,Queue::push,Parser::work,thread_proxy,start_thread,clone,??
|
||||
EOF
|
||||
|
||||
aggregate_stacktrace 0 samples/stacktrace-005.txt > $PT_TMPDIR/got
|
||||
no_diff $PT_TMPDIR/got $PT_TMPDIR/expected
|
@@ -11,9 +11,30 @@ use warnings FATAL => 'all';
|
||||
use English qw(-no_match_vars);
|
||||
|
||||
use PerconaTest;
|
||||
use Test::More;
|
||||
|
||||
my ($tool) = $PROGRAM_NAME =~ m/([\w-]+)\.t$/;
|
||||
push @ARGV, "$trunk/t/$tool/*.sh" unless @ARGV;
|
||||
system("$trunk/util/test-bash-functions $trunk/bin/$tool @ARGV");
|
||||
my $sample = "$trunk/t/pt-pmp/samples";
|
||||
|
||||
exit;
|
||||
opendir my $dh, $sample or die "Error opening $sample: $OS_ERROR";
|
||||
while ( my $file = readdir $dh ) {
|
||||
next unless -f "$sample/$file" && "$sample/$file" =~ m/\.in$/;
|
||||
(my $outfile = $file) =~ s/\.in/.out/;
|
||||
ok(
|
||||
no_diff(
|
||||
"$trunk/bin/pt-pmp $sample/$file",
|
||||
"t/pt-pmp/samples/$outfile",
|
||||
),
|
||||
"$file"
|
||||
);
|
||||
}
|
||||
closedir $dh;
|
||||
|
||||
ok(
|
||||
no_diff(
|
||||
"$trunk/bin/pt-pmp -l 2 $sample/stacktrace003.in",
|
||||
"t/pt-pmp/samples/stacktrace003-limit2.out",
|
||||
),
|
||||
"Limit 2 (stacktrace003-limit2.out)"
|
||||
);
|
||||
|
||||
done_testing;
|
||||
|
20
t/pt-pmp/samples/stacktrace001.out
Normal file
20
t/pt-pmp/samples/stacktrace001.out
Normal file
@@ -0,0 +1,20 @@
|
||||
187 __lll_mutex_lock_wait(libpthread.so.0),_L_mutex_lock_1133(libpthread.so.0),pthread_mutex_lock(libpthread.so.0),safe_mutex_lock,open_table,open_tables,open_and_lock_tables,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
62 __lll_mutex_lock_wait(libpthread.so.0),_L_mutex_lock_1133(libpthread.so.0),pthread_mutex_lock(libpthread.so.0),safe_mutex_lock,close_thread_tables,dispatch_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
39 read(libpthread.so.0),vio_read(unistd.h:35),my_real_read,my_net_read,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
18 pthread_cond_wait,safe_cond_wait,os_event_wait_low,os_aio_simulated_handle,fil_aio_wait,io_handler_thread,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
15 pthread_cond_wait,safe_cond_wait,end_thread,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
15 __lll_mutex_lock_wait(libpthread.so.0),_L_mutex_lock_1133(libpthread.so.0),pthread_mutex_lock(libpthread.so.0),safe_mutex_lock,open_table,open_tables,mysql_update,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
12 __lll_mutex_lock_wait(libpthread.so.0),_L_mutex_lock_1133(libpthread.so.0),pthread_mutex_lock(libpthread.so.0),safe_mutex_lock,open_table,open_tables,open_and_lock_tables,mysql_insert,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
2 __lll_mutex_lock_wait(libpthread.so.0),_L_mutex_lock_107(libpthread.so.0),pthread_mutex_lock(libpthread.so.0),safe_mutex_lock,Log_event::read_log_event,mysql_binlog_send,dispatch_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 select(libc.so.6),os_thread_sleep,srv_master_thread,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 select(libc.so.6),os_thread_sleep,srv_lock_timeout_and_monitor_thread,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 select(libc.so.6),os_thread_sleep,srv_error_monitor_thread,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 select(libc.so.6),handle_connections_sockets,main
|
||||
1 _sanity,_myfree,st_join_table::cleanup,JOIN::cleanup,JOIN::join_free,do_select,JOIN::exec,mysql_select,handle_select,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 pread64(libpthread.so.0),_os_file_pread(unistd.h:57),_os_file_read,_fil_io,buf_read_page_low,buf_read_page,buf_page_get_gen,btr_cur_search_to_nth_level,btr_estimate_n_rows_in_range,ha_innobase::records_in_range,check_quick_keys,check_quick_select,get_key_scans_params,SQL_SELECT::test_quick_select,mysql_update,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 __lll_mutex_lock_wait(libpthread.so.0),_L_mutex_lock_1133(libpthread.so.0),pthread_mutex_lock(libpthread.so.0),safe_mutex_lock,_sanity,_myrealloc,String::realloc,String::append,Log_event::read_log_event,mysql_binlog_send,dispatch_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 __lll_mutex_lock_wait(libpthread.so.0),_L_mutex_lock_1133(libpthread.so.0),pthread_mutex_lock(libpthread.so.0),safe_mutex_lock,_sanity,_mymalloc,_myrealloc,mi_alloc_rec_buff,mi_open,ha_myisam::open,handler::ha_open,open_tmp_table,create_tmp_table,select_union::create_result_table,mysql_derived_prepare,mysql_handle_derived,open_and_lock_tables,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 __lll_mutex_lock_wait(libpthread.so.0),_L_mutex_lock_1133(libpthread.so.0),pthread_mutex_lock(libpthread.so.0),safe_mutex_lock,_sanity,_mymalloc,init_dynamic_array,QUICK_RANGE_SELECT,get_quick_select,TRP_RANGE::make_quick,SQL_SELECT::test_quick_select,make_join_statistics,JOIN::optimize,mysql_select,mysql_derived_filling,mysql_handle_derived,open_and_lock_tables,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 __lll_mutex_lock_wait(libpthread.so.0),_L_mutex_lock_1133(libpthread.so.0),pthread_mutex_lock(libpthread.so.0),safe_mutex_lock,_mymalloc,alloc_root,MYSQLparse,mysql_make_view,open_unireg_entry,open_table,open_tables,open_and_lock_tables,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 __lll_mutex_lock_wait(libpthread.so.0),_L_mutex_lock_107(libpthread.so.0),pthread_mutex_lock(libpthread.so.0),safe_mutex_lock,mi_open,ha_myisam::open,handler::ha_open,open_tmp_table,create_tmp_table,select_union::create_result_table,mysql_derived_prepare,mysql_handle_derived,open_and_lock_tables,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 do_sigwait(libpthread.so.0),sigwait(libpthread.so.0),signal_hand,start_thread(libpthread.so.0),clone(libc.so.6)
|
12
t/pt-pmp/samples/stacktrace002.out
Normal file
12
t/pt-pmp/samples/stacktrace002.out
Normal file
@@ -0,0 +1,12 @@
|
||||
2387 pthread_cond_wait,open_table,open_tables,open_and_lock_tables_derived,execute_sqlcom_select,mysql_execute_command,mysql_parse,dispatch_command,do_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
5 pthread_cond_wait,open_table,open_tables,open_and_lock_tables_derived,mysql_insert,mysql_execute_command,mysql_parse,dispatch_command,do_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
4 pthread_cond_wait,os_event_wait_low,os_aio_simulated_handle,fil_aio_wait,io_handler_thread,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
4 pthread_cond_wait,open_table,open_tables,open_and_lock_tables_derived,mysql_delete,mysql_execute_command,mysql_parse,dispatch_command,do_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 select(libc.so.6),os_thread_sleep,srv_master_thread,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 select(libc.so.6),os_thread_sleep,srv_lock_timeout_and_monitor_thread,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 select(libc.so.6),os_thread_sleep,srv_error_monitor_thread,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 select(libc.so.6),handle_connections_sockets,main,select(libc.so.6)
|
||||
1 read(libpthread.so.0),my_real_read,my_net_read,do_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 pthread_cond_wait,cache_thread,one_thread_per_connection_end,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 free(libc.so.6),ut_free,page_cur_insert_rec_low,btr_cur_optimistic_insert,row_ins_index_entry_low,row_ins_index_entry,row_ins,row_ins_step,row_insert_for_mysql,ha_innobase::write_row,handler::ha_write_row,ha_partition::copy_partitions,ha_partition::change_partitions,handler::ha_change_partitions,mysql_change_partitions,fast_alter_partition_table,mysql_alter_table,mysql_execute_command,mysql_parse,dispatch_command,do_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 do_sigwait(libpthread.so.0),sigwait(libpthread.so.0),signal_hand,start_thread(libpthread.so.0),clone(libc.so.6)
|
9
t/pt-pmp/samples/stacktrace003-limit2.out
Normal file
9
t/pt-pmp/samples/stacktrace003-limit2.out
Normal file
@@ -0,0 +1,9 @@
|
||||
35 pthread_cond_wait,end_thread
|
||||
20 read(libpthread.so.0),read(unistd.h:35)
|
||||
18 pthread_cond_wait,os_event_wait_low
|
||||
3 select(libc.so.6),os_thread_sleep
|
||||
3 pthread_cond_wait,MYSQL_LOG::wait_for_update
|
||||
1 select(libc.so.6),handle_connections_sockets
|
||||
1 do_sigwait(libpthread.so.0),sigwait(libpthread.so.0)
|
||||
1 btr_search_guess_on_hash(libc.so.6),btr_cur_search_to_nth_level
|
||||
1 btr_cur_search_to_nth_level,btr_estimate_n_rows_in_range
|
11
t/pt-pmp/samples/stacktrace003.out
Normal file
11
t/pt-pmp/samples/stacktrace003.out
Normal file
@@ -0,0 +1,11 @@
|
||||
35 pthread_cond_wait,end_thread,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
20 read(libpthread.so.0),read(unistd.h:35),vio_read(unistd.h:35),my_real_read,my_net_read,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
18 pthread_cond_wait,os_event_wait_low,os_aio_simulated_handle,fil_aio_wait,io_handler_thread,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
3 pthread_cond_wait,MYSQL_LOG::wait_for_update,mysql_binlog_send,dispatch_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 select(libc.so.6),os_thread_sleep,srv_master_thread,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 select(libc.so.6),os_thread_sleep,srv_lock_timeout_and_monitor_thread,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 select(libc.so.6),os_thread_sleep,srv_error_monitor_thread,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 select(libc.so.6),handle_connections_sockets,main
|
||||
1 do_sigwait(libpthread.so.0),sigwait(libpthread.so.0),signal_hand,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 btr_search_guess_on_hash(libc.so.6),btr_cur_search_to_nth_level,btr_pcur_open_with_no_init,row_search_for_mysql,ha_innobase::index_read,join_read_always_key,sub_select,evaluate_join_record,sub_select,evaluate_join_record,sub_select,evaluate_join_record,sub_select,evaluate_join_record,sub_select,evaluate_join_record,sub_select,do_select,JOIN::exec,mysql_select,handle_select,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
||||
1 btr_cur_search_to_nth_level,btr_estimate_n_rows_in_range,ha_innobase::records_in_range,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_keys,check_quick_select,get_key_scans_params,SQL_SELECT::test_quick_select,get_quick_record_count,make_join_statistics,JOIN::optimize,mysql_select,handle_select,mysql_execute_command,mysql_parse,dispatch_command,handle_one_connection,start_thread(libpthread.so.0),clone(libc.so.6)
|
5
t/pt-pmp/samples/stacktrace004.out
Normal file
5
t/pt-pmp/samples/stacktrace004.out
Normal file
@@ -0,0 +1,5 @@
|
||||
33 pthread_cond_wait,boost::condition_variable::wait,Queue::pop,Worker::work,boost::_mfi::mf0::operator,boost::_bi::list1::operator,boost::_bi::bind_t::operator,boost::detail::thread_data::run,thread_proxy(libboost_thread-mt.so.5),start_thread(libpthread.so.0),clone(libc.so.6),??
|
||||
1 StringBuilder::length,Parser::add,Parser::try_parse_query,Parser::parse_block,Parser::work,boost::_mfi::mf0::operator,boost::_bi::list1::operator,boost::_bi::bind_t::operator,boost::detail::thread_data::run,thread_proxy(libboost_thread-mt.so.5),start_thread(libpthread.so.0),clone(libc.so.6),??
|
||||
1 pthread_cond_wait,boost::thread::join(libboost_thread-mt.so.5),LogReader::wait,Replay::wait,main
|
||||
1 pthread_cond_wait,boost::condition_variable::wait,Queue::push,LogReader::work,boost::_mfi::mf0::operator,boost::_bi::list1::operator,boost::_bi::bind_t::operator,boost::detail::thread_data::run,thread_proxy(libboost_thread-mt.so.5),start_thread(libpthread.so.0),clone(libc.so.6),??
|
||||
1 pthread_cond_wait,boost::condition_variable::wait,Queue::pop,Reporter::work,boost::_mfi::mf0::operator,boost::_bi::list1::operator,boost::_bi::bind_t::operator,boost::detail::thread_data::run,thread_proxy(libboost_thread-mt.so.5),start_thread(libpthread.so.0),clone(libc.so.6),??
|
6
t/pt-pmp/samples/stacktrace005.out
Normal file
6
t/pt-pmp/samples/stacktrace005.out
Normal file
@@ -0,0 +1,6 @@
|
||||
32 read(libc.so.6),vio_read_buff(libmysqlclient.so.16),libmysqlclient::??(libmysqlclient.so.16),my_net_read(libmysqlclient.so.16),cli_safe_read(libmysqlclient.so.16),libmysqlclient::??(libmysqlclient.so.16),mysql_real_query(libmysqlclient.so.16),Connection::run,Worker::work,thread_proxy(libboost_thread-mt.so.5),start_thread(libpthread.so.0),clone(libc.so.6),??
|
||||
1 pthread_cond_wait,LogReader::work,thread_proxy(libboost_thread-mt.so.5),start_thread(libpthread.so.0),clone(libc.so.6),??
|
||||
1 pthread_cond_wait,boost::thread::join(libboost_thread-mt.so.5),main
|
||||
1 pthread_cond_wait,boost::condition_variable::wait,Worker::work,thread_proxy(libboost_thread-mt.so.5),start_thread(libpthread.so.0),clone(libc.so.6),??
|
||||
1 pthread_cond_wait,boost::condition_variable::wait,Reporter::work,thread_proxy(libboost_thread-mt.so.5),start_thread(libpthread.so.0),clone(libc.so.6),??
|
||||
1 pthread_cond_wait,boost::condition_variable::wait,Queue::push,Parser::work,thread_proxy(libboost_thread-mt.so.5),start_thread(libpthread.so.0),clone(libc.so.6),??
|
@@ -9,7 +9,7 @@ BEGIN {
|
||||
use strict;
|
||||
use warnings FATAL => 'all';
|
||||
use English qw(-no_match_vars);
|
||||
use Test::More tests => 6;
|
||||
use Test::More;
|
||||
|
||||
use PerconaTest;
|
||||
|
||||
@@ -76,7 +76,31 @@ ok(
|
||||
'Analysis for tcpdump017 with microsecond timestamps (issue 398)'
|
||||
);
|
||||
|
||||
# #############################################################################
|
||||
# Bug 1103045: pt-query-digest fails to parse non-SQL errors
|
||||
# https://bugs.launchpad.net/percona-toolkit/+bug/1103045
|
||||
# #############################################################################
|
||||
ok(
|
||||
no_diff(
|
||||
sub { pt_query_digest::main(@args, $sample.'tcpdump043.txt',
|
||||
'--report-format', 'header,query_report,profile',
|
||||
qw(--watch-server 127.0.0.1:12345)) },
|
||||
"t/pt-query-digest/samples/tcpdump043_report.txt"
|
||||
),
|
||||
'Analysis for tcpdump043 with connection error (bug 1103045)'
|
||||
);
|
||||
|
||||
ok(
|
||||
no_diff(
|
||||
sub { pt_query_digest::main(@args, $sample.'tcpdump044.txt',
|
||||
'--report-format', 'header,query_report,profile',
|
||||
qw(--watch-server 100.0.0.1)) },
|
||||
"t/pt-query-digest/samples/tcpdump044_report.txt"
|
||||
),
|
||||
'Analysis for tcpdump044 with connection error (bug 1103045)'
|
||||
);
|
||||
|
||||
# #############################################################################
|
||||
# Done.
|
||||
# #############################################################################
|
||||
exit;
|
||||
done_testing;
|
||||
|
@@ -11,7 +11,6 @@
|
||||
# Query size 100 32 32 32 32 32 0 32
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Query_time distribution
|
||||
# 1us
|
||||
|
@@ -12,7 +12,6 @@
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Databases mysql
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Users msandbox
|
||||
# Query_time distribution
|
||||
@@ -39,7 +38,6 @@ administrator command: Connect\G
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Databases mysql
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Users msandbox
|
||||
# Query_time distribution
|
||||
@@ -67,7 +65,6 @@ select @@version_comment limit 1\G
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Databases mysql
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Users msandbox
|
||||
# Query_time distribution
|
||||
@@ -95,7 +92,6 @@ select "paris in the the spring" as trick\G
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Databases mysql
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Users msandbox
|
||||
# Query_time distribution
|
||||
|
@@ -11,7 +11,6 @@
|
||||
# Query size 100 32 32 32 32 32 0 32
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Query_time distribution
|
||||
# 1us
|
||||
|
@@ -20,7 +20,6 @@
|
||||
# Query size 100 128 32 32 32 32 0 32
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Query_time distribution
|
||||
# 1us
|
||||
|
@@ -11,7 +11,6 @@
|
||||
# Query size 35 35 35 35 35 35 0 35
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Statement id 2
|
||||
# Query_time distribution
|
||||
@@ -45,7 +44,6 @@ SELECT i FROM d.t WHERE i=?\G
|
||||
# Boolean:
|
||||
# No index use 100% yes, 0% no
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Statement id 2
|
||||
# Query_time distribution
|
||||
@@ -77,7 +75,6 @@ SELECT i FROM d.t WHERE i="3"\G
|
||||
# Query size 27 27 27 27 27 27 0 27
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Query_time distribution
|
||||
# 1us
|
||||
|
@@ -11,7 +11,6 @@
|
||||
# Query size 47 46 46 46 46 46 0 46
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Statement id 2
|
||||
# Query_time distribution
|
||||
@@ -43,7 +42,6 @@ SELECT i,j FROM d.t2 WHERE i=? AND j=?\G
|
||||
# Query size 52 51 51 51 51 51 0 51
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Statement id 2
|
||||
# Query_time distribution
|
||||
|
@@ -11,7 +11,6 @@
|
||||
# Query size 42 50 50 50 50 50 0 50
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Statement id 2
|
||||
# Query_time distribution
|
||||
@@ -43,7 +42,6 @@ SELECT * FROM d.t3 WHERE v=? OR c=? OR f=?\G
|
||||
# Query size 57 69 69 69 69 69 0 69
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Statement id 2
|
||||
# Query_time distribution
|
||||
|
@@ -11,7 +11,6 @@
|
||||
# Query size 45 50 50 50 50 50 0 50
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Statement id 2
|
||||
# Query_time distribution
|
||||
@@ -43,7 +42,6 @@ SELECT * FROM d.t3 WHERE v=? OR c=? OR f=?\G
|
||||
# Query size 54 59 59 59 59 59 0 59
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Statement id 2
|
||||
# Query_time distribution
|
||||
|
@@ -11,7 +11,6 @@
|
||||
# Query size 50 42 42 42 42 42 0 42
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Statement id 2
|
||||
# Query_time distribution
|
||||
@@ -45,7 +44,6 @@ SELECT * FROM d.t WHERE 1 LIMIT 1;\G
|
||||
# Boolean:
|
||||
# No index use 100% yes, 0% no
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Statement id 2
|
||||
# Query_time distribution
|
||||
|
@@ -24,7 +24,6 @@
|
||||
# Boolean:
|
||||
# No index use 100% yes, 0% no
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Statement id 2 (3/42%), 3 (2/28%), 4 (1/14%), 5 (1/14%)
|
||||
# Query_time distribution
|
||||
@@ -56,7 +55,6 @@ select * from d.t where name="adam"\G
|
||||
# Query size 37 217 42 45 43.40 44.60 1.31 42.48
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Statement id 2 (1/20%), 3 (1/20%), 4 (1/20%), 5 (1/20%)... 1 more
|
||||
# Query_time distribution
|
||||
@@ -88,7 +86,6 @@ select * from d.t where name="daniel"\G
|
||||
# Query size 10 60 20 20 20 20 0 20
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Query_time distribution
|
||||
# 1us
|
||||
|
@@ -20,7 +20,6 @@
|
||||
# Query size 100 35 35 35 35 35 0 35
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Errors none
|
||||
# Hosts 127.0.0.1
|
||||
# Statement id 2
|
||||
# Query_time distribution
|
||||
|
41
t/pt-query-digest/samples/tcpdump043_report.txt
Normal file
41
t/pt-query-digest/samples/tcpdump043_report.txt
Normal file
@@ -0,0 +1,41 @@
|
||||
|
||||
# Overall: 1 total, 1 unique, 0 QPS, 0x concurrency ______________________
|
||||
# Time range: all events occurred at 2013-01-24 13:03:28.672987
|
||||
# Attribute total min max avg 95% stddev median
|
||||
# ============ ======= ======= ======= ======= ======= ======= =======
|
||||
# Exec time 4s 4s 4s 4s 4s 0 4s
|
||||
# Rows affecte 0 0 0 0 0 0 0
|
||||
# Query size 30 30 30 30 30 0 30
|
||||
# Warning coun 0 0 0 0 0 0 0
|
||||
|
||||
# Query 1: 0 QPS, 0x concurrency, ID 0x5D51E5F01B88B79E at byte 0 ________
|
||||
# This item is included in the report because it matches --limit.
|
||||
# Scores: Apdex = 0.50 [1.0]*, V/M = 0.00
|
||||
# Query_time sparkline: | ^ |
|
||||
# Time range: all events occurred at 2013-01-24 13:03:28.672987
|
||||
# Attribute pct total min max avg 95% stddev median
|
||||
# ============ === ======= ======= ======= ======= ======= ======= =======
|
||||
# Count 100 1
|
||||
# Exec time 100 4s 4s 4s 4s 4s 0 4s
|
||||
# Rows affecte 0 0 0 0 0 0 0 0
|
||||
# Query size 100 30 30 30 30 30 0 30
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Error msg Got packets out of order
|
||||
# Errors 1156
|
||||
# Hosts 127.0.0.1
|
||||
# Query_time distribution
|
||||
# 1us
|
||||
# 10us
|
||||
# 100us
|
||||
# 1ms
|
||||
# 10ms
|
||||
# 100ms
|
||||
# 1s ################################################################
|
||||
# 10s+
|
||||
administrator command: Connect\G
|
||||
|
||||
# Profile
|
||||
# Rank Query ID Response time Calls R/Call Apdx V/M Item
|
||||
# ==== ================== ============= ===== ====== ==== ===== ==========
|
||||
# 1 0x5D51E5F01B88B79E 3.5363 100.0% 1 3.5363 0.50 0.00 ADMIN CONNECT
|
40
t/pt-query-digest/samples/tcpdump044_report.txt
Normal file
40
t/pt-query-digest/samples/tcpdump044_report.txt
Normal file
@@ -0,0 +1,40 @@
|
||||
|
||||
# Overall: 1 total, 1 unique, 0 QPS, 0x concurrency ______________________
|
||||
# Time range: all events occurred at 2013-01-22 09:55:57.793375
|
||||
# Attribute total min max avg 95% stddev median
|
||||
# ============ ======= ======= ======= ======= ======= ======= =======
|
||||
# Exec time 4s 4s 4s 4s 4s 0 4s
|
||||
# Rows affecte 0 0 0 0 0 0 0
|
||||
# Query size 30 30 30 30 30 0 30
|
||||
# Warning coun 0 0 0 0 0 0 0
|
||||
|
||||
# Query 1: 0 QPS, 0x concurrency, ID 0x5D51E5F01B88B79E at byte 0 ________
|
||||
# This item is included in the report because it matches --limit.
|
||||
# Scores: Apdex = 0.50 [1.0]*, V/M = 0.00
|
||||
# Query_time sparkline: | ^ |
|
||||
# Time range: all events occurred at 2013-01-22 09:55:57.793375
|
||||
# Attribute pct total min max avg 95% stddev median
|
||||
# ============ === ======= ======= ======= ======= ======= ======= =======
|
||||
# Count 100 1
|
||||
# Exec time 100 4s 4s 4s 4s 4s 0 4s
|
||||
# Rows affecte 0 0 0 0 0 0 0 0
|
||||
# Query size 100 30 30 30 30 30 0 30
|
||||
# Warning coun 0 0 0 0 0 0 0 0
|
||||
# String:
|
||||
# Error msg Client closed connection during handshake
|
||||
# Hosts 100.0.0.2
|
||||
# Query_time distribution
|
||||
# 1us
|
||||
# 10us
|
||||
# 100us
|
||||
# 1ms
|
||||
# 10ms
|
||||
# 100ms
|
||||
# 1s ################################################################
|
||||
# 10s+
|
||||
administrator command: Connect\G
|
||||
|
||||
# Profile
|
||||
# Rank Query ID Response time Calls R/Call Apdx V/M Item
|
||||
# ==== ================== ============= ===== ====== ==== ===== ==========
|
||||
# 1 0x5D51E5F01B88B79E 3.8195 100.0% 1 3.8195 0.50 0.00 ADMIN CONNECT
|
Reference in New Issue
Block a user