[MDEV-4010] Deadlock on concurrent INSERT .. SELECT into an Aria table with statement binary logging Created: 2013-01-07 Updated: 2014-12-15 Resolved: 2014-12-15 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - Aria |
| Affects Version/s: | 10.0.1, 5.5.28a, 5.3.11, 5.2.13, 5.1.66 |
| Fix Version/s: | 5.5.41, 10.0.16 |
| Type: | Bug | Priority: | Major |
| Reporter: | Elena Stepanova | Assignee: | Michael Widenius |
| Resolution: | Fixed | Votes: | 1 |
| Labels: | Aria | ||
| Issue Links: |
|
||||||||||||
| Description |
|
In the provided test scenario, 2 threads run INSERT .. SELECT on the same Aria table. Very soon after the test start processlist starts showing something like
Killing one of the threads (or a query in a thread) does not unlock another one:
Reproducible on debug and release builds. ------------ While looking into
------------ Initial test (RQG) If on some reason you are not getting the deadlock right away, try to increase threads and/or duration in the command-line options below. RQG grammar (put it in the root of randgen folder as test.yy):
The test flow above contains LIMIT 0 only to prevent the table from growing uncontrollably, if the deadlock doesn't happen right away. The clause is unimportant, the problem happens without it as well. RQG command line to run on a previous started server, assuming it's running on port 3306 (if the port is different, modify dsn); don't forget to start server with log-bin, no other options are necessary:
RQG command line to run full test (which starts servers, etc.); it will start server on port 19300:
|
| Comments |
| Comment by Elena Stepanova [ 2013-01-07 ] |
|
For Monty: |
| Comment by Elena Stepanova [ 2014-12-14 ] |
|
Increased the priority since we've got an external bug report about the same problem, see |
| Comment by Michael Widenius [ 2014-12-15 ] |
|
There was a bug in lock handling when mixing INSERT ... SELECT on the same table. |