| Bug #12162 | XA transactions and recovery - problem with transaction IDs | ||
|---|---|---|---|
| Submitted: | 25 Jul 2005 19:33 | Modified: | 16 Aug 2005 4:10 |
| Reporter: | Tonda David | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server | Severity: | S3 (Non-critical) |
| Version: | 5.07 | OS: | Linux (Linux (Fedora core3 / Red Hat)) |
| Assigned to: | Sergei Golubchik | CPU Architecture: | Any |
[25 Jul 2005 19:33]
Tonda David
[26 Jul 2005 6:54]
Jan Lindström
Thank you for your bug report. I was able to repeat this bug using 5.0.11.
jan@hundin:~/mysql-5.0/client> ./mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.11-beta-debug-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> create database test;
Query OK, 1 row affected (0.00 sec)
mysql> use test;
Database changed
mysql> create table t1(a int) engine = innodb;
Query OK, 0 rows affected (0.02 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> xa start 'test';
Query OK, 0 rows affected (0.01 sec)
mysql> insert into t1 values(5);
Query OK, 1 row affected (0.00 sec)
mysql> xa end 'test';
Query OK, 0 rows affected (0.00 sec)
mysql> xa prepare 'test';
Query OK, 0 rows affected (0.00 sec)
jan@hundin:~/mysql-5.0/client> ./mysql test -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.11-beta-debug-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> xa start 'test';
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t1 values(5);
Query OK, 1 row affected (0.00 sec)
mysql> xa end 'test';
Query OK, 0 rows affected (0.00 sec)
mysql> xa prepare 'test';
Query OK, 0 rows affected (0.00 sec)
InnoDB: Starting in background the rollback of uncommitted transactions
050726 8:44:59 InnoDB: Rollback of non-prepared transactions completed
050726 8:44:59 InnoDB: Started; log sequence number 0 47724
050726 8:44:59 [Note] Recovering after a crash using binlog
050726 8:44:59 [Note] Starting crash recovery...
050726 8:44:59 InnoDB: Starting recovery for XA transactions...
050726 8:44:59 InnoDB: Transaction 0 1280 in prepared state after recovery
050726 8:44:59 InnoDB: Transaction contains changes to 1 rows
050726 8:44:59 InnoDB: Transaction 0 770 in prepared state after recovery
050726 8:44:59 InnoDB: Transaction contains changes to 1 rows
050726 8:44:59 InnoDB: 2 transactions in prepared state after recovery
050726 8:44:59 [Note] Found 2 prepared transaction(s) in InnoDB
050726 8:44:59 [Note] ignore xid 'test'
050726 8:44:59 [Note] ignore xid 'test'
050726 8:44:59 [Warning] Found 2 prepared XA transactions
050726 8:44:59 [Note] Crash recovery finished.
050726 8:44:59 InnoDB: Starting recovery for XA transactions...
050726 8:44:59 InnoDB: Transaction 0 1280 in prepared state after recovery
050726 8:44:59 InnoDB: Transaction contains changes to 1 rows
050726 8:44:59 InnoDB: Transaction 0 770 in prepared state after recovery
050726 8:44:59 InnoDB: Transaction contains changes to 1 rows
050726 8:44:59 InnoDB: 2 transactions in prepared state after recovery
050726 8:44:59 [Note] Found 2 prepared transaction(s) in InnoDB
050726 8:44:59 [Note] ignore xid 'test'
050726 8:44:59 [Note] ignore xid 'test'
050726 8:44:59 [Warning] Found 2 prepared XA transactions
This bug is most probable in MySQL Server because it should not support starting two XA transactions with identical XID.
Regards,
JanL
[12 Aug 2005 19:22]
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/28233
[13 Aug 2005 6:55]
Sergei Golubchik
fixed in 5.0.12
[16 Aug 2005 4:10]
Mike Hillyer
Documented 5.0.12 changelog: <literal>XA</literal> allowed two active transactions to be started with the same XID. (Bug #12162)
