[MDEV-6409] CREATE VIEW replication problem if error occurs in mysql_register_view Created: 2014-06-30  Updated: 2014-12-10  Due: 2014-08-25  Resolved: 2014-07-25

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 5.5.38, 10.0.12
Fix Version/s: 5.5.39, 10.0.13

Type: Bug Priority: Major
Reporter: Sriram Patil Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: None


 Description   

While creating VIEW, msql_register_view method is invoked for creating .frm and process .frm's history backup. This method returns errors like, ER_OUT_OF_RESOURCES, ER_TABLE_EXISTS_ERROR, ER_NO_SUCH_TABLE, etc.

Even if an error is returned by this method, query is written in the bin log. So consider an example,

CREATE VIEW v1 as SELECT * FROM t1;
-> Throws ER_OUT_OF_RESOURCES ERROR
-> The query is still written into bin log.

As the query with the error is written into bin log of master server, it is read by all slaves and causes a conflict if same error is not generated at a slave server. This results in replication abort.



 Comments   
Comment by Elena Stepanova [ 2014-06-30 ]

I checked with ER_TABLE_EXISTS_ERROR on 5.5, the statement is written to the binary log, but with the error code, so it shouldn't cause any data discrepancy between master and slaves (generally, replication should abort if the statement does not finish with the same error on slaves).

Does it contradict your observations?

Comment by Sriram Patil [ 2014-06-30 ]

Yes, the replication aborts due to contradiction in errors. But, the replication should not stop at this point. The query should not be written into the log. The query is logged only when the query is successful. And the error occurs mainly when the VIEW is not created on master. So, ER_TABLE_EXISTS_ERROR should not cause a problem. ER_OUT_OF_RESOURCES will generate a conflict.

I will change the description to mention that the replication aborts.

Comment by Elena Stepanova [ 2014-06-30 ]

Hi,
Is there a reason why you changed the version to 'galera'?

Comment by Sriram Patil [ 2014-06-30 ]

The version was not set before. Sergei suggested me to set it to the first search that appears after typing "5.5". And galera appeared first. That is the only reason I have set it to 5.5.38-galera.

Generated at Thu Feb 08 07:11:41 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.