Bug #12706 assert in multithread environment during execution of view related statements
Submitted: 21 Aug 2005 20:20 Modified: 22 Aug 2005 20:37
Reporter: Alexey Stroganov Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server Severity:S2 (Serious)
Version:the latest 5.0.12pre OS:Linux (Linux)
Assigned to: CPU Architecture:Any

[21 Aug 2005 20:20] Alexey Stroganov
Description:
Running  3 different test cases from funcs_1/view test  in multithread environment(stress test) for some time (1-2 mins) will lead to assert:

mysqld: sql_class.cc:1842: void THD::restore_backup_open_tables_state(Open_tables_state*): Assertion `open_tables == 0 && temporary_tables == 0 && handler_tables == 0 && derived_tables == 0 && lock == 0 && locked_tables == 0 && prelocked_mode == NON_PRELOCKED' failed.
[Thread 1116535728 (zombie) exited]

Program received signal SIGABRT, Aborted.
[Switching to Thread 1119230896 (LWP 8166)]
0xffffe410 in ?? ()
(gdb) bt
#0  0xffffe410 in ?? ()
#1  0x42b5f4ac in ?? ()
#2  0x00000006 in ?? ()
#3  0x00001fe6 in ?? ()
#4  0x400e92c1 in raise () from /lib/tls/libc.so.6
#5  0x400eab75 in abort () from /lib/tls/libc.so.6
#6  0x400e2903 in __assert_fail () from /lib/tls/libc.so.6
#7  0x081849b3 in THD::restore_backup_open_tables_state (this=0x429084a0, backup=0x42b5f6d0)
    at sql_class.cc:1839
#8  0x0829a1c8 in get_all_tables (thd=0x429084a0, tables=0x8c93000, cond=0x0)
    at sql_show.cc:2111
#9  0x082a10eb in get_schema_tables_result (join=0x8c9a9e8) at sql_show.cc:3706
#10 0x081e8a11 in JOIN::exec (this=0x8c9a9e8) at sql_select.cc:1280
#11 0x081eb091 in mysql_select (thd=0x429084a0, rref_pointer_array=0x429087fc,
    tables=0x8c93000, wild_num=0, fields=@0x42908764, conds=0x0, og_num=0, order=0x0,
    group=0x0, having=0x0, proc_param=0x0, select_options=2726578688, result=0x8c94608,
    unit=0x429084f0, select_lex=0x429086e4) at sql_select.cc:2093
#12 0x081e5211 in handle_select (thd=0x429084a0, lex=0x429084e0, result=0x8c94608,
    setup_tables_done_option=0) at sql_select.cc:238
#13 0x081aa76c in mysql_execute_command (thd=0x429084a0) at sql_parse.cc:2429
#14 0x081b3235 in mysql_parse (thd=0x429084a0, inBuf=0x8c92900 "SHOW COLUMNS FROM v1",
    length=20) at sql_parse.cc:5439
#15 0x081a8825 in dispatch_command (command=COM_QUERY, thd=0x429084a0,
    packet=0x42927709 "SHOW COLUMNS FROM v1", packet_length=21) at sql_parse.cc:1659
#16 0x081a7ff2 in do_command (thd=0x429084a0) at sql_parse.cc:1458
#17 0x081a70d2 in handle_one_connection (arg=0x429084a0) at sql_parse.cc:1111
#18 0x4004aaa7 in start_thread () from /lib/tls/libpthread.so.0
#19 0x4017bc2e in clone () from /lib/tls/libc.so.6

Now I am working on isolation of cause of this issue and will add more information later.

How to repeat:
run stress test with test case above.

Until stress test will be integrated to regular mysql-test suite please contact
me and I will provide all necessary information.
[22 Aug 2005 20:37] Alexey Stroganov
Found that the same issue was already registered as BUG#12533