Bug #85164 GR SHOULD BLOCK OPERATIONS ON NON-COMPLAINT TABLES IN GR+ASYNC SETUP
Submitted: 24 Feb 2017 9:31 Modified: 18 Sep 2017 10:04
Reporter: Dhruthi Komarlu Vasudeva Murthy Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Group Replication Severity:S3 (Non-critical)
Version:5.7.18 OS:Any
Assigned to: CPU Architecture:Any

[24 Feb 2017 9:31] Dhruthi Komarlu Vasudeva Murthy
Description:
At present there are few restrictions in GR such as,
1. operations on a table without PK is not allowed when running group replication.
2. only operations on table with innodb storage engine is supported with GR
3. If a table has foreign key with a CASCADE clause, then operations on such table is not allowed (in multi-primary mode)

But GR allows a11 these operations through async setup.

Scenario:
1. Consider 3 servers M1,M2,M3.

2. Of which M1<->M2 forms a group and M1 is also replication slave of M3. (M1<-M3)
   (i.e., M2 <-> M1 <- M3).

3. On M3 create table without PK, do  some operations on it, Check that It is replicated in group. (GR should block operations on tables without PK)

4. On M3 create a table with Myisam storage engine, do some inserts on it. Check that inserts are replicated in group. (GR should block operations on MyIsam tables).

5. On M3 create a table with foreign key with cascade clause, Do some operations on it, Check that it is replicated in the group. (In multimaster mode, GR doesn't allow operations on tables with CASCADE clause).

How to repeat:
please see attached testcase.

To run:
mysql-test$ ./mtr group_replication.gr_async_setup
[18 Sep 2017 10:04] David Moss
Posted by developer:
 
Thank you for your feedback, this has been fixed in upcoming versions and the following was added to the 8.0.3 changelog:
On a member which had both Group Replication and asynchronous replication running simultaneously, asynchronous replication was not respecting the restrictions required by Group Replication, such as only using InnoDB storage engine, tables requiring primary keys and so on. This could also be encountered when running mysqlbinlog against the member. Now, members that are running Group Replication and asynchronous replication do not allow Group Replication's requirements to be broken.