| Bug #39022 | Mysql randomly crashing in lock_sec_rec_cons_read_sees | ||
|---|---|---|---|
| Submitted: | 25 Aug 2008 23:02 | Modified: | 3 Dec 15:02 |
| Reporter: | Jonatas Cruz | ||
| Status: | Verified | ||
| Category: | Server: InnoDB | Severity: | S1 (Critical) |
| Version: | 5.0.67, 5.1.34, 5.1.38,5.1.41 | OS: | Any (2003 x64, linux x64, solaris, Mac OS X) |
| Assigned to: | Marko Mäkelä | Target Version: | |
| Tags: | crashing windows server x64 | ||
| Triage: | Needs Triage: D1 (Critical) | ||
[25 Aug 2008 23:02]
Jonatas Cruz
[26 Aug 2008 0:02]
Miguel Solorzano
According call stack provided resolving manually: 00750389, MYSQLD-NT.EXE, lock_sec_rec_cons_read_sees, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\innobase\lock\lock0lock.c line 569 00710316, MYSQLD-NT.EXE, row_search_for_mysql, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\innobase\row\row0sel.c line 3833 00449067, MYSQLD-NT.EXE, ha_innobase::general_fetch, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\ha_innodb.cc line 4036 00457B89, MYSQLD-NT.EXE, handler::read_multi_range_next, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\handler.cc line 2583 00503438, MYSQLD-NT.EXE, QUICK_RANGE_SELECT::get_next, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\opt_range.cc line 6872 0050B49C, MYSQLD-NT.EXE, QUICK_ROR_INTERSECT_SELECT::get_next, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\opt_range.cc line 6657 00518FF6, MYSQLD-NT.EXE, rr_quick, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\records.cc line 224 005B784D, MYSQLD-NT.EXE, sub_select, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_select.cc line 10668 005D0F36, MYSQLD-NT.EXE, do_select, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_select.cc line 10426 005D2260, MYSQLD-NT.EXE, JOIN::exec, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_select.cc line 2106 005D2AA3, MYSQLD-NT.EXE, mysql_select, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_select.cc line 2287 005D30B8, MYSQLD-NT.EXE, handle_select, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_select.cc line 257 0059919D, MYSQLD-NT.EXE, mysql_execute_command, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_parse.cc line 2761 005A01D8, MYSQLD-NT.EXE, mysql_parse, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_parse.cc line 6234 005A1899, MYSQLD-NT.EXE, dispatch_command, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_parse.cc line 1900 005A2C47, MYSQLD-NT.EXE, do_command, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_parse.cc line 1595 005A2FC6, MYSQLD-NT.EXE, handle_one_connection, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\sql\sql_parse.cc line 1187 0068B669, MYSQLD-NT.EXE, pthread_start, c:\cygwin\home\mysqldev\build\mysql-5.0.67-winbuild\mysql-community-nt-5.0.67-build\mysys\my_winthread.c line 85 007D5C37, MYSQLD-NT.EXE, _callthreadstart, f:\rtm\vctools\crt_bld\self_64_amd64\crt\src\thread.c line 295 007D5D05, MYSQLD-NT.EXE, _threadstart, f:\rtm\vctools\crt_bld\self_64_amd64\crt\src\thread.c line 275 77D6B6DA, No module at that address, No function at that address,
[26 Aug 2008 5:39]
Valeriy Kravchuk
Please, send your my.ini file content. How much RAM and how many CPUs/cores do you have? Had you noted any specific queries/actions that lead to these crashes?
[26 Aug 2008 10:28]
Shane Bester
looks like trx->read_view was null?
Attachment: bug39022_readable_stack_trace.txt (text/plain), 1.08 KiB.
[26 Aug 2008 14:59]
Jonatas Cruz
Valeriy My my.ini file: ************************************************** [client] port=33306 [mysql] default-character-set=latin1 [mysqld] binlog-ignore-db=bpmail log-bin="D:/mysql/binlogs/Zeus" server-id=1 expire_logs_days=90 skip-name-resolve port=33306 basedir="C:/Program Files/MySQL/MySQL Server 5.0/" datadir="D:/mysql/databases/" default-character-set=latin1 default-storage-engine=MYISAM sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" max_allowed_packet=10M max_connections=1000 max_connect_errors=100 connect_timeout=30 wait_timeout=60 query_cache_size=300M table_cache=1M tmp_table_size=64M thread_cache_size=80 myisam_max_sort_file_size=100G myisam_max_extra_sort_file_size=100G myisam_sort_buffer_size=50M key_buffer_size=100M innodb_buffer_pool_size=2G read_buffer_size=4M sort_buffer_size=10M read_rnd_buffer_size=8M innodb_data_home_dir="D:/mysql/databases/" innodb_additional_mem_pool_size=6M innodb_flush_log_at_trx_commit=1 innodb_log_buffer_size=8M innodb_log_file_size=100M innodb_thread_concurrency=0 innodb_file_per_table ************************************************** The server has 8 GB RAM and 2 x Intel Xeon Quadcore E5335 (x64). It is a dedicated database server. There is not others applications running on. I not noted none query leading to the crash. Thanks Jonatas
[26 Aug 2008 15:01]
Jonatas Cruz
Shane I not understand your comment. Could you explain? Thanks Jonatas
[24 Oct 2008 14:19]
Heikki Tuuri
Looking more carefully, this might be yet another MRR bug: lock_sec_rec_cons_read_sees, lock0lock.c line 569 row_search_for_mysql, row0sel.c line 3833 ha_innobase::general_fetch, ha_innodb.cc line 4036 handler::read_multi_range_next, handler.cc line 2583 QUICK_RANGE_SELECT::get_next, opt_range.cc line 6872 QUICK_ROR_INTERSECT_SELECT::get_next, opt_range.cc line 6657 rr_quick, records.cc line 224 sub_select, sql_select.cc line 10668 do_select, sql_select.cc line 10426 JOIN::exec, sql_select.cc line 2106 mysql_select, sql_select.cc line 2287 handle_select, sql_select.cc line 257 mysql_execute_command, sql_parse.cc line 2761 mysql_parse, sql_parse.cc line 6234 dispatch_command, sql_parse.cc line 1900 do_command, sql_parse.cc line 1595 handle_one_connection, sql_parse.cc line 1187
[24 Oct 2008 14:41]
Heikki Tuuri
Marko analyzed that trx->read_view is probably NULL or points outside the memory bounds. It is unlikely to be NULL, because row_search_for_mysql() sets it to a non-NULL value.
[24 Oct 2008 18:36]
Calvin Sun
Did crashes always have the same call stack? Could you please provide the userdump when it crashes? You can follow the instructions described in this article - http://support.microsoft.com/kb/241215. Thanks, Calvin
[25 Nov 2008 1:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".
[26 Oct 6:18]
Shane Bester
suspect that bug #46175 is related..
[3 Dec 11:06]
Shane Bester
Saw a crash with this query: select a,b from t1 where c not in (select x from y) another thread was busy doing this at the same time: delete from y; I'll try make a testcase again.
[3 Dec 15:02]
Valeriy Kravchuk
Verified just as described in a recent test case from Shane with recent 5.1.42 from bzr on Mac OS X: 091203 16:00:29 - mysqld got signal 10 ; This could be because you hit a bug. It is also possible that this binary or one of the libraries it was linked against is corrupt, improperly built, or misconfigured. This error can also be caused by malfunctioning hardware. We will try our best to scrape up some info that will hopefully help diagnose the problem, but since we have already crashed, something is definitely wrong and this may fail. key_buffer_size=8384512 read_buffer_size=131072 max_used_connections=2 max_threads=151 threads_connected=2 It is possible that mysqld could use up to key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 337715 K bytes of memory Hope that's ok; if not, decrease some variables in the equation. thd: 0x1038c18 Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong... stack_bottom = 0xb026af64 thread_stack 0x30000 0 mysqld 0x00579d3e my_print_stacktrace + 44 1 mysqld 0x00100f78 handle_segfault + 836 2 libSystem.B.dylib 0x940472bb _sigtramp + 43 3 ??? 0xffffffff 0x0 + 4294967295 4 mysqld 0x003cc725 lock_clust_rec_cons_read_sees + 62 5 mysqld 0x0040d4e4 row_search_for_mysql + 5236 6 mysqld 0x00439dc6 _ZN11ha_innobase13general_fetchEPhjj + 242 7 mysqld 0x00439f7d _ZN11ha_innobase8rnd_nextEPh + 207 8 mysqld 0x00245096 _Z13rr_sequentialP11READ_RECORD + 110 9 mysqld 0x0018917c _Z18error_if_full_joinP4JOIN + 4142 10 mysqld 0x00189224 _Z16sub_select_cacheP4JOINP13st_join_tableb + 44 11 mysqld 0x00187fe1 _Z10sub_selectP4JOINP13st_join_tableb + 65 12 mysqld 0x00199b2d _ZN4JOIN9join_freeEv + 1687 13 mysqld 0x001ac1eb _ZN4JOIN4execEv + 9451 14 mysqld 0x001a6c69 _Z12mysql_selectP3THDPPP4ItemP10TABLE_LISTjR4ListIS1_ES2_jP8st_orderSB_S2_SB_yP13select_resultP18st_select_lex_unitP13st_select_lex + 879 15 mysqld 0x001ac571 _Z13handle_selectP3THDP6st_lexP13select_resultm + 569 16 mysqld 0x001129cc _Z15update_precheckP3THDP10TABLE_LIST + 1150 17 mysqld 0x00115016 _Z21mysql_execute_commandP3THD + 2936 18 mysqld 0x0011ead1 _Z11mysql_parseP3THDPKcjPS2_ + 625 19 mysqld 0x0011f897 _Z16dispatch_command19enum_server_commandP3THDPcj + 3063 20 mysqld 0x00120c5c _Z10do_commandP3THD + 666 21 mysqld 0x0010b5e2 handle_one_connection + 372 22 libSystem.B.dylib 0x9400c095 _pthread_start + 321 23 libSystem.B.dylib 0x9400bf52 thread_start + 34 Trying to get some variables. Some pointers may be invalid and cause the dump to abort... thd->query at 0x1079428 = select d from t2,t1 where d=(select max(a) from t1 where t1.a > t2.d) thd->thread_id=1 thd->killed=NOT_KILLED
