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]
Shane Bester
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"
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.062 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.