Bug #31145 | ALTER TABLE DROP COLUMN, ADD COLUMN crashes (linux) or freezes (win) the server | ||
---|---|---|---|
Submitted: | 22 Sep 2007 14:09 | Modified: | 12 Mar 2010 17:54 |
Reporter: | Vladimir Kolesnikov | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: DDL | Severity: | S1 (Critical) |
Version: | 5.1.20, 5.1.43 | OS: | Any (windows/linux) |
Assigned to: | Georgi Kodinov | CPU Architecture: | Any |
[22 Sep 2007 14:09]
Vladimir Kolesnikov
[22 Sep 2007 15:15]
Vladimir Kolesnikov
one more test case: CREATE TABLE grtdiff_alter_test.t1 (`id` int(11) DEFAULT NULL, `id2` int(11) DEFAULT NULL, t TEXT) ENGINE=InnoDB DEFAULT CHARSET=latin1; ALTER TABLE `grtdiff_alter_test`.`t1` DROP COLUMN `t` , ADD COLUMN `t2` TEXT NULL AFTER `id2` ;
[22 Sep 2007 16:18]
MySQL Verification Team
Thank you for the bug report.
[26 Sep 2007 9:59]
Konstantin Osipov
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1257452656 (LWP 9264)] 0x0828bfd0 in Field_blob::max_data_length (this=0x0) at field.h:1402 1402 return (uint32) (((ulonglong) 1 << (packlength*8)) -1); (gdb) bt #0 0x0828bfd0 in Field_blob::max_data_length (this=0x0) at field.h:1402 #1 0x08274f0b in Field_blob::is_equal (this=0x90682c0, new_field=0x9041818) at field.cc:8004 #2 0x083e7b8e in compare_tables (table=0x9067610, alter_info=0xb50cb70c, create_info=0xb50cb42c, order_num=0, need_copy_table=0xb50ca2f4, key_info_buffer=0xb50ca318, index_drop_buffer=0xb50ca310, index_drop_count=0xb50ca314, index_add_buffer=0xb50ca308, index_add_count=0xb50ca30c) at sql_table.cc:5031 #3 0x083ed9bc in mysql_alter_table (thd=0x8ffb1d0, new_db=0x903b7b0 "grtdiff_alter_test", new_name=0x903fb30 "t1", create_info=0xb50cb42c, table_list=0x9041478, alter_info=0xb50cb70c, order_num=0, order=0x0, ignore=false) at sql_table.cc:6082 #4 0x082bf5f6 in mysql_execute_command (thd=0x8ffb1d0) at sql_parse.cc:2474 #5 0x082c6d1e in mysql_parse (thd=0x8ffb1d0, inBuf=0x9068070 "ALTER TABLE `grtdiff_alter_test`.`t1` DROP COLUMN `t` , ADD COLUMN `t2` TEXT NULL FIRST", length=89, found_semicolon=0xb50cc074) at sql_parse.cc:5457 #6 0x082c7957 in dispatch_command (command=COM_QUERY, thd=0x8ffb1d0, packet=0x9037791 "ALTER TABLE `grtdiff_alter_test`.`t1` DROP COLUMN `t` , ADD COLUMN `t2` TEXT NULL FIRST", packet_length=90) at sql_parse.cc:958 #7 0x082c8ca3 in do_command (thd=0x8ffb1d0) at sql_parse.cc:717 #8 0x082b5d07 in handle_one_connection (arg=0x8ffb1d0) at sql_connect.cc:1094 #9 0xb7eee31b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #10 0xb7df257e in clone () from /lib/tls/i686/cmov/libc.so.6
[24 Oct 2007 15:57]
Georgi Kodinov
I've tried to reproduce using the latest 5.0.52 (BK). I've been able to execute all statements without hangs or crashes. I also noted that one of the functions in the quoted call-stack is not present already. Please re-test with a recent version and re-open this bug if it still crashes.
[9 Dec 2009 20:30]
Kevin Regan
I'm able to reproduce this with 5.1.41. Notice that the bug was filed against 5.1, but you tried to repro it against 5.0 (could have been found and fixed a couple of years ago). Splitting this into 2 ALTER TABLE statements with separate DROP and ADD works (server does not crash).
[10 Dec 2009 6:16]
MySQL Verification Team
still repeatable on 5.1.43-debug from bzr. Invalid read of size 4 at : Field_blob::is_equal(Create_field*) (field.cc:8286) by : compare_tables (sql_table.cc:5741) by : mysql_alter_table (sql_table.cc:6850) by : mysql_execute_command(THD*) (sql_parse.cc:2898) by : mysql_parse (sql_parse.cc:5970) by : dispatch_command (sql_parse.cc:1231) by : do_command(THD*) (sql_parse.cc:872) by : handle_one_connection (sql_connect.cc:1127) by : start_thread (in /lib/libpthread-2.5.so) by : clone (in /lib/libc-2.5.so) Address 0x0 is not stack'd, malloc'd or (recently) free'd
[10 Dec 2009 9:52]
Georgi Kodinov
I'm getting the crash on the latest. 5.1.
[10 Dec 2009 11:55]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/93484 3254 Georgi Kodinov 2009-12-10 Bug #31145: ALTER TABLE DROP COLUMN, ADD COLUMN crashes (linux) or freezes (win) the server The check for equality was assuming the field object is always created. If it's not it was de-referencing a NULL pointer. Fixed to use the data in the create object instead.
[18 Dec 2009 12:01]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/94936 3254 Georgi Kodinov 2009-12-18 Bug #31145: ALTER TABLE DROP COLUMN, ADD COLUMN crashes (linux) or freezes (win) the server The check for equality was assuming the field object is always created. If it's not it was de-referencing a NULL pointer. Fixed to use the data in the create object instead.
[24 Dec 2009 8:33]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/95651 3297 Georgi Kodinov 2009-12-18 Bug #31145: ALTER TABLE DROP COLUMN, ADD COLUMN crashes (linux) or freezes (win) the server The check for equality was assuming the field object is always created. If it's not it was de-referencing a NULL pointer. Fixed to use the data in the create object instead.
[15 Jan 2010 9:00]
Bugs System
Pushed into 5.1.43 (revid:joro@sun.com-20100115085139-qkh0i0fpohd9u9p5) (version source revid:joro@sun.com-20091218120030-zwz6r364ayxx5q83) (merge vers: 5.1.42) (pib:16)
[16 Jan 2010 1:38]
Paul DuBois
Noted in 5.1.43 changelog. ALTER TABLE with both DROP COLUMN and ADD COLUMN clauses could crash or lock up the server. Setting report to NDI pending push to 5.5.x+.
[5 Feb 2010 11:47]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100204063540-9czpdmpixi3iw2yb) (version source revid:alik@sun.com-20100119163614-172adculixyu26j5) (pib:16)
[5 Feb 2010 11:53]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100205113942-oqovjy0eoqbarn7i) (version source revid:alik@sun.com-20100204064210-ljwanqvrjs83s1gq) (merge vers: 6.0.14-alpha) (pib:16)
[5 Feb 2010 11:59]
Bugs System
Pushed into 5.5.2-m2 (revid:alik@sun.com-20100203172258-1n5dsotny40yufxw) (version source revid:alexey.kopytov@sun.com-20091225105650-qletdbs0wz9sx5nc) (merge vers: 5.5.1-m2) (pib:16)
[5 Feb 2010 16:47]
Paul DuBois
Noted in 5.5.2, 6.0.14 changelogs. Setting report to Need Merge pending push into Celosia.
[12 Mar 2010 14:19]
Bugs System
Pushed into 5.1.44-ndb-7.0.14 (revid:jonas@mysql.com-20100312135944-t0z8s1da2orvl66x) (version source revid:jonas@mysql.com-20100312115609-woou0te4a6s4ae9y) (merge vers: 5.1.44-ndb-7.0.14) (pib:16)
[12 Mar 2010 14:34]
Bugs System
Pushed into 5.1.44-ndb-6.2.19 (revid:jonas@mysql.com-20100312134846-tuqhd9w3tv4xgl3d) (version source revid:jonas@mysql.com-20100312060623-mx6407w2vx76h3by) (merge vers: 5.1.44-ndb-6.2.19) (pib:16)
[12 Mar 2010 14:50]
Bugs System
Pushed into 5.1.44-ndb-6.3.33 (revid:jonas@mysql.com-20100312135724-xcw8vw2lu3mijrhn) (version source revid:jonas@mysql.com-20100312103652-snkltsd197l7q2yg) (merge vers: 5.1.44-ndb-6.3.33) (pib:16)
[12 Mar 2010 17:54]
Paul DuBois
Fixed in earlier 5.1.x, 5.5.x.