Description:
if there is not connection to ndb cluster (we did not run it) and we use mysql client to connect to directory where is tables of ndb cluster server crashes:
#0 0x40270571 in kill () from /lib/libc.so.6
#1 0x401922d1 in pthread_kill () from /lib/libpthread.so.0
#2 0x4019269b in raise () from /lib/libpthread.so.0
#3 0x40270308 in raise () from /lib/libc.so.6
#4 0x40271790 in abort () from /lib/libc.so.6
#5 0x085ca90a in safe_mutex_lock (mp=0x8807fe0, file=0x867bdae "ha_ndbcluster.cc", line=5281) at thr_mutex.c:104
#6 0x082eb3e0 in get_share (table_name=0xbf3fb9a0 "./test/t1") at ha_ndbcluster.cc:5281
#7 0x082e817c in ha_ndbcluster::open (this=0x8873300, name=0xbf3fb9a0 "./test/t1", mode=2, test_if_locked=2) at ha_ndbcluster.cc:4314
#8 0x082bc98a in handler::ha_open (this=0x8873300, name=0xbf3fb9a0 "./test/t1", mode=2, test_if_locked=2) at handler.cc:1369
#9 0x082301bf in openfrm (thd=0x8848b48, name=0xbf3fcc20 "./test/t1", alias=0x88753a8 "t1", db_stat=8231, prgflag=44, ha_open_flags=0, outparam=0x8831c58) at table.cc:913
#10 0x08225caa in open_unireg_entry (thd=0x8848b48, entry=0x8831c58, db=0x8834508 "test", name=0x88753a8 "t1", alias=0x88753a8 "t1", table_desc=0xbf3ff6f0, mem_root=0xbf3ff580) at sql_base.cc:1751
#11 0x08224788 in open_table (thd=0x8848b48, table_list=0xbf3ff6f0, mem_root=0xbf3ff580, refresh=0xbf3ff5ab, flags=0) at sql_base.cc:1297
#12 0x08226646 in open_tables (thd=0x8848b48, start=0xbf3ff604, counter=0xbf3ff5f4, flags=0) at sql_base.cc:2019
#13 0x08227097 in open_normal_and_derived_tables (thd=0x8848b48, tables=0xbf3ff6f0, flags=0) at sql_base.cc:2356
#14 0x0830a2f4 in mysqld_list_fields (thd=0x8848b48, table_list=0xbf3ff6f0, wild=0x88753b0 "") at sql_show.cc:555
#15 0x081f6f4d in dispatch_command (command=COM_FIELD_LIST, thd=0x8848b48, packet=0x886d344 "", packet_length=4) at sql_parse.cc:1832
#16 0x081f61c4 in do_command (thd=0x8848b48) at sql_parse.cc:1510
#17 0x081f523d in handle_one_connection (arg=0x8848b48) at sql_parse.cc:1155
#18 0x4018ef1b in pthread_start_thread () from /lib/libpthread.so.0
#19 0x4018ef9f in pthread_start_thread_event () from /lib/libpthread.so.0
#20 0x40301c0a in clone () from /lib/libc.so.6
(gdb)
How to repeat:
1) build server with ./BUILD/compile-pentium-debug-max
2) cd mysql-test
3) create file t/ndb_test.test (the name of file does matter, we need any name which start with ndb_*) which contain:
-- source include/have_ndb.inc
create table t1 (a int) engine=ndbcluster;
4) touch r/ndb_test.result
5) ./mysql-test-run ndb_test
it will create ndb table in the test database:
[bell@sanja mysql-test]$ ls var/master-data/test/
t1.frm t1.ndb
6) make sure that cluster is down:
killall ndb_mgmd
killall ndbd
7) ../sql/mysqld --no-defaults --basedir=. --datadir=./var/master-data --skip-innodb --skip-ndbcluster --skip-bdb --language=../sql/share/english/ --character-sets-dir=../sql/share/charsets/
8) from other console: ./client/mysql -u root test
server will be crashed