| Bug #52626 | Failing assertion: !lock->recursive | ||
|---|---|---|---|
| Submitted: | 6 Apr 2010 18:10 | Modified: | 30 Apr 2010 5:56 |
| Reporter: | Shane Bester (Platinum Quality Contributor) | Email Updates: | |
| Status: | Duplicate | Impact on me: | |
| Category: | MySQL Server: InnoDB Plugin storage engine | Severity: | S1 (Critical) |
| Version: | 1.0.6, 1.0.7 plugin | OS: | Any (MS Windows, Linux) |
| Assigned to: | CPU Architecture: | Any | |
[7 Apr 2010 6:49]
MySQL Verification Team
crashed on an update too, without shutting down server or killing anything. ha_innodb_plugin.dll!rw_lock_x_lock_low()[sync0rw.c:556] ha_innodb_plugin.dll!rw_lock_x_lock_func()[sync0rw.c:618] ha_innodb_plugin.dll!buf_page_get_gen()[buf0buf.c:2333] ha_innodb_plugin.dll!fsp_get_space_header()[fsp0fsp.c:373] ha_innodb_plugin.dll!fseg_alloc_free_page_low()[fsp0fsp.c:2615] ha_innodb_plugin.dll!fseg_alloc_free_page_general()[fsp0fsp.c:2878] ha_innodb_plugin.dll!btr_page_alloc()[btr0btr.c:389] ha_innodb_plugin.dll!btr_page_split_and_insert()[btr0btr.c:1945] ha_innodb_plugin.dll!btr_cur_pessimistic_insert()[btr0cur.c:1412] ha_innodb_plugin.dll!btr_cur_pessimistic_update()[btr0cur.c:2317] ha_innodb_plugin.dll!row_upd_clust_rec()[row0upd.c:1737] ha_innodb_plugin.dll!row_upd_clust_step()[row0upd.c:1944] ha_innodb_plugin.dll!row_upd()[row0upd.c:2021] ha_innodb_plugin.dll!row_upd_step()[row0upd.c:2152] ha_innodb_plugin.dll!row_update_for_mysql()[row0mysql.c:1384] ha_innodb_plugin.dll!ha_innodb::update_row()[ha_innodb.cc:4699] mysqld.exe!handler::ha_update_row()[handler.cc:4671] mysqld.exe!mysql_update()[sql_update.cc:647] mysqld.exe!mysql_execute_command()[sql_parse.cc:3067] mysqld.exe!mysql_parse()[sql_parse.cc:5975] mysqld.exe!dispatch_command()[sql_parse.cc:1235] mysqld.exe!do_command()[sql_parse.cc:878] mysqld.exe!handle_one_connection()[sql_connect.cc:1127] mysqld.exe!pthread_start()[my_winthread.c:85] mysqld.exe!_callthreadstart()[thread.c:293] t 04B8F318=update t1 set data=substring(data,1,length(data)-1)
[8 Apr 2010 10:35]
Marko Mäkelä
This might share a common cause with Bug #52360.
[9 Apr 2010 17:40]
Sveta Smirnova
Thank you for the feedback.
Crash repeatable on Linux, but with different trace:
Thread 2 (Thread 1231358272 (LWP 24351)):
#0 0x00000034292c6952 in __select_nocancel () from /lib64/libc.so.6
#1 0x00002aaaaab47a0b in os_thread_sleep (tm=500000) at os/os0thread.c:295
#2 0x00002aaaaaaea291 in buf_LRU_get_free_block (zip_size=0) at buf/buf0lru.c:976
#3 0x00002aaaaaae4317 in buf_page_get_gen (space=2, zip_size=8192, offset=8193, rw_latch=2, guess=0x0, mode=10, file=0x2aaaaabb93a8 "ibuf/ibuf0ibuf.c", line=3208, mtr=0x4964c900) at buf/buf0buf.c:2168
#4 0x00002aaaaab2a58a in ibuf_bitmap_get_map_page_func (space=2, page_no=10299, zip_size=8192, file=0x2aaaaabb93a8 "ibuf/ibuf0ibuf.c", line=3208, mtr=0x4964c900) at ibuf/ibuf0ibuf.c:745
---Type <return> to continue, or q <return> to quit---
#5 0x00002aaaaab2e1b1 in ibuf_merge_or_delete_for_page (block=0x0, space=2, page_no=10299, zip_size=8192, update_ibuf_bitmap=1) at ibuf/ibuf0ibuf.c:3207
#6 0x00002aaaaaae58ae in buf_page_create (space=2, offset=10299, zip_size=8192, mtr=0x4964dbf0) at buf/buf0buf.c:3071
#7 0x00002aaaaab0d86c in fseg_alloc_free_page_low (space=2, zip_size=8192, seg_inode=0x2aaaabf980f2 "", hint=10299, direction=111 'o', mtr=0x4964dbf0) at fsp/fsp0fsp.c:2784
#8 0x00002aaaaab0da69 in fseg_alloc_free_page_general (seg_header=0x2aaaab31404a "", hint=10299, direction=111 'o', has_done_reservation=1, mtr=0x4964dbf0) at fsp/fsp0fsp.c:2875
#9 0x00002aaaaaacbfc0 in btr_page_alloc (index=0x15b929b8, hint_page_no=10299, file_direction=111 'o', level=0, mtr=0x4964dbf0) at btr/btr0btr.c:388
#10 0x00002aaaaaace995 in btr_page_split_and_insert (cursor=0x15bed558, tuple=0x15c01860, n_ext=1, mtr=0x4964dbf0) at btr/btr0btr.c:1952
#11 0x00002aaaaaad475b in btr_cur_pessimistic_insert (flags=7, cursor=0x15bed558, entry=0x15c01860, rec=0x4964d430, big_rec=0x4964d438, n_ext=1, thr=0x0, mtr=0x4964dbf0) at btr/btr0cur.c:1418
#12 0x00002aaaaaad619b in btr_cur_pessimistic_update (flags=2, cursor=0x15bed558, heap=0x4964d838, big_rec=0x4964d830, update=0x15c00e50, cmpl_info=1, thr=0x15c01118, mtr=0x4964dbf0)
at btr/btr0cur.c:2318
#13 0x00002aaaaab866a9 in row_upd_clust_rec (node=0x15c00d48, index=0x15b929b8, thr=0x15c01118, mtr=0x4964dbf0) at row/row0upd.c:1731
#14 0x00002aaaaab86cff in row_upd_clust_step (node=0x15c00d48, thr=0x15c01118) at row/row0upd.c:1941
#15 0x00002aaaaab86eaa in row_upd (node=0x15c00d48, thr=0x15c01118) at row/row0upd.c:2018
#16 0x00002aaaaab87113 in row_upd_step (thr=0x15c01118) at row/row0upd.c:2149
#17 0x00002aaaaab73149 in row_update_for_mysql (mysql_rec=0x15c07160 "þx\\", prebuilt=0x15b89558) at row/row0mysql.c:1382
#18 0x00002aaaaab1a85e in ha_innodb::update_row (this=0x15c06f38, old_row=0x15c07160 "þx\\", new_row=0x15c07128 "þx\\") at handler/ha_innodb.cc:4999
#19 0x00000000007f28ca in handler::ha_update_row (this=0x15c06f38, old_data=0x15c07160 "þx\\", new_data=0x15c07128 "þx\\") at handler.cc:4671
#20 0x00000000007612d0 in mysql_update (thd=0x15bf67a8, table_list=0x15c04bf8, fields=@0x15bf8748, values=@0x15bf8b28, conds=0x0, order_num=0, order=0x0, limit=18446744073709551478,
handle_duplicates=DUP_ERROR, ignore=false) at sql_update.cc:645
#21 0x00000000006aa962 in mysql_execute_command (thd=0x15bf67a8) at sql_parse.cc:3067
#22 0x00000000006b365c in mysql_parse (thd=0x15bf67a8, inBuf=0x15c04ae8 "update t1 set data=substring(data,1,length(data)-1)", length=51, found_semicolon=0x4964fec0) at sql_parse.cc:5971
#23 0x00000000006a5c91 in dispatch_command (command=COM_QUERY, thd=0x15bf67a8, packet=0x15bf5a29 "update t1 set data=substring(data,1,length(data)-1)", packet_length=51) at sql_parse.cc:1233
#24 0x00000000006a4c48 in do_command (thd=0x15bf67a8) at sql_parse.cc:874
#25 0x00000000006a2f49 in handle_one_connection (arg=0x15bf67a8) at sql_connect.cc:1127
#26 0x0000003429e061b5 in start_thread () from /lib64/libpthread.so.0
#27 0x00000034292cd39d in clone () from /lib64/libc.so.6
#28 0x0000000000000000 in ?? ()
[10 Apr 2010 0:48]
Mikhail Izioumtchenko
If indeed this is the same as bug#52360, should be fixed in 1.0.7. Could you run the testcase with 5.1.46 which has Plugin 1.0.7?
[10 Apr 2010 9:25]
Sveta Smirnova
Michael, I tested with 1.0.7 plugin: 100409 18:23:04 InnoDB Plugin 1.0.7 started; log sequence number 6897633074
[12 Apr 2010 8:23]
Sveta Smirnova
See also bug #52756 Shane, please also try 1.0.7 plugin which included in 5.1.46 when you are able to.
[12 Apr 2010 8:25]
Marko Mäkelä
Sveta's crash is different (the 10-minute watchdog killing InnoDB), now filed as Bug #52756.
[30 Apr 2010 5:56]
MySQL Verification Team
duplicate of bug #52964
[1 May 2010 12:19]
MySQL Verification Team
also seen this exact assertion on the standard InnoDB Plugin 1.0.7 without any patches, using another testcase.

Description: during tests on a barracuda table, I shutdown server: Version: '5.1.45-enterprise-gpl-advanced' socket: '' port: 3306 MySQL Enterprise Server - Advanced Edition (GPL) 100406 20:04:47 [Note] mysqld: Normal shutdown 100406 20:04:49 InnoDB: Assertion failure in thread 22516 in file .\sync\sync0rw.c line 556 ha_innodb_plugin.dll!rw_lock_x_lock_low()[sync0rw.c:556] ha_innodb_plugin.dll!rw_lock_x_lock_func()[sync0rw.c:618] ha_innodb_plugin.dll!buf_page_get_gen()[buf0buf.c:2333] ha_innodb_plugin.dll!fsp_get_space_header()[fsp0fsp.c:373] ha_innodb_plugin.dll!fseg_alloc_free_page_low()[fsp0fsp.c:2615] ha_innodb_plugin.dll!fseg_alloc_free_page_general()[fsp0fsp.c:2878] ha_innodb_plugin.dll!btr_page_alloc()[btr0btr.c:389] ha_innodb_plugin.dll!btr_page_split_and_insert()[btr0btr.c:1945] ha_innodb_plugin.dll!btr_cur_pessimistic_insert()[btr0cur.c:1412] ha_innodb_plugin.dll!row_ins_index_entry_low()[row0ins.c:2094] ha_innodb_plugin.dll!row_ins_index_entry()[row0ins.c:2170] ha_innodb_plugin.dll!row_ins_index_entry_step()[row0ins.c:2245] ha_innodb_plugin.dll!row_ins()[row0ins.c:2377] ha_innodb_plugin.dll!row_ins_step()[row0ins.c:2492] ha_innodb_plugin.dll!row_insert_for_mysql()[row0mysql.c:1139] ha_innodb_plugin.dll!ha_innodb::write_row()[ha_innodb.cc:4408] mysqld.exe!handler::ha_write_row()[handler.cc:4650] mysqld.exe!write_record()[sql_insert.cc:1379] mysqld.exe!mysql_insert()[sql_insert.cc:835] mysqld.exe!mysql_execute_command()[sql_parse.cc:3183] mysqld.exe!mysql_parse()[sql_parse.cc:5975] mysqld.exe!dispatch_command()[sql_parse.cc:1235] mysqld.exe!do_command()[sql_parse.cc:878] mysqld.exe!handle_one_connection()[sql_connect.cc:1127] mysqld.exe!pthread_start()[my_winthread.c:85] mysqld.exe!_callthreadstart()[thread.c:293] How to repeat: we'll see.