Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.0.3
-
None
-
Linux EL6
Description
If two tables exist with each referring to the other, executing an update on either of the tables causes MariaDB to get stuck indefinitely, using 100% of CPU.
This seems to be affecting all 10.x releases so far, but this is the first time I have had a test case this small and compact to reproduce it. The same issue does not arise on MySQL 5.1, so this is a regression (and quite a nasty one).
Attached is a data set with which the problem is reproducible, just two tables with three records between them.
cat the attached file into an empty database, and execute the following query on it:
update user set is_doctor=1 where qualifications != '' and qualifications != '.'; |
The query will go away forever with the mysqld thread executing it consuming 100% CPU until killed (can only be killed with kill -9).
Also reproducible on MySQL 5.6.5 (that's the version of InnoDB that MariaDB 10.0.3 has), but not reproducible on MySQL 5.6.11; so, the chances are the fix will be merged into MariaDB 10.0.4 along with the InnoDB merge that is going on now.
I will keep it open and re-check it as soon as the merge is finished.
See also https://mariadb.atlassian.net/browse/MDEV-4722