Hello community,

here is the log from the commit of package percona-toolkit for openSUSE:Factory 
checked in at 2014-08-11 10:07:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/percona-toolkit (Old)
 and      /work/SRC/openSUSE:Factory/.percona-toolkit.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "percona-toolkit"

Changes:
--------
--- /work/SRC/openSUSE:Factory/percona-toolkit/percona-toolkit.changes  
2014-07-12 17:14:49.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.percona-toolkit.new/percona-toolkit.changes     
2014-08-11 10:08:08.000000000 +0200
@@ -1,0 +2,14 @@
+Sun Aug 10 14:19:11 UTC 2014 - [email protected]
+
+- Percona Toolkit 2.2.10
+  * Fixed bug: pt-table-checksum deadlock 
+  * Fixed bug: 5.6 slow query log Thead_id becomes Id
+  * Fixed bug: pt-table-checksum + PXC inconsistent results upon
+    --resume
+  * Fixed bug: pt-online-schema-change doesn't work with HASH
+    indexes
+  * Fixed bug: pt-table-checksum max load 20% rounds down
+  * Fixed bug: some shell tools output error when queried for
+    --version 
+
+-------------------------------------------------------------------

Old:
----
  percona-toolkit-2.2.9.tar.gz

New:
----
  percona-toolkit-2.2.10.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ percona-toolkit.spec ++++++
--- /var/tmp/diff_new_pack.0bWxqc/_old  2014-08-11 10:08:09.000000000 +0200
+++ /var/tmp/diff_new_pack.0bWxqc/_new  2014-08-11 10:08:09.000000000 +0200
@@ -17,13 +17,13 @@
 
 
 Name:           percona-toolkit
-Version:        2.2.9
+Version:        2.2.10
 Release:        0
 Summary:        Advanced MySQL and system command-line tools
 License:        GPL-2.0
 Group:          Productivity/Databases/Tools
 Url:            https://www.percona.com/software/percona-toolkit/
-Source:         
https://www.percona.com/redir/downloads/%{name}/%{version}/%{name}-%{version}.tar.gz
+Source:         
https://www.percona.com/redir/downloads/%{name}/%{version}/tarball/%{name}-%{version}.tar.gz
 Source2:        %{name}.conf
 Patch0:         percona-toolkit-2.2.x-disable-default-version-check.patch
 Requires:       perl(DBD::mysql) >= 1.0

++++++ percona-toolkit-2.2.9.tar.gz -> percona-toolkit-2.2.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/Changelog 
new/percona-toolkit-2.2.10/Changelog
--- old/percona-toolkit-2.2.9/Changelog 2014-07-08 16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/Changelog        2014-08-06 21:57:30.000000000 
+0200
@@ -1,7 +1,15 @@
 Changelog for Percona Toolkit
 
-v2.2.9 released 2014-07-08
+v2.2.10 released 2014-08-06
+
+  * Fixed bug 1287253: pt-table-checksum deadlock 
+  * Fixed bug 1299387: 5.6 slow query log Thead_id becomes Id
+  * Fixed bug 1311654: pt-table-checksum + PXC inconsistent results upon 
--resume
+  * Fixed bug 1340728: pt-online-schema-change doesn't work with HASH indexes
+  * Fixed bug 1253872: pt-table-checksum max load 20% rounds down
+  * Fixed bug 1340364: some shell tools output error when queried for 
--version 
 
+v2.2.9 released 2014-07-08
 
   * Fixed bug 1258135: pt-deadlock-logger introduces a noise to MySQL
   * Fixed bug 1329422: pt-online-schema-change foreign-keys-method=none breaks 
constraints 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/Makefile.PL 
new/percona-toolkit-2.2.10/Makefile.PL
--- old/percona-toolkit-2.2.9/Makefile.PL       2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/Makefile.PL      2014-08-06 21:57:30.000000000 
+0200
@@ -2,7 +2,7 @@
 
 WriteMakefile(
     NAME      => 'percona-toolkit',
-    VERSION   => '2.2.9',
+    VERSION   => '2.2.10',
     EXE_FILES => [ <bin/*> ],
     MAN1PODS  => {
       'docs/percona-toolkit.pod' => 'blib/man1/percona-toolkit.1p',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-align 
new/percona-toolkit-2.2.10/bin/pt-align
--- old/percona-toolkit-2.2.9/bin/pt-align      2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-align     2014-08-06 21:57:30.000000000 
+0200
@@ -1323,6 +1323,6 @@
 
 =head1 VERSION
 
-pt-align 2.2.9
+pt-align 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-archiver 
new/percona-toolkit-2.2.10/bin/pt-archiver
--- old/percona-toolkit-2.2.9/bin/pt-archiver   2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-archiver  2014-08-06 21:57:30.000000000 
+0200
@@ -43,7 +43,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -7892,6 +7892,6 @@
 
 =head1 VERSION
 
-pt-archiver 2.2.9
+pt-archiver 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-config-diff 
new/percona-toolkit-2.2.10/bin/pt-config-diff
--- old/percona-toolkit-2.2.9/bin/pt-config-diff        2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-config-diff       2014-08-06 
21:57:30.000000000 +0200
@@ -43,7 +43,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -5733,6 +5733,6 @@
 
 =head1 VERSION
 
-pt-config-diff 2.2.9
+pt-config-diff 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-deadlock-logger 
new/percona-toolkit-2.2.10/bin/pt-deadlock-logger
--- old/percona-toolkit-2.2.9/bin/pt-deadlock-logger    2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-deadlock-logger   2014-08-06 
21:57:30.000000000 +0200
@@ -42,7 +42,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -5523,6 +5523,6 @@
 
 =head1 VERSION
 
-pt-deadlock-logger 2.2.9
+pt-deadlock-logger 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-diskstats 
new/percona-toolkit-2.2.10/bin/pt-diskstats
--- old/percona-toolkit-2.2.9/bin/pt-diskstats  2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-diskstats 2014-08-06 21:57:30.000000000 
+0200
@@ -38,7 +38,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -5579,6 +5579,6 @@
 
 =head1 VERSION
 
-pt-diskstats 2.2.9
+pt-diskstats 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-duplicate-key-checker 
new/percona-toolkit-2.2.10/bin/pt-duplicate-key-checker
--- old/percona-toolkit-2.2.9/bin/pt-duplicate-key-checker      2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-duplicate-key-checker     2014-08-06 
21:57:30.000000000 +0200
@@ -39,7 +39,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -5600,6 +5600,6 @@
 
 =head1 VERSION
 
-pt-duplicate-key-checker 2.2.9
+pt-duplicate-key-checker 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-fifo-split 
new/percona-toolkit-2.2.10/bin/pt-fifo-split
--- old/percona-toolkit-2.2.9/bin/pt-fifo-split 2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-fifo-split        2014-08-06 
21:57:30.000000000 +0200
@@ -1612,6 +1612,6 @@
 
 =head1 VERSION
 
-pt-fifo-split 2.2.9
+pt-fifo-split 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-find 
new/percona-toolkit-2.2.10/bin/pt-find
--- old/percona-toolkit-2.2.9/bin/pt-find       2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-find      2014-08-06 21:57:30.000000000 
+0200
@@ -35,7 +35,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -4984,6 +4984,6 @@
 
 =head1 VERSION
 
-pt-find 2.2.9
+pt-find 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-fingerprint 
new/percona-toolkit-2.2.10/bin/pt-fingerprint
--- old/percona-toolkit-2.2.9/bin/pt-fingerprint        2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-fingerprint       2014-08-06 
21:57:30.000000000 +0200
@@ -2203,6 +2203,6 @@
 
 =head1 VERSION
 
-pt-fingerprint 2.2.9
+pt-fingerprint 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-fk-error-logger 
new/percona-toolkit-2.2.10/bin/pt-fk-error-logger
--- old/percona-toolkit-2.2.9/bin/pt-fk-error-logger    2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-fk-error-logger   2014-08-06 
21:57:30.000000000 +0200
@@ -37,7 +37,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -4509,6 +4509,6 @@
 
 =head1 VERSION
 
-pt-fk-error-logger 2.2.9
+pt-fk-error-logger 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-heartbeat 
new/percona-toolkit-2.2.10/bin/pt-heartbeat
--- old/percona-toolkit-2.2.9/bin/pt-heartbeat  2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-heartbeat 2014-08-06 21:57:30.000000000 
+0200
@@ -38,7 +38,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -6192,6 +6192,6 @@
 
 =head1 VERSION
 
-pt-heartbeat 2.2.9
+pt-heartbeat 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-index-usage 
new/percona-toolkit-2.2.10/bin/pt-index-usage
--- old/percona-toolkit-2.2.9/bin/pt-index-usage        2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-index-usage       2014-08-06 
21:57:30.000000000 +0200
@@ -45,7 +45,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -2772,12 +2772,13 @@
    my ( $class ) = @_;
    my $self = {
       pending => [],
+      last_event_offset => undef,
    };
    return bless $self, $class;
 }
 
 my $slow_log_ts_line = qr/^# Time: ([0-9: ]{15})/;
-my $slow_log_uh_line = qr/# User\@Host: ([^\[]+|\[[^[]+\]).*?@ (\S*) \[(.*)\]/;
+my $slow_log_uh_line = qr/# User\@Host: ([^\[]+|\[[^[]+\]).*?@ (\S*) 
\[(.*)\]\s*(?:Id:\s*(\d+))?/;
 my $slow_log_hd_line = qr{
       ^(?:
       T[cC][pP]\s[pP]ort:\s+\d+ # case differs on windows/unix
@@ -2808,6 +2809,7 @@
       or defined($stmt = $next_event->())
    ) {
       my @properties = ('cmd', 'Query', 'pos_in_log', $pos_in_log);
+      $self->{last_event_offset} = $pos_in_log;
       $pos_in_log = $tell->();
 
       if ( $stmt =~ s/$slow_log_hd_line//go ){ # Throw away header lines in log
@@ -2840,19 +2842,25 @@
                push @properties, 'ts', $time;
                ++$got_ts;
                if ( !$got_uh
-                  && ( my ( $user, $host, $ip ) = $line =~ 
m/$slow_log_uh_line/o )
+                  && ( my ( $user, $host, $ip, $thread_id ) = $line =~ 
m/$slow_log_uh_line/o )
                ) {
                   PTDEBUG && _d("Got user, host, ip", $user, $host, $ip);
                   push @properties, 'user', $user, 'host', $host, 'ip', $ip;
-                  ++$got_uh;
+                  if ( $thread_id ) {  
+                     push @properties, 'Thread_id', $thread_id;
+                 }
+                 ++$got_uh;
                }
             }
 
             elsif ( !$got_uh
-                  && ( my ( $user, $host, $ip ) = $line =~ 
m/$slow_log_uh_line/o )
+                  && ( my ( $user, $host, $ip, $thread_id ) = $line =~ 
m/$slow_log_uh_line/o )
             ) {
-               PTDEBUG && _d("Got user, host, ip", $user, $host, $ip);
-               push @properties, 'user', $user, 'host', $host, 'ip', $ip;
+                  PTDEBUG && _d("Got user, host, ip", $user, $host, $ip);
+                  push @properties, 'user', $user, 'host', $host, 'ip', $ip;
+                  if ( $thread_id ) {       
+                     push @properties, 'Thread_id', $thread_id;
+                 }
                ++$got_uh;
             }
 
@@ -2933,9 +2941,15 @@
 
       PTDEBUG && _d('Properties of event:', Dumper(\@properties));
       my $event = { @properties };
-      if ( $args{stats} ) {
-         $args{stats}->{events_read}++;
-         $args{stats}->{events_parsed}++;
+      if ( !$event->{arg} ) {
+         PTDEBUG && _d('Partial event, no arg');
+      }
+      else {
+         $self->{last_event_offset} = undef;
+         if ( $args{stats} ) {
+            $args{stats}->{events_read}++;
+            $args{stats}->{events_parsed}++;
+         }
       }
       return $event;
    } # EVENT
@@ -7532,6 +7546,6 @@
 
 =head1 VERSION
 
-pt-index-usage 2.2.9
+pt-index-usage 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-ioprofile 
new/percona-toolkit-2.2.10/bin/pt-ioprofile
--- old/percona-toolkit-2.2.9/bin/pt-ioprofile  2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-ioprofile 2014-08-06 21:57:30.000000000 
+0200
@@ -1119,7 +1119,7 @@
 
 =head1 VERSION
 
-pt-ioprofile 2.2.9
+pt-ioprofile 2.2.10
 
 =cut
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-kill 
new/percona-toolkit-2.2.10/bin/pt-kill
--- old/percona-toolkit-2.2.9/bin/pt-kill       2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-kill      2014-08-06 21:57:30.000000000 
+0200
@@ -47,7 +47,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -8183,6 +8183,6 @@
 
 =head1 VERSION
 
-pt-kill 2.2.9
+pt-kill 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-mext 
new/percona-toolkit-2.2.10/bin/pt-mext
--- old/percona-toolkit-2.2.9/bin/pt-mext       2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-mext      2014-08-06 21:57:30.000000000 
+0200
@@ -127,9 +127,10 @@
 
 usage_or_errors() {
    local file="$1"
+   local version=""
 
    if [ "$OPT_VERSION" ]; then
-      local version=$(grep '^pt-[^ ]\+ [0-9]' "$file")
+      version=$(grep '^pt-[^ ]\+ [0-9]' "$file")
       echo "$version"
       return 1
    fi
@@ -791,7 +792,7 @@
 
 =head1 VERSION
 
-pt-mext 2.2.9
+pt-mext 2.2.10
 
 =cut
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-mysql-summary 
new/percona-toolkit-2.2.10/bin/pt-mysql-summary
--- old/percona-toolkit-2.2.9/bin/pt-mysql-summary      2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-mysql-summary     2014-08-06 
21:57:30.000000000 +0200
@@ -88,9 +88,10 @@
 
 usage_or_errors() {
    local file="$1"
+   local version=""
 
    if [ "$OPT_VERSION" ]; then
-      local version=$(grep '^pt-[^ ]\+ [0-9]' "$file")
+      version=$(grep '^pt-[^ ]\+ [0-9]' "$file")
       echo "$version"
       return 1
    fi
@@ -3089,7 +3090,7 @@
 
 =head1 VERSION
 
-pt-mysql-summary 2.2.9
+pt-mysql-summary 2.2.10
 
 =cut
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-online-schema-change 
new/percona-toolkit-2.2.10/bin/pt-online-schema-change
--- old/percona-toolkit-2.2.9/bin/pt-online-schema-change       2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-online-schema-change      2014-08-06 
21:57:30.000000000 +0200
@@ -54,7 +54,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -4785,6 +4785,7 @@
 
 use strict;
 use warnings FATAL => 'all';
+use POSIX qw( ceil );
 use English qw(-no_match_vars);
 use constant PTDEBUG => $ENV{PTDEBUG} || 0;
 
@@ -4950,8 +4951,8 @@
       }
       else {
          PTDEBUG && _d('Initial', $var, 'value:', $init_val);
-         $val = int(($init_val * $threshold_factor) + $init_val);
-         $vars->{$var} = $val;
+         $val = ($init_val * $threshold_factor) + $init_val;
+         $vars->{$var} = int(ceil($val));
       }
       PTDEBUG && _d('Wait if', $var, '>=', $val);
    }
@@ -8908,28 +8909,31 @@
          # boundary sql.  This check applies to the next nibble.  So if
          # the current nibble number is 5, then nibble 5 is already done
          # and we're checking nibble number 6.
-         my $expl = explain_statement(
-            tbl  => $tbl,
-            sth  => $sth->{explain_upper_boundary},
-            vals => [ @{$boundary->{lower}}, $nibble_iter->limit() ],
-         );
-         if (lc($expl->{key} || '') ne lc($nibble_iter->nibble_index() || '')) 
{
-            my $msg
-               = "Aborting copying table $tbl->{name} at chunk "
-               . ($nibble_iter->nibble_number() + 1)
-               . " because it is not safe to ascend.  Chunking should "
-               . "use the "
-               . ($nibble_iter->nibble_index() || '?')
-               . " index, but MySQL EXPLAIN reports that "
-               . ($expl->{key} ? "the $expl->{key}" : "no")
-               . " index will be used for "
-               . $sth->{upper_boundary}->{Statement}
-               . " with values "
-               . join(", ", map { defined $_ ? $_ : "NULL" }
-                      (@{$boundary->{lower}}, $nibble_iter->limit()))
-               . "\n";
-            die ts($msg);
-         } 
+         # Skip if --nocheck-plan   See: 
https://bugs.launchpad.net/percona-toolkit/+bug/1340728
+         if ( $o->get('check-plan') ) {
+            my $expl = explain_statement(
+               tbl  => $tbl,
+               sth  => $sth->{explain_upper_boundary},
+               vals => [ @{$boundary->{lower}}, $nibble_iter->limit() ],
+            );
+            if ( lc($expl->{key} || '') ne lc($nibble_iter->nibble_index() || 
'') ) {
+               my $msg
+                  = "Aborting copying table $tbl->{name} at chunk "
+                  . ($nibble_iter->nibble_number() + 1)
+                  . " because it is not safe to ascend.  Chunking should "
+                  . "use the "
+                  . ($nibble_iter->nibble_index() || '?')
+                  . " index, but MySQL EXPLAIN reports that "
+                  . ($expl->{key} ? "the $expl->{key}" : "no")
+                  . " index will be used for "
+                  . $sth->{upper_boundary}->{Statement}
+                  . " with values "
+                  . join(", ", map { defined $_ ? $_ : "NULL" }
+                         (@{$boundary->{lower}}, $nibble_iter->limit()))
+                  . "\n";
+               die ts($msg);
+            } 
+         }
 
          # Once nibbling begins for a table, control does not return to this
          # tool until nibbling is done because, as noted above, all work is
@@ -9531,15 +9535,17 @@
       vals => [ @{$boundary->{lower}}, @{$boundary->{upper}} ],
    );
 
-   # Ensure that MySQL is using the chunk index if the table is being chunked.
-   if ( !$nibble_iter->one_nibble()
-        && lc($expl->{key} || '') ne lc($nibble_iter->nibble_index() || '') )
-   {
-      die ts("Error copying rows at chunk " . $nibble_iter->nibble_number()
-         . " of $tbl->{db}.$tbl->{tbl} because MySQL chose "
-         . ($expl->{key} ? "the $expl->{key}" : "no") . " index "
-         . " instead of the " . $nibble_iter->nibble_index() . "index.\n");
-   }
+   # Ensure that MySQL is using the chunk index if the table is being chunked. 
+   # Skip if --nocheck-plan   See: 
https://bugs.launchpad.net/percona-toolkit/+bug/1340728
+      if ( !$nibble_iter->one_nibble()
+           && lc($expl->{key} || '') ne lc($nibble_iter->nibble_index() || '') 
+           && $o->get('check-plan') )
+      {
+         die ts("Error copying rows at chunk " . $nibble_iter->nibble_number()
+            . " of $tbl->{db}.$tbl->{tbl} because MySQL chose "
+            . ($expl->{key} ? "the $expl->{key}" : "no") . " index "
+            . " instead of the " . $nibble_iter->nibble_index() . "index.\n");
+      }
 
    # Ensure that the chunk isn't too large if there's a --chunk-size-limit.
    # If single-chunking the table, this has already been checked, so it
@@ -9564,11 +9570,13 @@
       }
    }
 
-   # Ensure that MySQL is still using the entire index.
+   # Ensure that MySQL is still using the entire index. 
    # https://bugs.launchpad.net/percona-toolkit/+bug/1010232
+   # Skip if --nocheck-plan   See: 
https://bugs.launchpad.net/percona-toolkit/+bug/1340728
    if ( !$nibble_iter->one_nibble()
         && $tbl->{key_len}
-        && ($expl->{key_len} || 0) < $tbl->{key_len} )
+        && ($expl->{key_len} || 0) < $tbl->{key_len} 
+        && $o->get('check-plan') )
    {
       die ts("Error copying rows at chunk " . $nibble_iter->nibble_number()
          . " of $tbl->{db}.$tbl->{tbl} because MySQL used "
@@ -11555,6 +11563,6 @@
 
 =head1 VERSION
 
-pt-online-schema-change 2.2.9
+pt-online-schema-change 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-pmp 
new/percona-toolkit-2.2.10/bin/pt-pmp
--- old/percona-toolkit-2.2.9/bin/pt-pmp        2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-pmp       2014-08-06 21:57:30.000000000 
+0200
@@ -889,7 +889,7 @@
 
 =head1 VERSION
 
-pt-pmp 2.2.9
+pt-pmp 2.2.10
 
 =cut
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-query-digest 
new/percona-toolkit-2.2.10/bin/pt-query-digest
--- old/percona-toolkit-2.2.9/bin/pt-query-digest       2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-query-digest      2014-08-06 
21:57:30.000000000 +0200
@@ -64,7 +64,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -4972,7 +4972,7 @@
 }
 
 my $slow_log_ts_line = qr/^# Time: ([0-9: ]{15})/;
-my $slow_log_uh_line = qr/# User\@Host: ([^\[]+|\[[^[]+\]).*?@ (\S*) \[(.*)\]/;
+my $slow_log_uh_line = qr/# User\@Host: ([^\[]+|\[[^[]+\]).*?@ (\S*) 
\[(.*)\]\s*(?:Id:\s*(\d+))?/;
 my $slow_log_hd_line = qr{
       ^(?:
       T[cC][pP]\s[pP]ort:\s+\d+ # case differs on windows/unix
@@ -5036,19 +5036,25 @@
                push @properties, 'ts', $time;
                ++$got_ts;
                if ( !$got_uh
-                  && ( my ( $user, $host, $ip ) = $line =~ 
m/$slow_log_uh_line/o )
+                  && ( my ( $user, $host, $ip, $thread_id ) = $line =~ 
m/$slow_log_uh_line/o )
                ) {
                   PTDEBUG && _d("Got user, host, ip", $user, $host, $ip);
                   push @properties, 'user', $user, 'host', $host, 'ip', $ip;
-                  ++$got_uh;
+                  if ( $thread_id ) {  
+                     push @properties, 'Thread_id', $thread_id;
+                 }
+                 ++$got_uh;
                }
             }
 
             elsif ( !$got_uh
-                  && ( my ( $user, $host, $ip ) = $line =~ 
m/$slow_log_uh_line/o )
+                  && ( my ( $user, $host, $ip, $thread_id ) = $line =~ 
m/$slow_log_uh_line/o )
             ) {
-               PTDEBUG && _d("Got user, host, ip", $user, $host, $ip);
-               push @properties, 'user', $user, 'host', $host, 'ip', $ip;
+                  PTDEBUG && _d("Got user, host, ip", $user, $host, $ip);
+                  push @properties, 'user', $user, 'host', $host, 'ip', $ip;
+                  if ( $thread_id ) {       
+                     push @properties, 'Thread_id', $thread_id;
+                 }
                ++$got_uh;
             }
 
@@ -16587,6 +16593,6 @@
 
 =head1 VERSION
 
-pt-query-digest 2.2.9
+pt-query-digest 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-show-grants 
new/percona-toolkit-2.2.10/bin/pt-show-grants
--- old/percona-toolkit-2.2.9/bin/pt-show-grants        2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-show-grants       2014-08-06 
21:57:30.000000000 +0200
@@ -2406,6 +2406,6 @@
 
 =head1 VERSION
 
-pt-show-grants 2.2.9
+pt-show-grants 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-sift 
new/percona-toolkit-2.2.10/bin/pt-sift
--- old/percona-toolkit-2.2.9/bin/pt-sift       2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-sift      2014-08-06 21:57:30.000000000 
+0200
@@ -1237,7 +1237,7 @@
 
 =head1 VERSION
 
-pt-sift 2.2.9
+pt-sift 2.2.10
 
 =cut
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-slave-delay 
new/percona-toolkit-2.2.10/bin/pt-slave-delay
--- old/percona-toolkit-2.2.9/bin/pt-slave-delay        2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-slave-delay       2014-08-06 
21:57:30.000000000 +0200
@@ -40,7 +40,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -4869,6 +4869,6 @@
 
 =head1 VERSION
 
-pt-slave-delay 2.2.9
+pt-slave-delay 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-slave-find 
new/percona-toolkit-2.2.10/bin/pt-slave-find
--- old/percona-toolkit-2.2.9/bin/pt-slave-find 2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-slave-find        2014-08-06 
21:57:30.000000000 +0200
@@ -4334,6 +4334,6 @@
 
 =head1 VERSION
 
-pt-slave-find 2.2.9
+pt-slave-find 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-slave-restart 
new/percona-toolkit-2.2.10/bin/pt-slave-restart
--- old/percona-toolkit-2.2.9/bin/pt-slave-restart      2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-slave-restart     2014-08-06 
21:57:30.000000000 +0200
@@ -41,7 +41,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -5937,6 +5937,6 @@
 
 =head1 VERSION
 
-pt-slave-restart 2.2.9
+pt-slave-restart 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-stalk 
new/percona-toolkit-2.2.10/bin/pt-stalk
--- old/percona-toolkit-2.2.9/bin/pt-stalk      2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-stalk     2014-08-06 21:57:30.000000000 
+0200
@@ -2211,7 +2211,7 @@
 
 =head1 VERSION
 
-pt-stalk 2.2.9
+pt-stalk 2.2.10
 
 =cut
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-summary 
new/percona-toolkit-2.2.10/bin/pt-summary
--- old/percona-toolkit-2.2.9/bin/pt-summary    2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-summary   2014-08-06 21:57:30.000000000 
+0200
@@ -95,9 +95,10 @@
 
 usage_or_errors() {
    local file="$1"
+   local version=""
 
    if [ "$OPT_VERSION" ]; then
-      local version=$(grep '^pt-[^ ]\+ [0-9]' "$file")
+      version=$(grep '^pt-[^ ]\+ [0-9]' "$file")
       echo "$version"
       return 1
    fi
@@ -2690,7 +2691,7 @@
 
 =head1 VERSION
 
-pt-summary 2.2.9
+pt-summary 2.2.10
 
 =cut
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-table-checksum 
new/percona-toolkit-2.2.10/bin/pt-table-checksum
--- old/percona-toolkit-2.2.9/bin/pt-table-checksum     2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-table-checksum    2014-08-06 
21:57:30.000000000 +0200
@@ -57,7 +57,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -5977,19 +5977,28 @@
    }
    my ($dbh, $repl_table) = @args{@required_args};
 
-   my $sql
-      = "SELECT CONCAT(db, '.', tbl) AS `table`, "
-      . "chunk, chunk_index, lower_boundary, upper_boundary, "
-      . "COALESCE(this_cnt-master_cnt, 0) AS cnt_diff, "
-      . "COALESCE("
-      .   "this_crc <> master_crc OR ISNULL(master_crc) <> ISNULL(this_crc), 0"
-      . ") AS crc_diff, this_cnt, master_cnt, this_crc, master_crc "
-      . "FROM $repl_table "
-      . "WHERE (master_cnt <> this_cnt OR master_crc <> this_crc "
-      .        "OR ISNULL(master_crc) <> ISNULL(this_crc))"
-      . ($args{where} ? " AND ($args{where})" : "");
-   PTDEBUG && _d($sql);
-   my $diffs = $dbh->selectall_arrayref($sql, { Slice => {} });
+    
+   my $tries = $self->{'OptionParser'}->get('replicate-check-retries') || 1; 
+   my $diffs;
+   while ($tries--) {
+      my $sql
+         = "SELECT CONCAT(db, '.', tbl) AS `table`, "
+         . "chunk, chunk_index, lower_boundary, upper_boundary, "
+         . "COALESCE(this_cnt-master_cnt, 0) AS cnt_diff, "
+         . "COALESCE("
+         .   "this_crc <> master_crc OR ISNULL(master_crc) <> 
ISNULL(this_crc), 0"
+         . ") AS crc_diff, this_cnt, master_cnt, this_crc, master_crc "
+         . "FROM $repl_table "
+         . "WHERE (master_cnt <> this_cnt OR master_crc <> this_crc "
+         .        "OR ISNULL(master_crc) <> ISNULL(this_crc)) "
+         . ($args{where} ? " AND ($args{where})" : "");
+      PTDEBUG && _d($sql);
+      $diffs = $dbh->selectall_arrayref($sql, { Slice => {} });
+      if (!@$diffs || !$tries) { # if no differences are found OR we are out 
of tries left...
+         last;                   # get out now
+      }
+      sleep 1;            
+   }
    return $diffs;
 }
 
@@ -8347,6 +8356,7 @@
 
 use strict;
 use warnings FATAL => 'all';
+use POSIX qw( ceil );
 use English qw(-no_match_vars);
 use constant PTDEBUG => $ENV{PTDEBUG} || 0;
 
@@ -8512,8 +8522,8 @@
       }
       else {
          PTDEBUG && _d('Initial', $var, 'value:', $init_val);
-         $val = int(($init_val * $threshold_factor) + $init_val);
-         $vars->{$var} = $val;
+         $val = ($init_val * $threshold_factor) + $init_val;
+         $vars->{$var} = int(ceil($val));
       }
       PTDEBUG && _d('Wait if', $var, '>=', $val);
    }
@@ -8964,6 +8974,7 @@
    $print_header = 1;
    $exit_status  = 0;
 
+
    # ########################################################################
    # Get configuration information.
    # ########################################################################
@@ -10072,6 +10083,7 @@
          # Should be done automatically, but I like to be explicit.
          $fetch_sth->finish();
          $update_sth->finish();
+         $delete_sth->finish();
 
          # Update rate, chunk size, and progress if the nibble actually
          # selected some rows.
@@ -10382,6 +10394,7 @@
    return $msg ? "$ts $msg" : $ts;
 }
 
+
 sub nibble_is_safe {
    my (%args) = @_;
    my @required_args = qw(Cxn tbl NibbleIterator OptionParser);
@@ -10561,6 +10574,7 @@
 
          if (   $error =~ m/Lock wait timeout exceeded/
              || $error =~ m/Query execution was interrupted/
+             || $error =~ m/Deadlock found/
          ) {
             # These errors/warnings can be retried, so don't print
             # a warning yet; do that in final_fail.
@@ -10584,8 +10598,9 @@
          my (%args) = @_;
          my $error = $args{error};
 
-         if (   $error =~ /Lock wait timeout exceeded/
-             || $error =~ /Query execution was interrupted/
+         if (   $error =~ m/Lock wait timeout exceeded/
+             || $error =~ m/Query execution was interrupted/
+             || $error =~ m/Deadlock found/
          ) {
             # These errors/warnings are not fatal but only cause this
             # nibble to be skipped.
@@ -12287,6 +12302,15 @@
 if you run pt-table-checksum quietly in a cron job, for example, and later want
 a report on the results of the cron job, perhaps to implement a Nagios check.
 
+=item --replicate-check-retries
+
+type: int; default: 1
+
+Retry checksum comparison this many times when a difference is encountered.
+Only when a difference persists after this number of checks is it considered 
valid.
+Using this option with a value of 2 or more alleviates spurious differences 
that 
+arise when using the --resume option.
+
 =item --replicate-database
 
 type: string
@@ -12674,6 +12698,6 @@
 
 =head1 VERSION
 
-pt-table-checksum 2.2.9
+pt-table-checksum 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-table-sync 
new/percona-toolkit-2.2.10/bin/pt-table-sync
--- old/percona-toolkit-2.2.9/bin/pt-table-sync 2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-table-sync        2014-08-06 
21:57:30.000000000 +0200
@@ -55,7 +55,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -12768,6 +12768,6 @@
 
 =head1 VERSION
 
-pt-table-sync 2.2.9
+pt-table-sync 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-table-usage 
new/percona-toolkit-2.2.10/bin/pt-table-usage
--- old/percona-toolkit-2.2.9/bin/pt-table-usage        2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-table-usage       2014-08-06 
21:57:30.000000000 +0200
@@ -1556,12 +1556,13 @@
    my ( $class ) = @_;
    my $self = {
       pending => [],
+      last_event_offset => undef,
    };
    return bless $self, $class;
 }
 
 my $slow_log_ts_line = qr/^# Time: ([0-9: ]{15})/;
-my $slow_log_uh_line = qr/# User\@Host: ([^\[]+|\[[^[]+\]).*?@ (\S*) \[(.*)\]/;
+my $slow_log_uh_line = qr/# User\@Host: ([^\[]+|\[[^[]+\]).*?@ (\S*) 
\[(.*)\]\s*(?:Id:\s*(\d+))?/;
 my $slow_log_hd_line = qr{
       ^(?:
       T[cC][pP]\s[pP]ort:\s+\d+ # case differs on windows/unix
@@ -1592,6 +1593,7 @@
       or defined($stmt = $next_event->())
    ) {
       my @properties = ('cmd', 'Query', 'pos_in_log', $pos_in_log);
+      $self->{last_event_offset} = $pos_in_log;
       $pos_in_log = $tell->();
 
       if ( $stmt =~ s/$slow_log_hd_line//go ){ # Throw away header lines in log
@@ -1624,19 +1626,25 @@
                push @properties, 'ts', $time;
                ++$got_ts;
                if ( !$got_uh
-                  && ( my ( $user, $host, $ip ) = $line =~ 
m/$slow_log_uh_line/o )
+                  && ( my ( $user, $host, $ip, $thread_id ) = $line =~ 
m/$slow_log_uh_line/o )
                ) {
                   PTDEBUG && _d("Got user, host, ip", $user, $host, $ip);
                   push @properties, 'user', $user, 'host', $host, 'ip', $ip;
-                  ++$got_uh;
+                  if ( $thread_id ) {  
+                     push @properties, 'Thread_id', $thread_id;
+                 }
+                 ++$got_uh;
                }
             }
 
             elsif ( !$got_uh
-                  && ( my ( $user, $host, $ip ) = $line =~ 
m/$slow_log_uh_line/o )
+                  && ( my ( $user, $host, $ip, $thread_id ) = $line =~ 
m/$slow_log_uh_line/o )
             ) {
-               PTDEBUG && _d("Got user, host, ip", $user, $host, $ip);
-               push @properties, 'user', $user, 'host', $host, 'ip', $ip;
+                  PTDEBUG && _d("Got user, host, ip", $user, $host, $ip);
+                  push @properties, 'user', $user, 'host', $host, 'ip', $ip;
+                  if ( $thread_id ) {       
+                     push @properties, 'Thread_id', $thread_id;
+                 }
                ++$got_uh;
             }
 
@@ -1676,14 +1684,25 @@
 
             if ( !$found_arg && $pos == $len ) {
                PTDEBUG && _d("Did not find arg, looking for special cases");
-               local $INPUT_RECORD_SEPARATOR = ";\n";
+               local $INPUT_RECORD_SEPARATOR = ";\n";  # get next line
                if ( defined(my $l = $next_event->()) ) {
-                  chomp $l;
-                  $l =~ s/^\s+//;
-                  PTDEBUG && _d("Found admin statement", $l);
-                  push @properties, 'cmd', 'Admin', 'arg', $l;
-                  push @properties, 'bytes', length($properties[-1]);
-                  $found_arg++;
+                  if ( $l =~ /^\s*[A-Z][a-z_]+: / ) {
+                     PTDEBUG && _d("Found NULL query before", $l);
+                     local $INPUT_RECORD_SEPARATOR = ";\n#";
+                     my $rest_of_event = $next_event->();
+                     push @{$self->{pending}}, $l . $rest_of_event;
+                     push @properties, 'cmd', 'Query', 'arg', '/* No query */';
+                     push @properties, 'bytes', 0;
+                     $found_arg++;
+                  }
+                  else {
+                     chomp $l;
+                     $l =~ s/^\s+//;
+                     PTDEBUG && _d("Found admin statement", $l);
+                     push @properties, 'cmd', 'Admin', 'arg', $l;
+                     push @properties, 'bytes', length($properties[-1]);
+                     $found_arg++;
+                  }
                }
                else {
                   PTDEBUG && _d("I can't figure out what to do with this 
line");
@@ -1706,9 +1725,15 @@
 
       PTDEBUG && _d('Properties of event:', Dumper(\@properties));
       my $event = { @properties };
-      if ( $args{stats} ) {
-         $args{stats}->{events_read}++;
-         $args{stats}->{events_parsed}++;
+      if ( !$event->{arg} ) {
+         PTDEBUG && _d('Partial event, no arg');
+      }
+      else {
+         $self->{last_event_offset} = undef;
+         if ( $args{stats} ) {
+            $args{stats}->{events_read}++;
+            $args{stats}->{events_parsed}++;
+         }
       }
       return $event;
    } # EVENT
@@ -7536,6 +7561,6 @@
 
 =head1 VERSION
 
-pt-table-usage 2.2.9
+pt-table-usage 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-upgrade 
new/percona-toolkit-2.2.10/bin/pt-upgrade
--- old/percona-toolkit-2.2.9/bin/pt-upgrade    2014-07-08 16:36:40.000000000 
+0200
+++ new/percona-toolkit-2.2.10/bin/pt-upgrade   2014-08-06 21:57:30.000000000 
+0200
@@ -61,7 +61,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -6537,12 +6537,13 @@
    my ( $class ) = @_;
    my $self = {
       pending => [],
+      last_event_offset => undef,
    };
    return bless $self, $class;
 }
 
 my $slow_log_ts_line = qr/^# Time: ([0-9: ]{15})/;
-my $slow_log_uh_line = qr/# User\@Host: ([^\[]+|\[[^[]+\]).*?@ (\S*) \[(.*)\]/;
+my $slow_log_uh_line = qr/# User\@Host: ([^\[]+|\[[^[]+\]).*?@ (\S*) 
\[(.*)\]\s*(?:Id:\s*(\d+))?/;
 my $slow_log_hd_line = qr{
       ^(?:
       T[cC][pP]\s[pP]ort:\s+\d+ # case differs on windows/unix
@@ -6573,6 +6574,7 @@
       or defined($stmt = $next_event->())
    ) {
       my @properties = ('cmd', 'Query', 'pos_in_log', $pos_in_log);
+      $self->{last_event_offset} = $pos_in_log;
       $pos_in_log = $tell->();
 
       if ( $stmt =~ s/$slow_log_hd_line//go ){ # Throw away header lines in log
@@ -6605,19 +6607,25 @@
                push @properties, 'ts', $time;
                ++$got_ts;
                if ( !$got_uh
-                  && ( my ( $user, $host, $ip ) = $line =~ 
m/$slow_log_uh_line/o )
+                  && ( my ( $user, $host, $ip, $thread_id ) = $line =~ 
m/$slow_log_uh_line/o )
                ) {
                   PTDEBUG && _d("Got user, host, ip", $user, $host, $ip);
                   push @properties, 'user', $user, 'host', $host, 'ip', $ip;
-                  ++$got_uh;
+                  if ( $thread_id ) {  
+                     push @properties, 'Thread_id', $thread_id;
+                 }
+                 ++$got_uh;
                }
             }
 
             elsif ( !$got_uh
-                  && ( my ( $user, $host, $ip ) = $line =~ 
m/$slow_log_uh_line/o )
+                  && ( my ( $user, $host, $ip, $thread_id ) = $line =~ 
m/$slow_log_uh_line/o )
             ) {
-               PTDEBUG && _d("Got user, host, ip", $user, $host, $ip);
-               push @properties, 'user', $user, 'host', $host, 'ip', $ip;
+                  PTDEBUG && _d("Got user, host, ip", $user, $host, $ip);
+                  push @properties, 'user', $user, 'host', $host, 'ip', $ip;
+                  if ( $thread_id ) {       
+                     push @properties, 'Thread_id', $thread_id;
+                 }
                ++$got_uh;
             }
 
@@ -6698,9 +6706,15 @@
 
       PTDEBUG && _d('Properties of event:', Dumper(\@properties));
       my $event = { @properties };
-      if ( $args{stats} ) {
-         $args{stats}->{events_read}++;
-         $args{stats}->{events_parsed}++;
+      if ( !$event->{arg} ) {
+         PTDEBUG && _d('Partial event, no arg');
+      }
+      else {
+         $self->{last_event_offset} = undef;
+         if ( $args{stats} ) {
+            $args{stats}->{events_read}++;
+            $args{stats}->{events_parsed}++;
+         }
       }
       return $event;
    } # EVENT
@@ -11224,6 +11238,6 @@
 
 =head1 VERSION
 
-pt-upgrade 2.2.9
+pt-upgrade 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-variable-advisor 
new/percona-toolkit-2.2.10/bin/pt-variable-advisor
--- old/percona-toolkit-2.2.9/bin/pt-variable-advisor   2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-variable-advisor  2014-08-06 
21:57:30.000000000 +0200
@@ -44,7 +44,7 @@
 {
 package Percona::Toolkit;
 
-our $VERSION = '2.2.9';
+our $VERSION = '2.2.10';
 
 use strict;
 use warnings FATAL => 'all';
@@ -6138,6 +6138,6 @@
 
 =head1 VERSION
 
-pt-variable-advisor 2.2.9
+pt-variable-advisor 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/bin/pt-visual-explain 
new/percona-toolkit-2.2.10/bin/pt-visual-explain
--- old/percona-toolkit-2.2.9/bin/pt-visual-explain     2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/bin/pt-visual-explain    2014-08-06 
21:57:30.000000000 +0200
@@ -3243,6 +3243,6 @@
 
 =head1 VERSION
 
-pt-visual-explain 2.2.9
+pt-visual-explain 2.2.10
 
 =cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/percona-toolkit-2.2.9/docs/percona-toolkit.pod 
new/percona-toolkit-2.2.10/docs/percona-toolkit.pod
--- old/percona-toolkit-2.2.9/docs/percona-toolkit.pod  2014-07-08 
16:36:40.000000000 +0200
+++ new/percona-toolkit-2.2.10/docs/percona-toolkit.pod 2014-08-06 
21:57:30.000000000 +0200
@@ -557,6 +557,6 @@
 
 =head1 VERSION
 
-Percona Toolkit v2.2.9 released 2014-07-08
+Percona Toolkit v2.2.10 released 2014-08-06
 
 =cut

++++++ percona-toolkit-2.2.x-disable-default-version-check.patch ++++++
--- /var/tmp/diff_new_pack.0bWxqc/_old  2014-08-11 10:08:10.000000000 +0200
+++ /var/tmp/diff_new_pack.0bWxqc/_new  2014-08-11 10:08:10.000000000 +0200
@@ -40,10 +40,10 @@
  bin/pt-variable-advisor      |    2 --
  18 files changed, 36 deletions(-)
 
-Index: percona-toolkit-2.2.9/bin/pt-archiver
+Index: percona-toolkit-2.2.10/bin/pt-archiver
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-archiver 2014-07-08 15:36:40.000000000 
+0100
-+++ percona-toolkit-2.2.9/bin/pt-archiver      2014-07-10 21:40:36.000000000 
+0100
+--- percona-toolkit-2.2.10.orig/bin/pt-archiver        2014-08-06 
20:57:30.000000000 +0100
++++ percona-toolkit-2.2.10/bin/pt-archiver     2014-08-10 15:15:27.000000000 
+0100
 @@ -7465,8 +7465,6 @@ Show version and exit.
  
  =item --[no]version-check
@@ -53,10 +53,10 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-config-diff
+Index: percona-toolkit-2.2.10/bin/pt-config-diff
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-config-diff      2014-07-08 
15:36:40.000000000 +0100
-+++ percona-toolkit-2.2.9/bin/pt-config-diff   2014-07-10 21:40:36.000000000 
+0100
+--- percona-toolkit-2.2.10.orig/bin/pt-config-diff     2014-08-06 
20:57:30.000000000 +0100
++++ percona-toolkit-2.2.10/bin/pt-config-diff  2014-08-10 15:15:27.000000000 
+0100
 @@ -5563,8 +5563,6 @@ Show version and exit.
  
  =item --[no]version-check
@@ -66,10 +66,10 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-deadlock-logger
+Index: percona-toolkit-2.2.10/bin/pt-deadlock-logger
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-deadlock-logger  2014-07-08 
15:36:40.000000000 +0100
-+++ percona-toolkit-2.2.9/bin/pt-deadlock-logger       2014-07-10 
21:40:36.000000000 +0100
+--- percona-toolkit-2.2.10.orig/bin/pt-deadlock-logger 2014-08-06 
20:57:30.000000000 +0100
++++ percona-toolkit-2.2.10/bin/pt-deadlock-logger      2014-08-10 
15:15:27.000000000 +0100
 @@ -5348,8 +5348,6 @@ Show version and exit.
  
  =item --[no]version-check
@@ -79,10 +79,10 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-diskstats
+Index: percona-toolkit-2.2.10/bin/pt-diskstats
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-diskstats        2014-07-08 
15:36:40.000000000 +0100
-+++ percona-toolkit-2.2.9/bin/pt-diskstats     2014-07-10 21:40:36.000000000 
+0100
+--- percona-toolkit-2.2.10.orig/bin/pt-diskstats       2014-08-06 
20:57:30.000000000 +0100
++++ percona-toolkit-2.2.10/bin/pt-diskstats    2014-08-10 15:15:27.000000000 
+0100
 @@ -5468,8 +5468,6 @@ Show version and exit.
  
  =item --[no]version-check
@@ -92,10 +92,10 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-duplicate-key-checker
+Index: percona-toolkit-2.2.10/bin/pt-duplicate-key-checker
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-duplicate-key-checker    2014-07-08 
15:36:40.000000000 +0100
-+++ percona-toolkit-2.2.9/bin/pt-duplicate-key-checker 2014-07-10 
21:40:36.000000000 +0100
+--- percona-toolkit-2.2.10.orig/bin/pt-duplicate-key-checker   2014-08-06 
20:57:30.000000000 +0100
++++ percona-toolkit-2.2.10/bin/pt-duplicate-key-checker        2014-08-10 
15:15:27.000000000 +0100
 @@ -5429,8 +5429,6 @@ Show version and exit.
  
  =item --[no]version-check
@@ -105,10 +105,10 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-find
+Index: percona-toolkit-2.2.10/bin/pt-find
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-find     2014-07-08 15:36:40.000000000 
+0100
-+++ percona-toolkit-2.2.9/bin/pt-find  2014-07-10 21:40:36.000000000 +0100
+--- percona-toolkit-2.2.10.orig/bin/pt-find    2014-08-06 20:57:30.000000000 
+0100
++++ percona-toolkit-2.2.10/bin/pt-find 2014-08-10 15:15:27.000000000 +0100
 @@ -4440,8 +4440,6 @@ Show version and exit.
  
  =item --[no]version-check
@@ -118,10 +118,10 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-fk-error-logger
+Index: percona-toolkit-2.2.10/bin/pt-fk-error-logger
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-fk-error-logger  2014-07-08 
15:36:40.000000000 +0100
-+++ percona-toolkit-2.2.9/bin/pt-fk-error-logger       2014-07-10 
21:40:36.000000000 +0100
+--- percona-toolkit-2.2.10.orig/bin/pt-fk-error-logger 2014-08-06 
20:57:30.000000000 +0100
++++ percona-toolkit-2.2.10/bin/pt-fk-error-logger      2014-08-10 
15:15:27.000000000 +0100
 @@ -4335,8 +4335,6 @@ Show version and exit.
  
  =item --[no]version-check
@@ -131,10 +131,10 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-heartbeat
+Index: percona-toolkit-2.2.10/bin/pt-heartbeat
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-heartbeat        2014-07-08 
15:36:40.000000000 +0100
-+++ percona-toolkit-2.2.9/bin/pt-heartbeat     2014-07-10 21:40:36.000000000 
+0100
+--- percona-toolkit-2.2.10.orig/bin/pt-heartbeat       2014-08-06 
20:57:30.000000000 +0100
++++ percona-toolkit-2.2.10/bin/pt-heartbeat    2014-08-10 15:15:27.000000000 
+0100
 @@ -6019,8 +6019,6 @@ Show version and exit.
  
  =item --[no]version-check
@@ -144,11 +144,11 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-index-usage
+Index: percona-toolkit-2.2.10/bin/pt-index-usage
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-index-usage      2014-07-08 
15:36:40.000000000 +0100
-+++ percona-toolkit-2.2.9/bin/pt-index-usage   2014-07-10 21:40:36.000000000 
+0100
-@@ -7361,8 +7361,6 @@ Show version and exit.
+--- percona-toolkit-2.2.10.orig/bin/pt-index-usage     2014-08-06 
20:57:30.000000000 +0100
++++ percona-toolkit-2.2.10/bin/pt-index-usage  2014-08-10 15:15:27.000000000 
+0100
+@@ -7375,8 +7375,6 @@ Show version and exit.
  
  =item --[no]version-check
  
@@ -157,10 +157,10 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-kill
+Index: percona-toolkit-2.2.10/bin/pt-kill
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-kill     2014-07-08 15:36:40.000000000 
+0100
-+++ percona-toolkit-2.2.9/bin/pt-kill  2014-07-10 21:40:36.000000000 +0100
+--- percona-toolkit-2.2.10.orig/bin/pt-kill    2014-08-06 20:57:30.000000000 
+0100
++++ percona-toolkit-2.2.10/bin/pt-kill 2014-08-10 15:15:27.000000000 +0100
 @@ -7640,8 +7640,6 @@ Show version and exit.
  
  =item --[no]version-check
@@ -170,11 +170,11 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-online-schema-change
+Index: percona-toolkit-2.2.10/bin/pt-online-schema-change
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-online-schema-change     2014-07-08 
15:36:40.000000000 +0100
-+++ percona-toolkit-2.2.9/bin/pt-online-schema-change  2014-07-10 
21:40:36.000000000 +0100
-@@ -11320,8 +11320,6 @@ Show version and exit.
+--- percona-toolkit-2.2.10.orig/bin/pt-online-schema-change    2014-08-06 
20:57:30.000000000 +0100
++++ percona-toolkit-2.2.10/bin/pt-online-schema-change 2014-08-10 
15:15:27.000000000 +0100
+@@ -11328,8 +11328,6 @@ Show version and exit.
  
  =item --[no]version-check
  
@@ -183,11 +183,11 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-query-digest
+Index: percona-toolkit-2.2.10/bin/pt-query-digest
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-query-digest     2014-07-08 
15:36:40.000000000 +0100
-+++ percona-toolkit-2.2.9/bin/pt-query-digest  2014-07-10 21:40:36.000000000 
+0100
-@@ -16267,8 +16267,6 @@ Show version and exit.
+--- percona-toolkit-2.2.10.orig/bin/pt-query-digest    2014-08-06 
20:57:30.000000000 +0100
++++ percona-toolkit-2.2.10/bin/pt-query-digest 2014-08-10 15:15:27.000000000 
+0100
+@@ -16273,8 +16273,6 @@ Show version and exit.
  
  =item --[no]version-check
  
@@ -196,10 +196,10 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-slave-delay
+Index: percona-toolkit-2.2.10/bin/pt-slave-delay
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-slave-delay      2014-07-08 
15:36:40.000000000 +0100
-+++ percona-toolkit-2.2.9/bin/pt-slave-delay   2014-07-10 21:40:36.000000000 
+0100
+--- percona-toolkit-2.2.10.orig/bin/pt-slave-delay     2014-08-06 
20:57:30.000000000 +0100
++++ percona-toolkit-2.2.10/bin/pt-slave-delay  2014-08-10 15:15:27.000000000 
+0100
 @@ -4698,8 +4698,6 @@ Show version and exit.
  
  =item --[no]version-check
@@ -209,10 +209,10 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-slave-restart
+Index: percona-toolkit-2.2.10/bin/pt-slave-restart
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-slave-restart    2014-07-08 
15:36:40.000000000 +0100
-+++ percona-toolkit-2.2.9/bin/pt-slave-restart 2014-07-10 21:40:36.000000000 
+0100
+--- percona-toolkit-2.2.10.orig/bin/pt-slave-restart   2014-08-06 
20:57:30.000000000 +0100
++++ percona-toolkit-2.2.10/bin/pt-slave-restart        2014-08-10 
15:15:27.000000000 +0100
 @@ -5764,8 +5764,6 @@ Show version and exit.
  
  =item --[no]version-check
@@ -222,11 +222,11 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-table-checksum
+Index: percona-toolkit-2.2.10/bin/pt-table-checksum
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-table-checksum   2014-07-08 
15:36:40.000000000 +0100
-+++ percona-toolkit-2.2.9/bin/pt-table-checksum        2014-07-10 
21:40:36.000000000 +0100
-@@ -12391,8 +12391,6 @@ Show version and exit.
+--- percona-toolkit-2.2.10.orig/bin/pt-table-checksum  2014-08-06 
20:57:30.000000000 +0100
++++ percona-toolkit-2.2.10/bin/pt-table-checksum       2014-08-10 
15:15:27.000000000 +0100
+@@ -12415,8 +12415,6 @@ Show version and exit.
  
  =item --[no]version-check
  
@@ -235,10 +235,10 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-table-sync
+Index: percona-toolkit-2.2.10/bin/pt-table-sync
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-table-sync       2014-07-08 
15:36:40.000000000 +0100
-+++ percona-toolkit-2.2.9/bin/pt-table-sync    2014-07-10 21:40:36.000000000 
+0100
+--- percona-toolkit-2.2.10.orig/bin/pt-table-sync      2014-08-06 
20:57:30.000000000 +0100
++++ percona-toolkit-2.2.10/bin/pt-table-sync   2014-08-10 15:15:27.000000000 
+0100
 @@ -12500,8 +12500,6 @@ Show version and exit.
  
  =item --[no]version-check
@@ -248,11 +248,11 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-upgrade
+Index: percona-toolkit-2.2.10/bin/pt-upgrade
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-upgrade  2014-07-08 15:36:40.000000000 
+0100
-+++ percona-toolkit-2.2.9/bin/pt-upgrade       2014-07-10 21:40:36.000000000 
+0100
-@@ -11017,8 +11017,6 @@ Show version and exit.
+--- percona-toolkit-2.2.10.orig/bin/pt-upgrade 2014-08-06 20:57:30.000000000 
+0100
++++ percona-toolkit-2.2.10/bin/pt-upgrade      2014-08-10 15:15:27.000000000 
+0100
+@@ -11031,8 +11031,6 @@ Show version and exit.
  
  =item --[no]version-check
  
@@ -261,10 +261,10 @@
  Check for the latest version of Percona Toolkit, MySQL, and other programs.
  
  This is a standard "check for updates automatically" feature, with two
-Index: percona-toolkit-2.2.9/bin/pt-variable-advisor
+Index: percona-toolkit-2.2.10/bin/pt-variable-advisor
 ===================================================================
---- percona-toolkit-2.2.9.orig/bin/pt-variable-advisor 2014-07-08 
15:36:40.000000000 +0100
-+++ percona-toolkit-2.2.9/bin/pt-variable-advisor      2014-07-10 
21:40:36.000000000 +0100
+--- percona-toolkit-2.2.10.orig/bin/pt-variable-advisor        2014-08-06 
20:57:30.000000000 +0100
++++ percona-toolkit-2.2.10/bin/pt-variable-advisor     2014-08-10 
15:15:27.000000000 +0100
 @@ -5968,8 +5968,6 @@ Show version and exit.
  
  =item --[no]version-check

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to