| Bug #27428 | Falcon: crash with two connections and use database | ||
|---|---|---|---|
| Submitted: | 25 Mar 2007 19:14 | Modified: | 13 Apr 2007 9:03 |
| Reporter: | Peter Gulutzan | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Falcon storage engine | Severity: | S1 (Critical) |
| Version: | '5.2.4-falcon-alpha-debug | OS: | Linux (SUSE 10.0 / 64-bit) |
| Assigned to: | CPU Architecture: | Any | |
[25 Mar 2007 19:27]
Hakan Küçükyılmaz
Verified as described. Backtrace is:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1146739632 (LWP 5354)]
0x084346d7 in NfsStorageTable::open (this=0x89f2240, name=0x89e7080 "./d/t", mode=2, test_if_locked=2)
at ha_falcon.cpp:384
384 storageTable = storageConnection->getStorageTable(storageShare);
(gdb) bt
#0 0x084346d7 in NfsStorageTable::open (this=0x89f2240, name=0x89e7080 "./d/t", mode=2, test_if_locked=2)
at ha_falcon.cpp:384
#1 0x08370233 in handler::ha_open (this=0x89f2240, table_arg=0x89d1e40, name=0x89e7080 "./d/t", mode=2,
test_if_locked=2) at handler.cc:1528
#2 0x082c3daf in open_table_from_share (thd=0x89d0808, share=0x89e6e28, alias=0x89f42f0 "t", db_stat=39,
prgflag=44, ha_open_flags=0, outparam=0x89d1e40, is_create_table=false) at table.cc:1535
#3 0x082bd42f in open_unireg_entry (thd=0x89d0808, entry=0x89d1e40, table_list=0x4459d15c,
alias=0x89f42f0 "t", cache_key=0x4459cbde "d", cache_key_length=4, mem_root=0x4459cce0, flags=0)
at sql_base.cc:2830
#4 0x082bf3f9 in open_table (thd=0x89d0808, table_list=0x4459d15c, mem_root=0x4459cce0, refresh=0x4459cd23,
flags=0) at sql_base.cc:2214
#5 0x082bfd32 in open_tables (thd=0x89d0808, start=0x4459cd94, counter=0x4459cd84, flags=0)
at sql_base.cc:3111
#6 0x082c00e5 in open_normal_and_derived_tables (thd=0x89d0808, tables=0x4459d15c, flags=0)
at sql_base.cc:3453
#7 0x0839f123 in mysqld_list_fields (thd=0x89d0808, table_list=0x4459d15c, wild=0x89f42f8 "")
at sql_show.cc:780
#8 0x08283a8d in dispatch_command (command=COM_FIELD_LIST, thd=0x89d0808, packet=0x89ec283 "",
packet_length=3) at sql_parse.cc:991
#9 0x082846a3 in do_command (thd=0x89d0808) at sql_parse.cc:662
#10 0x082728b2 in handle_one_connection (arg=0x89d0808) at sql_connect.cc:1089
#11 0x40284297 in start_thread () from /lib/tls/libpthread.so.0
#12 0x4021937e in clone () from /lib/tls/libc.so.6
#13 0x4459dbb0 in ?? ()
[6 Apr 2007 15:47]
Hakan Küçükyılmaz
Can't repeat with latest change set 1.2559, 2007-04-06. While procedure p() is running on T1 I do following on T2: [17:45] root@test>use d Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed No crash. Best regards, Hakan
[9 Apr 2007 18:55]
Peter Gulutzan
I confirm that I can't make it crash now.
[13 Apr 2007 9:03]
MC Brown
A note has been added to the 5.2.4 changelog.
[10 Jul 2007 19:09]
MC Brown
This bug report entry has been moved to the 6.0.0 Falcon changelog.

Description: If I am doing something to a Falcon table, and I use 'use database' on another connection, crash. How to repeat: There must be two connections, T1 and T2. On T1, start a mysql client and say: delimiter // use test create database d// use d create table t (s1 int) engine=falcon// create index i on t (s1)// create procedure p () begin declare v int default 0; while v < 50000 do if v mod 100 = 0 then select v; end if; insert into t values (v); set v = v + 1; end while; end// call p()// While this procedure is running, On T2, start a mysql client and say: use d At this point mysqld will crash.