diff options
author | Brandon Nesterenko <brandon.nesterenko@mariadb.com> | 2021-08-05 12:59:37 -0600 |
---|---|---|
committer | Brandon Nesterenko <brandon.nesterenko@mariadb.com> | 2021-08-30 07:48:23 -0600 |
commit | a29e7c90fbd573f1b245fcb18d2f0e716c06e15e (patch) | |
tree | 0e76848a163a9fcf68a091a764f78c230b921794 | |
parent | b378ddb3d3c3af75195d328018259369671bb029 (diff) | |
download | mariadb-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.def | 1 | ||||
-rw-r--r-- | sql/semisync_master.cc | 1 |
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++; |