Bug #38870 deadlocked threads with myisam table
Submitted: 18 Aug 2008 18:16 Modified: 12 Nov 2008 6:59
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Locking Severity:S3 (Non-critical)
Version:5.1.26, 5.1.28, 5.1.29 OS:Any
Assigned to: CPU Architecture:Any

[18 Aug 2008 18:16] Shane Bester
Description:
Two threads accessing a table caused an infinite hang on each other:

+-------+---------------------------------+--------------------------------
|     3 |                                 | NULL                           
|     0 | NULL                            | show processlist               
| 11017 | Waiting for table               | select * from `t1` limit 1     
| 11017 | Waiting for release of readlock | update ignore `t1` set `id`=if(
+-------+---------------------------------+--------------------------------

call stacks for the two threads:

                                          
Thread 3 (Thread -1274070128 (LWP 26892)):
#0  in __kernel_vsyscall ()               
#1  in pthread_cond_wait@@GLIBC_2.3.2     
#2  in open_table                         
#3  in open_tables                        
#4  in open_and_lock_tables_derived       
#5  in execute_sqlcom_select              
#6  in mysql_execute_command              
#7  in mysql_parse                        
#8  in dispatch_command                   
#9  in do_command                         
#10 in handle_one_connection              
#11 in start_thread                       
#12 in clone                              
                                          
                                          
Thread 2 (Thread -1272489072 (LWP 26893)):
#0  in __kernel_vsyscall ()               
#1  in pthread_cond_wait@@GLIBC_2.3.2     
#2  in wait_if_global_read_lock           
#3  in mysql_lock_tables                  
#4  in lock_tables                        
#5  in mysql_update                       
#6  in mysql_execute_command              
#7  in mysql_parse                        
#8  in dispatch_command                   
#9  in do_command                         
#10 in handle_one_connection              
#11 in start_thread                       
#12 in clone                              

How to repeat:
No testcase yet. More info attached to the bug report.
[18 Aug 2008 18:18] MySQL Verification Team
full stack traces, processlist, testcase notes

Attachment: bug38870_more_info.txt (text/plain), 20.70 KiB.

[12 Nov 2008 6:59] MySQL Verification Team
sorry, this is not a bug.  testcase had explicit lock tables in it...