Skip to content

Conversation

@denji
Copy link

@denji denji commented Feb 8, 2019

ptosc-square-changes for percona-toolkit-3.0.13 (#57)

I didn't check the patch, so be careful.

@Dhanasekar93
Copy link

Dhanasekar93 commented Feb 26, 2019

The above patch worked for percona toolkit 3.0.12.

Logs:

patching file pt-osc.3.0.12
Hunk #4 succeeded at 5753 (offset -6 lines).
Hunk #5 succeeded at 5768 (offset -6 lines).
Hunk #6 succeeded at 5889 (offset -6 lines).
Hunk #7 succeeded at 6114 (offset -6 lines).
Hunk #8 succeeded at 6126 (offset -6 lines).
Hunk #9 succeeded at 8427 (offset -6 lines).
Hunk #10 succeeded at 9026 (offset -6 lines).
Hunk #11 succeeded at 9261 (offset -6 lines).
Hunk #12 succeeded at 9293 (offset -6 lines).
Hunk #13 succeeded at 9327 (offset -6 lines).
Hunk #14 succeeded at 9420 (offset -6 lines).
Hunk #15 succeeded at 9542 (offset -6 lines).
Hunk #16 succeeded at 9584 (offset -6 lines).
Hunk #17 succeeded at 9609 (offset -6 lines).
Hunk #18 succeeded at 9631 (offset -6 lines).
Hunk #19 succeeded at 9649 (offset -6 lines).
Hunk #20 succeeded at 9841 (offset -6 lines).
Hunk #21 succeeded at 9877 (offset -6 lines).
Hunk #22 succeeded at 9983 (offset -6 lines).
Hunk #23 succeeded at 10011 (offset -6 lines).
Hunk #24 succeeded at 10033 (offset -6 lines).
Hunk #25 succeeded at 10083 (offset -7 lines).
Hunk #26 succeeded at 10272 (offset -7 lines).
Hunk #27 succeeded at 10313 (offset -7 lines).
Hunk #28 succeeded at 10328 (offset -7 lines).
Hunk #29 succeeded at 10718 (offset -7 lines).
Hunk #30 succeeded at 10733 (offset -7 lines).
Hunk #31 succeeded at 10903 (offset -7 lines).
Hunk #32 succeeded at 10961 (offset -7 lines).
Hunk #33 succeeded at 10983 (offset -7 lines).
Hunk #34 succeeded at 11012 (offset -7 lines).
Hunk #35 succeeded at 11027 (offset -7 lines).
Hunk #36 succeeded at 11359 (offset -7 lines).
Hunk #37 succeeded at 11519 (offset -7 lines).
Hunk #38 succeeded at 11790 (offset -7 lines).
Hunk #39 succeeded at 12566 (offset -7 lines).
Hunk #40 succeeded at 12667 (offset -7 lines).
Hunk #41 succeeded at 12699 (offset -7 lines).
Hunk #42 succeeded at 12821 (offset -7 lines).
Hunk #43 succeeded at 12973 (offset -7 lines).
Hunk #44 succeeded at 13044 (offset -7 lines).
Hunk #45 succeeded at 13116 (offset -7 lines).```

@denji
Copy link
Author

denji commented Feb 26, 2019

The patch will be successful, but the changes percona-toolkit-3.0.13 need to be checked.

@Dhanasekar93
Copy link

@denji The above patch is not working for 3.0.13.

pt-online-schema-change 3.0.13
root@739201b92acd:/opt/code/ptosc-patch# patch /usr/bin/pt-online-schema-change 0001-ptosc-square-changes.patch
patching file /usr/bin/pt-online-schema-change
Hunk #1 succeeded at 28 (offset 1 line).
Hunk #2 succeeded at 3701 (offset 157 lines).
Hunk #3 succeeded at 3787 (offset 157 lines).
Hunk #4 succeeded at 5759 (offset 377 lines).
Hunk #5 succeeded at 5774 (offset 377 lines).
Hunk #6 succeeded at 5895 (offset 396 lines).
Hunk #7 succeeded at 6120 (offset 403 lines).
Hunk #8 succeeded at 6132 (offset 403 lines).
Hunk #9 succeeded at 8433 with fuzz 1 (offset 328 lines).
Hunk #10 succeeded at 9032 (offset 441 lines).
Hunk #11 succeeded at 9267 (offset 447 lines).
Hunk #12 succeeded at 9299 (offset 447 lines).
Hunk #13 succeeded at 9333 (offset 447 lines).
Hunk #14 succeeded at 9426 (offset 448 lines).
Hunk #15 succeeded at 9548 (offset 448 lines).
Hunk #16 succeeded at 9590 (offset 448 lines).
Hunk #17 succeeded at 9615 (offset 448 lines).
Hunk #18 succeeded at 9637 (offset 448 lines).
Hunk #19 succeeded at 9655 (offset 448 lines).
Hunk #20 succeeded at 9847 (offset 448 lines).
Hunk #21 succeeded at 9883 (offset 448 lines).
Hunk #22 succeeded at 9989 (offset 458 lines).
Hunk #23 succeeded at 10017 (offset 458 lines).
Hunk #24 succeeded at 10039 (offset 458 lines).
Hunk #25 succeeded at 10090 (offset 465 lines).
Hunk #26 succeeded at 10279 (offset 508 lines).
Hunk #27 succeeded at 10320 (offset 508 lines).
Hunk #28 succeeded at 10335 (offset 508 lines).
Hunk #29 succeeded at 10725 (offset 589 lines).
Hunk #30 succeeded at 10740 (offset 589 lines).
Hunk #31 FAILED at 10256.
Hunk #32 succeeded at 10959 (offset 667 lines).
Hunk #33 succeeded at 10981 (offset 665 lines).
Hunk #34 succeeded at 11010 (offset 665 lines).
Hunk #35 FAILED at 10359.
Hunk #36 succeeded at 11354 (offset 711 lines).
Hunk #37 FAILED at 10709.
Hunk #38 succeeded at 11783 (offset 872 lines).
Hunk #39 succeeded at 12559 (offset 941 lines).
Hunk #40 succeeded at 12660 with fuzz 2 (offset 1002 lines).
Hunk #41 succeeded at 12692 with fuzz 2 (offset 1014 lines).
Hunk #42 succeeded at 12814 with fuzz 2 (offset 1067 lines).
Hunk #43 succeeded at 12966 with fuzz 2 (offset 1116 lines).
Hunk #44 succeeded at 13037 with fuzz 2 (offset 1138 lines).
Hunk #45 succeeded at 13109 (offset 1139 lines).
3 out of 45 hunks FAILED -- saving rejects to file /usr/bin/pt-online-schema-change.rej

/usr/bin/pt-online-schema-change.rej file

+++ pt-online-schema-change       2017-07-17 09:46:31.000000000 -0700
@@ -10256,6 +10583,16 @@
    elsif ( $o->get('execute') ) {
       print ts("Swapping tables...\n");

+      if ( $o->get('swap-table-name') ) {
+         $table_name = $o->get('swap-table-name');
+         $table_name =~  s/%T/$orig_tbl->{name}/g;
+         use POSIX 'strftime';
+         my $timestamp = strftime("%Y%m%d%H%M%S", localtime(time()));
+         $table_name =~  s/%D/$timestamp/g;
+      } else {
+         $table_name = $prefix . $table_name;
+      }
+
       while ( $name_tries-- ) {
          $table_name = $prefix . $table_name;

@@ -10359,7 +10720,10 @@
            . ' LIKE ' . $q->literal_like($orig_tbl->{tbl});
    PTDEBUG && _d($sql);
    my $triggers = $dbh->selectall_arrayref($sql);
-   if ( $triggers && @$triggers ) {
+   # Don't quit on existing triggers if running from a saved state. The triggers
+   # are expected to be present.
+   if ( $triggers && @$triggers &&
+         (!defined $loaded_step || (defined $loaded_step && !grep { $_ eq $loaded_step } qw(triggers copy rename)))) {
       die "The table $orig_tbl->{name} has triggers.  This tool "
          . "needs to create its own triggers, so the table cannot "
          . "already have triggers.\n";
@@ -10709,8 +11074,11 @@
    @drop_trigger_sqls = ();
    foreach my $trg ( @triggers ) {
       my ($name, $sql) = @$trg;
-      print $sql, "\n" if $o->get('print');
-      if ( $o->get('execute') ) {
+      print "$name trigger: $sql\n";
+      # Don't create triggers if running from a saved state. They should already
+      # be there.
+      if ( $o->get('execute') &&
+         (!defined $loaded_step || (defined $loaded_step && !grep { $_ eq $loaded_step } qw(triggers copy rename)))) {
          osc_retry(
             Cxn     => $cxn,
             Retry   => $retry,

@denji
Copy link
Author

denji commented Aug 29, 2019

@Dhanasekar93 ptosc-patch/0001-ptosc-square-changes.patch [508230d] (17 Jul 2017)

$ wget https://www.percona.com/downloads/percona-toolkit/3.0.13/source/tarball/percona-toolkit-3.0.13.tar.gz
$ tar -xf percona-toolkit-3.0.13.tar.gz
$ cd percona-toolkit-3.0.13/bin
$ curl -sL https://raw.githubusercontent.com/square/shift/
63230a9/ptosc-patch/0001-ptosc-square-changes.patch | patch 
patching file pt-online-schema-change

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants