← Back to team overview

maria-developers team mailing list archive

Problem with parallel replication in 10.2



I was trying to run a test that fails in the upcoming bb-10.2-jan on
the normal 10.2 tree, when I noticed this strange issue:

- Test fails with timeout when running with --debug
- When looking at the trace file, I notice that we get a duplicate key
error for the table gtid_slave_post (MyISAM table).  Is this something
normal ?

To repeat:

Store the included test in suite/rpl and run it with:
mysql-test-run --debug --record rpl_skr

Issue 2:

bb-10.2-jan tree is a working tree for a merge of MariaDB 10.2 and MySQL 5.7

When running rpl_skr in 10.2 it takes 2 seconds
When running it in the bb-10.2-jan tree it takes either  a long time
or we get a timeout.

This is probably because of the new lock code in lock0lock.cc and
lock0wait.cc which doesn't break conflicting transaction but instead
waits for a timeout

Would appreciate any help with this!

Note that rpl_skr is a test that was originally part of
rpl_parallel.test, but I have made it separate to be able to more
easily test for this issue.

Before testing bb-10.2-jan, please apply this patch that fixes one
critical issue in this tree related to group-commit:

diff --git a/storage/innobase/handler/ha_innodb.cc
index b69468d..0e9caed 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -4976,16 +4953,15 @@ innobase_commit(
         thd_wakeup_subsequent_commits(thd, 0);

         /* Now do a write + flush of logs. */
-        if (!read_only) {
-            trx_commit_complete_for_mysql(trx);
-        }

+        trx_commit_complete_for_mysql(trx);

     } else {
         /* We just mark the SQL statement ended and do not do a
         transaction commit */

+               DBUG_PRINT("info", ("Just mark SQL statement"));
         /* If we had reserved the auto-inc lock for some
         table in this SQL statement we release it now */


Attachment: rpl_skr.test
Description: Binary data

Follow ups