1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-08 17:02:21 +03:00
Files
mariadb/sql
Jon Olav Hauglid 6688a4f25c Bug #11766788 (former bug 59986)
Assert in Diagnostics_area::set_ok_status() for XA COMMIT

This assert was triggered if XA COMMIT was issued when an XA transaction
already had encountered an error (e.g. a deadlock) which required
the XA transaction to be rolled back.

In general, the assert is triggered if a statement tries to send OK to
the client when an error has already been reported. It was triggered
in this case because the trans_xa_commit() function first reported an
error, then rolled back the transaction and finally returned FALSE,
indicating success. Since trans_xa_commit() reported success,
mysql_execute_command() tried to report OK, triggering the assert.

This patch fixes the problem by fixing trans_xa_commit() to return TRUE
if it encounters an error that requires rollback, even if the rollback
itself is successful.

Test case added to xa.test.
2011-02-14 14:16:31 +01:00
..
2010-08-16 14:50:27 +02:00
2010-11-22 10:13:46 +01:00
2010-12-29 01:26:31 +01:00
2010-05-24 14:51:59 +02:00
2010-05-28 19:53:26 -03:00
2010-03-31 16:05:33 +02:00
2010-07-30 16:56:57 +03:00
2011-02-08 14:59:03 +01:00
2010-12-29 01:26:31 +01:00
2011-02-08 14:59:03 +01:00
2011-01-28 13:28:15 +01:00
2010-12-14 13:46:00 +03:00
2011-02-02 10:18:44 +01:00
2011-02-02 10:18:44 +01:00
2011-02-08 14:59:03 +01:00
2010-03-31 16:05:33 +02:00
2011-02-08 17:47:33 +02:00
2010-12-07 16:11:13 +00:00
2010-12-29 01:26:31 +01:00
2011-02-04 10:59:55 +06:00
2010-12-29 01:26:31 +01:00
2010-11-23 13:47:35 +03:00
2010-12-07 16:11:13 +00:00
2011-02-02 19:05:28 +02:00
2010-12-29 01:26:31 +01:00
2010-04-13 19:04:45 +04:00
2011-01-24 11:48:54 +08:00
2010-12-07 16:11:13 +00:00
2010-12-16 21:43:21 +03:00
2010-09-06 17:04:32 +02:00
2010-11-28 18:06:02 +08:00
2010-10-12 14:07:13 +04:00
2011-02-02 20:13:28 +02:00
2011-01-31 13:11:05 +00:00
2011-01-26 15:30:06 +08:00
2011-01-26 15:30:06 +08:00
2011-02-10 11:50:53 +01:00
2011-01-26 15:30:06 +08:00
2010-08-31 13:59:51 +04:00
2011-01-28 13:28:15 +01:00
2010-12-02 08:16:26 +01:00
2010-12-29 01:26:31 +01:00
2010-12-14 13:46:00 +03:00
2010-12-07 16:11:13 +00:00
2010-12-07 16:11:13 +00:00
2011-01-31 13:11:05 +00:00
2010-12-29 01:26:31 +01:00
2010-08-12 20:44:41 +04:00
2009-09-10 03:18:29 -06:00
2011-01-13 09:07:21 +01:00
2011-01-13 09:07:21 +01:00
2010-12-29 01:26:31 +01:00
2011-02-02 20:13:28 +02:00
2011-01-28 13:28:15 +01:00
2010-12-29 01:26:31 +01:00
2009-12-03 21:37:38 +03:00