| Bug #30562 | ALTER TABLE crashes mysqld when converting MyISAM table with TEXT field to ndb | ||
|---|---|---|---|
| Submitted: | 22 Aug 2007 12:41 | Modified: | 22 Aug 2007 12:52 |
| Reporter: | Hartmut Holzgraefe | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Cluster: Cluster (NDB) storage engine | Severity: | S2 (Serious) |
| Version: | mysql-5.0 | OS: | Linux |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | 5.0bk | ||
[22 Aug 2007 12:41]
Hartmut Holzgraefe
[22 Aug 2007 12:45]
Hartmut Holzgraefe
mysqltest test case
Attachment: bug30562.tgz (application/x-gtar, text), 967 bytes.
[22 Aug 2007 12:50]
Hartmut Holzgraefe
only affects 5.0, the 5.1 cluster blob implementation plays nice
error message in the mysqld error log:
mysqld: NdbBlob.cpp:1506: int NdbBlob::preCommit(): Assertion `theState == Active' failed.
070822 13:54:37 - mysqld got signal 6;
backtrace:
#0 0xffffe410 in __kernel_vsyscall ()
#1 0x4005b8b8 in pthread_kill () from /lib/tls/libpthread.so.0
#2 0x08397593 in write_core (sig=6) at stacktrace.c:244
#3 0x0821a946 in handle_segfault (sig=6) at mysqld.cc:2163
#4 <signal handler called>
#5 0xffffe410 in __kernel_vsyscall ()
#6 0x400fc541 in raise () from /lib/tls/libc.so.6
#7 0x400fddbb in abort () from /lib/tls/libc.so.6
#8 0x400f5925 in __assert_fail () from /lib/tls/libc.so.6
#9 0x084b2388 in NdbBlob::preCommit (this=0x8def968) at NdbBlob.cpp:1506
#10 0x08480ce4 in NdbTransaction::execute (this=0x8db6db8, aTypeOfExec=Commit,
abortOption=AbortOnError, forceSend=1) at NdbTransaction.cpp:328
#11 0x08341302 in execute_commit (thd=0x8d80868, trans=0x8db6db8)
at ha_ndbcluster.cc:270
#12 0x08330fae in ndbcluster_commit (thd=0x8d80868, all=false)
at ha_ndbcluster.cc:3953
#13 0x0830d042 in ha_commit_one_phase (thd=0x8d80868, all=false)
at handler.cc:749
#14 0x0830d71f in ha_commit_trans (thd=0x8d80868, all=false) at handler.cc:719
#15 0x0831091d in ha_enable_transaction (thd=0x8d80868, on=true)
at handler.cc:2171
#16 0x0834bc98 in copy_data_between_tables (from=0x8db8250, to=0x8dc3ec0,
create=@0x426ab260, ignore=false, order_num=0, order=0x0,
---Type <return> to continue, or q <return> to quit---
copied=0x426ab320, deleted=0x426ab318, keys_onoff=LEAVE_AS_IS)
at sql_table.cc:4114
#17 0x0834f04a in mysql_alter_table (thd=0x8d80868, new_db=0x8db9998 "test",
new_name=0x8db97d0 "t1", create_info=0x426ab5e4, table_list=0x8db97f8,
alter_info=0x426abb84, order_num=0, order=0x0, ignore=false)
at sql_table.cc:3719
#18 0x08239bf2 in mysql_execute_command (thd=0x8d80868) at sql_parse.cc:3248
#19 0x08240571 in mysql_parse (thd=0x8d80868,
inBuf=0x8db9778 "ALTER TABLE t1 ENGINE = ndb", length=27)
at sql_parse.cc:5931
#20 0x0824102a in dispatch_command (command=COM_QUERY, thd=0x8d80868,
packet=0x8db1719 "ALTER TABLE t1 ENGINE = ndb", packet_length=28)
at sql_parse.cc:1798
#21 0x0824254d in do_command (thd=0x8d80868) at sql_parse.cc:1577
#22 0x08242a3a in handle_one_connection (arg=0x8d80868) at sql_parse.cc:1191
#23 0x40058297 in start_thread () from /lib/tls/libpthread.so.0
#24 0x4019337e in clone () from /lib/tls/libc.so.6
#25 0x426acbb0 in ?? ()
[22 Aug 2007 13:00]
Hartmut Holzgraefe
Additional note: even when starting with a NDB table right away instead of a MyISAM one mysqld crashes on the final ALTER TABLE t1 ENGINE=NDB; which now should only be a simple copy operation from/to cluster ...
