[MDEV-23075] Test hangs with "transaction_isolation=SERIALIZABLE" Created: 2020-07-02  Updated: 2020-09-06  Resolved: 2020-09-06

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Affects Version/s: 10.5.4
Fix Version/s: N/A

Type: Bug Priority: Critical
Reporter: Tim He Assignee: Unassigned
Resolution: Incomplete Votes: 0
Labels: need_feedback
Environment:

Ubuntu-18.04


Attachments: PNG File Figure_1.png     PNG File Figure_2.png    

 Description   

start mariadb with:
transaction_isolation=READ-UNCOMMITTED
transaction_isolation=READ-COMMITTED
transaction_isolation=REPEATABLE-READ
transaction_isolation=SERIALIZABLE
respectively, and innodb_lock_wait_timeout=3600000 then run:

./mysql-test-run.pl \
--extern socket=/var/run/mysqld/mysqld.sock \
--report-times \
--max-connections=16 \
--max-test-fail=0 \
--retry-failure=0 \
--testcase-timeout=60 \
--force \
--repeat=10 \
main.deadlock_innodb

I got the results shown in Figure_1.png. I checked for 'top' and observe trival CPU/mem pressure (may be a deadlock). While I expect this won't happen even though 'SERIALIZABLE' provide the best isolation level among the four.

In MySQL-8.0.19, I got the results shown in Figure_2.png (repeat=100). Thouth the time spent is not stable, test finally got finished.



 Comments   
Comment by Elena Stepanova [ 2020-08-04 ]

I can't reproduce it, in the sense that it stalls the same way for me on MySQL 8.0.19. Could you please double-check?

The line where it stops has a comment "# The following query should hang because con1 is locking the record". The comment lacks specificity, but apparently hang is expected with some options, and SERIALIZABLE isolation would be a good occasion.

Generated at Thu Feb 08 09:19:39 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.