Bug #75245 | Segfault on large row purge in main thread on startup | ||
---|---|---|---|
Submitted: | 17 Dec 2014 14:16 | Modified: | 24 Dec 2014 10:05 |
Reporter: | Tyler Mitchell | Email Updates: | |
Status: | Duplicate | Impact on me: | |
Category: | MySQL Server: InnoDB storage engine | Severity: | S1 (Critical) |
Version: | 5.5.41, 5.6.22, 5.6.23 | OS: | Linux (x86_64) |
Assigned to: | CPU Architecture: | Any | |
Tags: | 139, ib_warn_row_too_big, innodb, purge |
[17 Dec 2014 14:16]
Tyler Mitchell
[17 Dec 2014 14:16]
Tyler Mitchell
Stack trace
Attachment: bt_ib_warn_row_too_big_segv.txt (text/plain), 5.90 KiB.
[17 Dec 2014 14:17]
Tyler Mitchell
my.cnf
Attachment: mycnf_ib_warn_row_too_big_segv.txt (text/plain), 2.25 KiB.
[17 Dec 2014 15:12]
Tyler Mitchell
We have now received an instance of this occurring on 5.6.22 with an identical call stack. Reverting to 5.6.21 resolved the behavior.
[17 Dec 2014 19:58]
Tyler Mitchell
Adding steps to reproduce. Changing severity to critical as there is no known resolution except to downgrade a version.
[19 Dec 2014 19:22]
Sveta Smirnova
Thank you for the report. Verified as described using latest test case.
[21 Dec 2014 12:54]
MySQL Verification Team
Looks like duplicate of: https://bugs.mysql.com/bug.php?id=75095
[24 Dec 2014 10:05]
Thirunarayanan Balathandayuthapani
It is a duplicate of https://bugs.mysql.com/bug.php?id=75095
[20 May 2015 14:39]
Sergei Glushchenko
Please mark as fixed commit 901ce5314b6b0d4115b0237491e2afaafe5a274e Author: Thiru <thirunarayanan.balathandayuth@oracle.com> Commit: Thiru <thirunarayanan.balathandayuth@oracle.com> Bug #20144839 AFTER UPDATING TO MYSQL 5.6.22 SERVER CRASHES ON EVERY START ATTEMPT Description: ------------ push_warning_printf function is used to print the warning message to the client. So this function should not invoke while recovering the server. Moreover current_thd is NULL while starting the server. Solution: --------- - Avoiding the warning to be printed while recovery. This patch already pushed in mysql-5.6. diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index fab832d..676a20f 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -12102,6 +12102,10 @@ ib_warn_row_too_big(const dict_table_t* table) THD* thd = current_thd; + if (thd == NULL) { + return; + } + push_warning_printf( thd, MYSQL_ERROR::WARN_LEVEL_WARN, HA_ERR_TO_BIG_ROW, "Row size too large (> %lu). Changing some columns to TEXT"