Bug #14212 BDB: Server crash after COMMIT + ALTER TABLE

Submitted: 21 Oct 2005 15:46 Modified: 18 Jan 2006 18:26
Reporter: Georg Richter Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: BDB Severity:S1 (Critical)
Version:5.0.15 OS:Linux (Linux)
Assigned to: Jim Winstead CPU Architecture:Any

[21 Oct 2005 15:46] Georg Richter
Description:
see how to repeat.

Backtrace:
(gdb) bt
#0  0x083bb80c in __txn_commit (txnp=0x8eb0db0, flags=0) at ../../bdb/txn/txn.c:459
#1  0x083bad13 in txn_commit (txnp=0x8eb0db0, flags=0) at ../../bdb/txn/txn.c:151
#2  0x082c5de0 in berkeley_commit (thd=0x8e82a58, all=false) at ha_berkeley.cc:261
#3  0x082b902c in ha_commit_one_phase (thd=0x8e82a58, all=false) at handler.cc:734
#4  0x082b8e88 in ha_commit_trans (thd=0x8e82a58, all=false) at handler.cc:704
#5  0x082ff0b8 in copy_data_between_tables (from=0x8e6b520, to=0x8eb0e38, create=@0x4b475000, handle_duplicates=DUP_ERROR, ignore=false, order_num=0,
    order=0x0, copied=0x4b476008, deleted=0x4b476000) at sql_table.cc:4011
#6  0x082fde00 in mysql_alter_table (thd=0x8e82a58, new_db=0x8e844a0 "test", new_name=0x8eb3bc8 "t1", create_info=0x8e82fc0, table_list=0x8eb3bf0,
    fields=@0x8e82ee8, keys=@0x8e82edc, order_num=0, order=0x0, handle_duplicates=DUP_ERROR, ignore=false, alter_info=0x8e83104, do_send_ok=true)
    at sql_table.cc:3629
#7  0x081f9dc2 in mysql_execute_command (thd=0x8e82a58) at sql_parse.cc:3012
#8  0x0820158d in mysql_parse (thd=0x8e82a58, inBuf=0x8eb3b68 "ALTER TABLE t1 ADD PRIMARY KEY(a)", length=33) at sql_parse.cc:5521
#9  0x081f6a0d in dispatch_command (command=COM_QUERY, thd=0x8e82a58, packet=0x8eabb09 "ALTER TABLE t1 ADD PRIMARY KEY(a)", packet_length=34)
    at sql_parse.cc:1697
#10 0x081f61e6 in do_command (thd=0x8e82a58) at sql_parse.cc:1498
#11 0x081f5263 in handle_one_connection (arg=0x8e82a58) at sql_parse.cc:1143
#12 0x4016f9dd in start_thread () from /lib/tls/libpthread.so.0
#13 0x4029affa in clone () from /lib/tls/libc.so.6

How to repeat:
SET AUTOCOMMIT=0;
CREATE TABLE bdb_test (a int) ENGINE=BDB;
COMMIT;
/* the following statement crashes the server */
ALTER TABLE bdb_test ADD PRIMARY KEY(a);
[21 Oct 2005 16:27] MySQL Verification Team
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.16-debug

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SET AUTOCOMMIT=0;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE bdb_test (a int) ENGINE=BDB;
Query OK, 0 rows affected (0.48 sec)

mysql> COMMIT;
Query OK, 0 rows affected (0.00 sec)

mysql> ALTER TABLE bdb_test ADD PRIMARY KEY(a);
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql>
[26 Oct 2005 0: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/internals/31475
[9 Dec 2005 23:00] 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/internals/33197
[9 Jan 2006 16:17] Jim Winstead
Fixed in 5.0.19 and 5.1.5.
[18 Jan 2006 18:26] Mike Hillyer
Added to 5.0.19 and 5.1.5 changelogs:

<listitem>
        <para>
          A <literal>COMMIT</literal> statement followed by a
          <literal>ALTER TABLE</literal> statement on a BDB table caused
          server crash. (Bug #14212)
        </para>
      </listitem>

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.041 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.