Bug #38368 Maria deadlock on INSERT/UPDATE/DELETE
Submitted: 25 Jul 2008 9:34 Modified: 16 Aug 2008 10:26
Reporter: Philip Stoev Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Maria storage engine Severity:S1 (Critical)
Version:6.0-bzr OS:Any
Assigned to: Sergei Golubchik CPU Architecture:Any
Triage: D1 (Critical)

[25 Jul 2008 9:34] Philip Stoev
Description:
When executing a concurrent workload, Maria deadlocked as shown in the attached files.

How to repeat:
If this happens again, a test case will be provided.
[25 Jul 2008 9:39] Philip Stoev
master.err file for bug 38368 after a HUP signal.

Attachment: bug38368.err (application/octet-stream, text), 6.70 KiB.

[25 Jul 2008 9:39] Philip Stoev
SHOW PROCESSLIST for bug 38368

Attachment: bug38368.processlist (text/plain), 7.59 KiB.

[25 Jul 2008 9:40] Philip Stoev
gdb "thread apply all bt" output for bug 38368

Attachment: bug38368.threads (text/plain), 69.88 KiB.

[25 Jul 2008 10:29] Philip Stoev
It appears that this deadlock happens when partitions are used. If the tables are changed not to include partitions,  the test continues to run.
[25 Jul 2008 10:42] Philip Stoev
Please disregard previous comment. Unfortunately this issue happened without partitions as well.
[25 Jul 2008 11:26] Philip Stoev
Transactions are also not required.
[28 Jul 2008 12:21] Sergei Golubchik
Philip, could you provide a simpler test case ?
[31 Jul 2008 21:51] Philip Stoev
Test case for bug 38368A

Attachment: bug38368A.zip (application/x-zip-compressed, text), 5.42 KiB.

[31 Jul 2008 21:53] Philip Stoev
To reproduce, please place the .txt files in mysql-test and the .test files in mysql-test/t and then run:

$ perl ./mysql-test-run.pl \
  --stress \
  --stress-init-file=bug38368A_init.txt \
  --stress-test-file=bug38368A_run.txt \
  --stress-threads=10 \
  --skip-ndb \
  --mysqld=--log-output=file \
  --stress-test-duration=60000

No partitions are used in this test case.
[31 Jul 2008 21:53] Philip Stoev
To reproduce, please place the .txt files in mysql-test and the .test files in mysql-test/t and then run:

$ perl ./mysql-test-run.pl \
  --stress \
  --stress-init-file=bug38368A_init.txt \
  --stress-test-file=bug38368A_run.txt \
  --stress-threads=10 \
  --skip-ndb \
  --mysqld=--log-output=file \
  --stress-test-duration=60000

No partitions are used in this test case.
[12 Aug 2008 18:09] Sergei Golubchik
I failed to repeat it, had the test running for 7 hours and no problem was found.
Do you have a test case that I could use to repeat the bug ?
[16 Aug 2008 10:26] Sergei Golubchik
I failed to repeat it on the recent 6.0.7 maria tree compiled identically to mysql-6.0.6-alpha-linux-i686-glibc23.tar.gz (same build host, same configuration).