Bug #7541 | Test failure: Hang in 'having' (using '--ps-protocol') | ||
---|---|---|---|
Submitted: | 27 Dec 2004 10:35 | Modified: | 23 Jan 2005 15:34 |
Reporter: | Joerg Bruehe | Email Updates: | |
Status: | Can't repeat | Impact on me: | |
Category: | MySQL Server | Severity: | S1 (Critical) |
Version: | 5.0.3-pre | OS: | Linux (Linux 2.4 / Athlon) |
Assigned to: | Konstantin Osipov | CPU Architecture: | Any |
[27 Dec 2004 10:35]
Joerg Bruehe
[27 Dec 2004 18:08]
Joerg Bruehe
I re-tried with a 'debug' binary, gave the run option '--debug', and I got the same result. Here is the end of 'master.trace': === cut === T@163851: <do_command T@163851: >dispatch_command T@163851: | >mysql_stmt_execute T@163851: | | exec_query:: select sum(col1) from t1 group by col_t1 having col_t1 in (select sum(t2.col1) from t2 group by t2.col2, t2.col1 having t2.col1 = col_t1) T@163851: | | >mysql_reset_thd_for_next_command T@163851: | | <mysql_reset_thd_for_next_command T@163851: | | >reset_stmt_for_execute T@163851: | | <reset_stmt_for_execute T@163851: | | >mysql_execute_command T@163851: | | | >mysql_reset_errors T@163851: | | | | >free_root T@163851: | | | | | enter: root: 0x8d3cb0c flags: 0 T@163851: | | | | <free_root T@163851: | | | <mysql_reset_errors T@163851: | | | >check_grant T@163851: | | | <check_grant T@163851: | | | >open_and_lock_tables T@163851: | | | | >open_tables T@163851: | | | | | >init_alloc_root T@163851: | | | | | | enter: root: 0xbe5ff17c T@163851: | | | | | | >_mymalloc T@163851: | | | | | | | enter: Size: 8040 T@163851: | | | | | | | exit: ptr: 0x8d63110 T@163851: | | | | | | <_mymalloc T@163851: | | | | | <init_alloc_root T@163851: | | | | | >open_table T@163851: | | | | | | >hash_search T@163851: | | | | | | | exit: found key at 1 T@163851: | | | | | | <hash_search T@163851: | | | | | <open_table T@163851: | | | | | >free_root T@163851: | | | | | | enter: root: 0xbe5ff17c flags: 1 T@163851: | | | | | <free_root T@163851: | | | | | >open_table T@163851: | | | | | | >hash_search T@163851: | | | | | | | exit: found key at 0 T@163851: | | | | | | <hash_search T@163851: | | | | | <open_table T@163851: | | | | | >free_root T@163851: | | | | | | enter: root: 0xbe5ff17c flags: 1 T@163851: | | | | | <free_root T@163851: | | | | | >free_root T@163851: | | | | | | enter: root: 0xbe5ff17c flags: 0 T@163851: | | | | | | >_myfree T@163851: | | | | | | | enter: ptr: 0x8d63110 T@163851: | | | | | | <_myfree T@163851: | | | | | <free_root T@163851: | | | | <open_tables T@163851: | | | | >mysql_lock_tables T@163851: | | | | | >_mymalloc T@163851: | | | | | | enter: Size: 32 T@163851: | | | | | | exit: ptr: 0x8d41ef8 T@163851: | | | | | <_mymalloc T@163851: | | | | | >lock_external T@163851: | | | | | | >mi_lock_database T@163851: | | | | | | | enter: lock_type: 0 old lock 2 r_locks: 0 w_locks: 0 global_changed: 1 open_count: 1 name: './test/t1.MYI' T@163851: | | | | | | | >my_raid_lock T@163851: | | | | | | | | enter: Fd: 18 start: 0 length: 0 MyFlags: 0 T@163851: | | | | | | | <my_raid_lock T@163851: | | | | | | <mi_lock_database T@163851: | | | | | | >mi_lock_database T@163851: | | | | | | | enter: lock_type: 0 old lock 2 r_locks: 0 w_locks: 0 global_changed: 1 open_count: 1 name: './test/t2.MYI' T@163851: | | | | | | | >my_raid_lock T@163851: | | | | | | | | enter: Fd: 20 start: 0 length: 0 MyFlags: 0 T@163851: | | | | | | | <my_raid_lock T@163851: | | | | | | <mi_lock_database T@163851: | | | | | <lock_external T@163851: | | | | | >thr_multi_lock T@163851: | | | | | | lock: data: 0x8d41f08 count: 2 T@163851: | | | | | | >thr_lock T@163851: | | | | | | | lock: data: 0x8d43144 thread: 163851 lock: 0x8d49960 type: 1 T@163851: | | | | | | | >check_locks T@163851: | | | | | | | <check_locks T@163851: | | | | | | | >mi_get_status T@163851: | | | | | | | | info: key_file: 1024 data_file: 120 T@163851: | | | | | | | <mi_get_status T@163851: | | | | | | | >check_locks T@163851: | | | | | | | <check_locks T@163851: | | | | | | <thr_lock T@163851: | | | | | | >thr_lock T@163851: | | | | | | | lock: data: 0x8d48cfc thread: 163851 lock: 0x8d656a0 type: 1 T@163851: | | | | | | | >check_locks T@163851: | | | | | | | <check_locks T@163851: | | | | | | | >mi_get_status T@163851: | | | | | | | | info: key_file: 1024 data_file: 120 T@163851: | | | | | | | <mi_get_status T@163851: | | | | | | | >check_locks T@163851: | | | | | | | <check_locks T@163851: | | | | | | <thr_lock T@163851: | | | | | <thr_multi_lock T@163851: | | | | <mysql_lock_tables T@163851: | | | <open_and_lock_tables T@163851: | | | >Query_cache::store_query T@163851: | | | <Query_cache::store_query T@163851: | | | >handle_select T@163851: | | | | >mysql_select T@163851: | | | | | >JOIN::prepare T@163851: | | | | | | >setup_tables T@163851: | | | | | | <setup_tables T@163851: | | | | | | >setup_fields T@163851: | | | | | | <setup_fields T@163851: | | | | | | >setup_without_group T@163851: | | | | | | | >setup_conds T@163851: | | | | | | | <setup_conds T@163851: | | | | | | <setup_without_group T@163851: | | | | | | >JOIN::prepare T@163851: | | | | | | | >setup_tables T@163851: | | | | | | | <setup_tables T@163851: | | | | | | | >setup_fields T@163851: | | | | | | | <setup_fields T@163851: | | | | | | | >setup_without_group T@163851: | | | | | | | | >setup_conds T@163851: | | | | | | | | <setup_conds T@163851: | | | | | | | <setup_without_group === end of file === With test option '--gdb', I got this backtrace: === cut === Program received signal SIGSEGV, Segmentation fault. 0x08127510 in Item_ref::fix_fields(THD*, st_table_list*, Item**) ( this=0x8d59cd0, thd=0x8d3bdb8, tables=0x8d59578, reference=0x8d59e0c) at item.cc:3028 3028 if (((*ref)->with_sum_func && name && (gdb) where #0 0x08127510 in Item_ref::fix_fields(THD*, st_table_list*, Item**) ( this=0x8d59cd0, thd=0x8d3bdb8, tables=0x8d59578, reference=0x8d59e0c) at item.cc:3028 #1 0x08138711 in Item_func::fix_fields(THD*, st_table_list*, Item**) ( this=0x8d59dc0, thd=0x8d3bdb8, tables=0x8d59578, ref=0x8d59f2c) at item_func.cc:312 #2 0x0814f43f in Item_cond::fix_fields(THD*, st_table_list*, Item**) ( this=0x8d59e80, thd=0x8d3bdb8, tables=0x8d59578, ref=0x8d5e6e8) at sql_list.h:323 #3 0x081effad in JOIN::prepare(Item***, st_table_list*, unsigned, Item*, unsigned, st_order*, st_order*, Item*, st_order*, st_select_lex*, st_select_lex_unit*) (this=0x8d5daa0, rref_pointer_array=0x8d5922c, tables_init=0x0, wild_num=0, conds_init=0x0, og_num=0, order_init=0x0, group_init=0x0, having_init=0x0, proc_param_init=0x0, select_lex_arg=0x0, unit_arg=0x8d59260) at sql_select.cc:333 #4 0x0817e3ef in subselect_single_select_engine::prepare() (this=0x8d59ab8) at item_subselect.cc:1130 #5 0x0817ad13 in Item_subselect::fix_fields(THD*, st_table_list*, Item**) ( this=0x8d483ac, thd_param=0x8d3bdb8, tables=0x0, ref=0x8d59ab8) at item_subselect.cc:144 #6 0x081effad in JOIN::prepare(Item***, st_table_list*, unsigned, Item*, unsigned, st_order*, st_order*, Item*, st_order*, st_select_lex*, st_select_lex_unit*) (this=0x8d59ab8, rref_pointer_array=0x8d484b0, tables_init=0x0, wild_num=0, conds_init=0x0, og_num=0, order_init=0x0, group_init=0x0, having_init=0x0, proc_param_init=0x0, select_lex_arg=0x8d483ac, unit_arg=0x8d481f0) at sql_select.cc:333 #7 0x081f489b in mysql_select(THD*, Item***, st_table_list*, unsigned, List<Item>&, Item*, unsigned, st_order*, st_order*, Item*, st_order*, unsigned long, select_result*, st_select_lex_unit*, st_select_lex*) (thd=0x8d3bdb8, rref_pointer_array=0x8d484b0, tables=0x8d58ea0, wild_num=0, fields=@0x0, conds=0x0, og_num=1, order=0x0, group=0x8d59078, having=0x8d59a18, proc_param=0x0, select_options=310659584, result=0x8d59ad8, unit=0x8d481f0, select_lex=0x8d483ac) at sql_select.cc:2015 #8 0x081efb06 in handle_select(THD*, st_lex*, select_result*) (thd=0x8d3bdb8, lex=0x8d481e4, result=0x8d59ad8) at sql_select.cc:221 #9 0x081c2a7e in mysql_execute_command(THD*) (thd=0x8d3bdb8) at sql_parse.cc:2191 #10 0x08217c97 in mysql_stmt_execute(THD*, char*, unsigned) (thd=0x8d3bdb8, packet=0x8d54c72 "", packet_length=0) at sql_prepare.cc:1916 #11 0x081c0eac in dispatch_command(enum_server_command, THD*, char*, unsigned) (command=COM_PROCESS_INFO, thd=0x8d3bdb8, packet=0x8d54c69 "E", packet_length=10) at sql_parse.cc:1477 #12 0x081c08c6 in do_command(THD*) (thd=0x8d3bdb8) at sql_parse.cc:1319 #13 0x081bfd22 in handle_one_connection (arg=0x0) at sql_parse.cc:1051 #14 0x40150c60 in pthread_start_thread () from /lib/libpthread.so.0 #15 0x40150cdf in pthread_start_thread_event () from /lib/libpthread.so.0 (gdb)
[23 Jan 2005 15:34]
Konstantin Osipov
I can't repeat this problem in the latest 5.0. I tried with --valgrind as well. It must have been fixed already.