Bug #22819 | SHOW INNODB STATUS crashes the server with an assertion failure under high load | ||
---|---|---|---|
Submitted: | 29 Sep 2006 11:39 | Modified: | 18 Jun 2010 12:49 |
Reporter: | Mark Leith | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: InnoDB storage engine | Severity: | S1 (Critical) |
Version: | 4.0.26,4.1.22 | OS: | Linux (Linux) |
Assigned to: | Sunny Bains | CPU Architecture: | Any |
Tags: | assertion failure, crash, innodb, show innodb status |
[29 Sep 2006 11:39]
Mark Leith
[29 Sep 2006 11:40]
Mark Leith
(gdb) bt full #0 0xffffe410 in ?? () No symbol table info available. #1 0x445a070c in ?? () No symbol table info available. #2 0x0000000b in ?? () No symbol table info available. #3 0x081a2217 in write_core (sig=1074014264) at stacktrace.c:220 No locals. #4 0x08101e94 in handle_segfault (sig=1076452968) at mysqld.cc:1825 thd = (class THD *) 0x8a33310 #5 <signal handler called> No symbol table info available. #6 0x082625cf in lock_table_queue_validate (table=0x40295e68) at lock0lock.c:4196 lock = (ib_lock_t *) 0x89d59b0 is_waiting = 1 #7 0x082639ac in lock_validate () at lock0lock.c:4429 lock = (ib_lock_t *) 0x8c6eda8 trx = (trx_t *) 0x8c6eb78 limit = {high = 144913472, low = 144913472} space = 144913472 page_no = 147254136 i = 0 #8 0x08261f7f in lock_print_info (file=0x898c4b8) at lock0lock.c:4066 lock = (ib_lock_t *) 0x0 trx = (trx_t *) 0x0 space = 144913472 page_no = 144913472 load_page_first = 1 nth_trx = 38 nth_lock = 0 i = 0 mtr = {state = 0, memo = {heap = 0x0, used = 1074026304, data = "¸Ä\230\b\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000f\000\000\000\000\000\000\0006.3\b¸Ä\230\b\000\000\000\000\000\000\000\000~ì\232\027\205Êè@\000\000\000\000\000\000\000\000@W\004@¸Ä\230\b\000\000\000\000\000\000\000\000@W\004@¸Ä\230\b\000\000\000\000\000\000\000\000@W\004@¸Ä\230\b\000\000\000\000\000---Type <return> to continue, or q <return> to quit--- \000\000\000x\vZD¨8)\b\033\000\000\000\002\000\000\000d\000\000\000¼\vZD°\vZDb\020ZD`\020ZD", '\0' <repeats 12 times>, "¨\vZD¨8)\b\032\000\000\000è\211R\b¸\vZD¨8)\b\032\000\000\000è\211R\b´\vZD\b\213R\bà\2026\bh\a"..., base = {count = 136919208, start = 0x13, end = 0x85289e8}, list = {prev = 0x917fe38, next = 0x8528ab4}, buf_end = 0, magic_n = 17}, log = {heap = 0x445a0d28, used = 136919208, data = "\022\000\000\000è\211R\b8\rZD¨8)\b\022\000\000\000è\211R\b¨y\022\t¨\212R\b\000\000\000\000\020\000\000\000X\rZD¨8)\b\021\000\000\000è\211R\bh\rZD¨8)\b\021\000\000\000è\211R\bÈ® \b\234\212R\b\000\000\000\000\017\000\000\000\210\rZD¨8)\b\020\000\000\000è\211R\b\230\rZD¨8)\b\020\000\000\000è\211R\b\220\rZD\220\212R\b\000\000\000\000\016\000\000\000¸\rZD¨8)\b\017\000\000\000è\211R\bÈ\rZD¨8)\b\017\000\000\000è\211R\b\030\016ZD\204\212R\b\000\000\000\000\r\000\000\000è\rZD¨8)\b\016\000\000\000è\211R\b"..., base = {count = 137992132, start = 0x835b093, end = 0x269}, list = {prev = 0x0, next = 0x0}, buf_end = 0, magic_n = 1146752824}, modifications = 136849326, n_log_recs = 137992132, log_mode = 1146756016, start_lsn = {high = 144913472, low = 1146752856}, end_lsn = {high = 1074903665, low = 137992128}, magic_n = 1146752856} #9 0x081a6b20 in srv_printf_innodb_monitor (file=0x898c4b8) at srv0srv.c:1475 time_elapsed = 52.000999999999998 current_time = 0 n_reserved = 0 #10 0x08173e2b in innodb_show_status (thd=0x8a33310) at ha_innodb.cc:4824 packet = (class String *) 0x8a337bc trx = (trx_t *) 0x0 _db_func_ = 0x0 _db_file_ = 0x8377088 "\"£\017\b^£\017\bþ" _db_level_ = 0 _db_framep_ = (char **) 0x0 flen = 149543992 str = 0x9221318 "\003insert into csc11683 (name) values ('discriminants')" field_list = {<base_list> = {<Sql_alloc> = {<No data fields>}, first = 0x8ca07b0, last = 0x8ca07b0, elements = 1}, <No data fields>} #11 0x0811037c in mysql_execute_command () at sql_parse.cc:1598 res = 0 thd = (class THD *) 0x8a33310 lex = (LEX *) 0x8a33440 tables = (TABLE_LIST *) 0x0 select_lex = (SELECT_LEX *) 0x8a3344c slave_fake_lock = false fake_prev_lock = (MYSQL_LOCK *) 0x0 _db_func_ = 0x4012a115 "\201Ãß.\v" _db_file_ = 0x48 <Address 0x48 out of bounds> _db_level_ = 1075701816 ---Type <return> to continue, or q <return> to quit--- _db_framep_ = (char **) 0x92e5f68 #12 0x0811395b in mysql_parse (thd=0x8a33310, inBuf=0x8a33440 "\001", length=18) at sql_parse.cc:3087 lex = (LEX *) 0x8a33440 _db_func_ = 0x2000 <Address 0x2000 out of bounds> _db_file_ = 0x12 <Address 0x12 out of bounds> _db_level_ = 144913168 _db_framep_ = (char **) 0x445a1338 #13 0x0810f163 in dispatch_command (command=COM_QUERY, thd=0x8a33310, packet=0x8d37401 "show innodb status", packet_length=18) at sql_parse.cc:1089 pos = 0x0 net = (NET *) 0x8a3331c error = false slow_command = false _db_func_ = 0x2 <Address 0x2 out of bounds> _db_file_ = 0x445a1210 "\aP\b" _db_level_ = 0 _db_framep_ = (char **) 0x393e20 start_of_query = 8192 #14 0x0810ebbe in do_command (thd=0x8a33310) at sql_parse.cc:959 packet = 0x8d37400 "\003show innodb status" old_timeout = 30 packet_length = 19 net = (NET *) 0x8a3331c command = COM_QUERY _db_func_ = 0x80e7542 "ÇC\034ôt\016\b\203Ä\020\213]üÉÃ\220U\211å\203ì\024ÿ5L=9\bè\rVýÿ\203Ä\bÿu\bPèÐ\230\037" _db_file_ = 0x8a33aa8 "\bÑç\b" _db_level_ = 8192 _db_framep_ = (char **) 0x1000 #15 0x0810e2da in handle_one_connection (arg=0x0) at sql_parse.cc:743 error = 1075701652 net = (NET *) 0x8a3331c thd = (class THD *) 0x8a33310 launch_time = 0 set = {__val = {0 <repeats 32 times>}} #16 0x4003faa7 in pthread_create () from /lib/tls/libpthread.so.0 ---Type <return> to continue, or q <return> to quit--- No symbol table info available. #17 0x40181c2e in clone () from /lib/tls/libc.so.6 No symbol table info available.
[29 Sep 2006 11:49]
Heikki Tuuri
Hmm... maybe we have too strict a debug assertion there. --Heikki
[30 Sep 2006 15:31]
MySQL Verification Team
testcase....
Attachment: testcase.c (text/x-csrc), 23.08 KiB.
[30 Sep 2006 15:42]
MySQL Verification Team
the testcase.c crashed my 4.1BK also.
Attachment: stack.4.1.22.txt (text/plain), 4.03 KiB.
[2 Oct 2006 6:49]
MySQL Verification Team
currently, i'm only able to get the debug build of 4.1 to crash. non-debug seems not to crash.
[16 Oct 2006 13:36]
Elliot Murphy
crash is P1
[8 Nov 2006 15:18]
Heikki Tuuri
Hi! The assertion is checked in the debug version. The assertion simply is too strong. It is well possible that there is a waiting lock request in the queue (for example, on record R1) while there is a granted lock request behind it (for example, on the gap before R1). Sunny, please remove the is_waiting code from the function below in 5.0 and 5.1. Regards, Heikki lock0lock.c in 5.0: /************************************************************************* Validates the lock queue on a table. */ ibool lock_table_queue_validate( /*======================*/ /* out: TRUE if ok */ dict_table_t* table) /* in: table */ { lock_t* lock; ibool is_waiting; #ifdef UNIV_SYNC_DEBUG ut_ad(mutex_own(&kernel_mutex)); #endif /* UNIV_SYNC_DEBUG */ is_waiting = FALSE; lock = UT_LIST_GET_FIRST(table->locks); while (lock) { ut_a(((lock->trx)->conc_state == TRX_ACTIVE) || ((lock->trx)->conc_state == TRX_PREPARED) || ((lock->trx)->conc_state == TRX_COMMITTED_IN_MEMORY)); if (!lock_get_wait(lock)) { ut_a(!is_waiting); ut_a(!lock_table_other_has_incompatible(lock->trx, 0, table, lock_get_mode(lock))); } else { is_waiting = TRUE; ut_a(lock_table_has_to_wait_in_queue(lock)); } lock = UT_LIST_GET_NEXT(un_member.tab_lock.locks, lock); } return(TRUE); }
[12 Jul 2007 17:55]
Timothy Smith
Queued to 5.0- and 5.1-maint team tree(s)
[19 Jul 2007 15:48]
Bugs System
Pushed into 5.1.21-beta
[19 Jul 2007 15:50]
Bugs System
Pushed into 5.0.48
[22 Jul 2007 18:12]
Paul DuBois
Noted in 5.0.48, 5.1.21 changelogs. SHOW INNODB STATUS caused an assertion failure under high load.
[5 May 2010 15:22]
Bugs System
Pushed into 5.1.47 (revid:joro@sun.com-20100505145753-ivlt4hclbrjy8eye) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[6 May 2010 2:27]
Paul DuBois
Push resulted from incorporation of InnoDB tree. No changes pertinent to this bug. Re-closing.
[28 May 2010 6:04]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100524190136-egaq7e8zgkwb9aqi) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (pib:16)
[28 May 2010 6:32]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100524190941-nuudpx60if25wsvx) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[28 May 2010 7:00]
Bugs System
Pushed into 5.5.5-m3 (revid:alik@sun.com-20100524185725-c8k5q7v60i5nix3t) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[29 May 2010 2:49]
Paul DuBois
Push resulted from incorporation of InnoDB tree. No changes pertinent to this bug. Re-closing.
[17 Jun 2010 12:08]
Bugs System
Pushed into 5.1.47-ndb-7.0.16 (revid:martin.skold@mysql.com-20100617114014-bva0dy24yyd67697) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[17 Jun 2010 12:54]
Bugs System
Pushed into 5.1.47-ndb-6.2.19 (revid:martin.skold@mysql.com-20100617115448-idrbic6gbki37h1c) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)
[17 Jun 2010 13:35]
Bugs System
Pushed into 5.1.47-ndb-6.3.35 (revid:martin.skold@mysql.com-20100617114611-61aqbb52j752y116) (version source revid:vasil.dimov@oracle.com-20100331130613-8ja7n0vh36a80457) (merge vers: 5.1.46) (pib:16)