summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrandon Nesterenko <brandon.nesterenko@mariadb.com>2021-08-05 12:59:37 -0600
committerBrandon Nesterenko <brandon.nesterenko@mariadb.com>2021-08-30 07:48:23 -0600
commita29e7c90fbd573f1b245fcb18d2f0e716c06e15e (patch)
tree0e76848a163a9fcf68a091a764f78c230b921794
parentb378ddb3d3c3af75195d328018259369671bb029 (diff)
downloadmariadb-git-bb-10.3-MDEV-25580.tar.gz
MDEV-25580: rpl.rpl_semi_sync_slave_compressed_protocol crashes because of wrong packetbb-10.3-MDEV-25580
Problem: ======== When both semi-sync and slave compression are enabled, the numbering on packet headers can become out of sync between the primary and replica servers. More specifically, after the master flushes its write, it should increment the counters that track packets. The bug is such that the master only updates the normal packet counter and leaves the compressed packet counter alone. Solution: ======== After the master flushes, additionally increment the compressed packet counter. Reviewed By: ============ Andrei Elkin: <andrei.elkin@mariadb.com>
-rw-r--r--mysql-test/suite/rpl/disabled.def1
-rw-r--r--sql/semisync_master.cc1
2 files changed, 1 insertions, 1 deletions
diff --git a/mysql-test/suite/rpl/disabled.def b/mysql-test/suite/rpl/disabled.def
index 94073575606..f446aa6a2aa 100644
--- a/mysql-test/suite/rpl/disabled.def
+++ b/mysql-test/suite/rpl/disabled.def
@@ -15,4 +15,3 @@ rpl_partition_archive : MDEV-5077 2013-09-27 svoj Cannot exchange partition
rpl_row_binlog_max_cache_size : MDEV-11092
rpl_row_index_choice : MDEV-11666
rpl_semi_sync_after_sync : fails after MDEV-16172
-rpl_semi_sync_slave_compressed_protocol : MDEV-25580 2021-05-05 Sujatha
diff --git a/sql/semisync_master.cc b/sql/semisync_master.cc
index b239a9776a7..0f868d4fc7a 100644
--- a/sql/semisync_master.cc
+++ b/sql/semisync_master.cc
@@ -1229,6 +1229,7 @@ int Repl_semi_sync_master::flush_net(THD *thd,
net_clear(net, 0);
net->pkt_nr++;
+ net->compress_pkt_nr++;
result = 0;
rpl_semi_sync_master_net_wait_num++;