From 5ebda30ccc7616443a5e29bca806a1095b7d90cc Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Wed, 16 Oct 2024 13:23:47 +0200 Subject: [PATCH] Revert "MDEV-35019 Provide a way to enable "rollback XA on disconnect" behavior we had before 10.5.2" This reverts commit 8ae462a220b6dee3f493de3cb2fecacfc6ae610c. --- mysql-test/main/mysqld--help.result | 8 ------- mysql-test/main/xa.result | 16 ------------- mysql-test/main/xa.test | 19 --------------- mysql-test/suite/rpl/r/rpl_xa.result | 24 ------------------- .../rpl/r/rpl_xa_gtid_pos_auto_engine.result | 24 ------------------- mysql-test/suite/rpl/t/rpl_xa.inc | 23 ------------------ .../sys_vars/r/sysvars_server_embedded.result | 10 -------- .../r/sysvars_server_notembedded.result | 10 -------- sql/sql_class.cc | 7 +----- sql/sql_class.h | 1 - sql/sys_vars.cc | 10 -------- sql/xa.h | 1 - 12 files changed, 1 insertion(+), 152 deletions(-) diff --git a/mysql-test/main/mysqld--help.result b/mysql-test/main/mysqld--help.result index 0d6c747ae58..83a93a197a6 100644 --- a/mysql-test/main/mysqld--help.result +++ b/mysql-test/main/mysqld--help.result @@ -433,13 +433,6 @@ The following specify which files/extra groups are read (specified before remain --lc-time-names=name Set the language used for the month names and the days of the week. - --legacy-xa-rollback-at-disconnect - If a user session disconnects after putting a transaction - into the XA PREPAREd state, roll back the transaction. - Can be used for backwards compatibility to enable this - pre-10.5 behavior for applications that expect it. Note - that this violates the XA specification and should not be - used for new code --local-infile Enable LOAD DATA LOCAL INFILE (Defaults to on; use --skip-local-infile to disable.) --lock-wait-timeout=# @@ -1579,7 +1572,6 @@ large-pages FALSE lc-messages en_US lc-messages-dir MYSQL_SHAREDIR/ lc-time-names en_US -legacy-xa-rollback-at-disconnect FALSE local-infile TRUE lock-wait-timeout 86400 log-bin foo diff --git a/mysql-test/main/xa.result b/mysql-test/main/xa.result index 58ad2a54edd..faabf1cf695 100644 --- a/mysql-test/main/xa.result +++ b/mysql-test/main/xa.result @@ -592,22 +592,6 @@ formatID gtrid_length bqual_length data xa rollback '4'; ERROR XA100: XA_RBROLLBACK: Transaction branch was rolled back set @@global.read_only=@sav_read_only; -# MDEV-35019: Provide a way to enable "rollback XA on disconnect" behavior we had before 10.5.2 -# Test legacy_xa_rollback_at_disconnect option. -CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1, 0); -connect con1,localhost,root,,; -SET SESSION legacy_xa_rollback_at_disconnect= 1; -XA START '5'; -INSERT INTO t1 VALUES (2, 0); -XA END '5'; -XA PREPARE '5'; -disconnect con1; -connection default; -INSERT INTO t1 VALUES (3, 0); -XA ROLLBACK '5'; -ERROR XAE04: XAER_NOTA: Unknown XID -DROP TABLE t1; # # End of 10.5 tests # diff --git a/mysql-test/main/xa.test b/mysql-test/main/xa.test index dfc97002168..e1ca39be9ab 100644 --- a/mysql-test/main/xa.test +++ b/mysql-test/main/xa.test @@ -747,25 +747,6 @@ xa rollback '4'; set @@global.read_only=@sav_read_only; ---echo # MDEV-35019: Provide a way to enable "rollback XA on disconnect" behavior we had before 10.5.2 ---echo # Test legacy_xa_rollback_at_disconnect option. -CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1, 0); -connect (con1,localhost,root,,); -SET SESSION legacy_xa_rollback_at_disconnect= 1; -XA START '5'; -INSERT INTO t1 VALUES (2, 0); -XA END '5'; -XA PREPARE '5'; -disconnect con1; - -connection default; ---source include/wait_until_count_sessions.inc -INSERT INTO t1 VALUES (3, 0); ---error ER_XAER_NOTA -XA ROLLBACK '5'; -DROP TABLE t1; - --echo # --echo # End of 10.5 tests --echo # diff --git a/mysql-test/suite/rpl/r/rpl_xa.result b/mysql-test/suite/rpl/r/rpl_xa.result index 7b58d3d6e06..061c7b360d0 100644 --- a/mysql-test/suite/rpl/r/rpl_xa.result +++ b/mysql-test/suite/rpl/r/rpl_xa.result @@ -280,28 +280,4 @@ disconnect con1; connection master; xa commit '1'; drop table t2, t1; -# MDEV-35019 Provide a way to enable "rollback XA on disconnect" behavior we had before 10.5.2 -CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1), (3); -connect con1, localhost,root; -SET SESSION legacy_xa_rollback_at_disconnect= 1; -XA START '3'; -INSERT INTO t1 VALUES (2); -XA END '3'; -XA PREPARE '3'; -disconnect con1; -connection master; -include/save_master_gtid.inc -SELECT * FROM t1 ORDER BY a; -a -1 -3 -connection slave; -include/sync_with_master_gtid.inc -SELECT * FROM t1 ORDER BY a; -a -1 -3 -connection master; -DROP TABLE t1; include/rpl_end.inc diff --git a/mysql-test/suite/rpl/r/rpl_xa_gtid_pos_auto_engine.result b/mysql-test/suite/rpl/r/rpl_xa_gtid_pos_auto_engine.result index 2cb9b6c4290..35625cc7026 100644 --- a/mysql-test/suite/rpl/r/rpl_xa_gtid_pos_auto_engine.result +++ b/mysql-test/suite/rpl/r/rpl_xa_gtid_pos_auto_engine.result @@ -289,30 +289,6 @@ disconnect con1; connection master; xa commit '1'; drop table t2, t1; -# MDEV-35019 Provide a way to enable "rollback XA on disconnect" behavior we had before 10.5.2 -CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1), (3); -connect con1, localhost,root; -SET SESSION legacy_xa_rollback_at_disconnect= 1; -XA START '3'; -INSERT INTO t1 VALUES (2); -XA END '3'; -XA PREPARE '3'; -disconnect con1; -connection master; -include/save_master_gtid.inc -SELECT * FROM t1 ORDER BY a; -a -1 -3 -connection slave; -include/sync_with_master_gtid.inc -SELECT * FROM t1 ORDER BY a; -a -1 -3 -connection master; -DROP TABLE t1; connection slave; include/stop_slave.inc SET @@global.gtid_pos_auto_engines=""; diff --git a/mysql-test/suite/rpl/t/rpl_xa.inc b/mysql-test/suite/rpl/t/rpl_xa.inc index e695f5712f0..5925de24f44 100644 --- a/mysql-test/suite/rpl/t/rpl_xa.inc +++ b/mysql-test/suite/rpl/t/rpl_xa.inc @@ -434,26 +434,3 @@ disconnect con1; connection master; xa commit '1'; drop table t2, t1; - ---echo # MDEV-35019 Provide a way to enable "rollback XA on disconnect" behavior we had before 10.5.2 -CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB; -INSERT INTO t1 VALUES (1), (3); - -connect con1, localhost,root; -SET SESSION legacy_xa_rollback_at_disconnect= 1; -XA START '3'; -INSERT INTO t1 VALUES (2); -XA END '3'; -XA PREPARE '3'; ---disconnect con1 - ---connection master ---source include/save_master_gtid.inc -SELECT * FROM t1 ORDER BY a; - ---connection slave ---source include/sync_with_master_gtid.inc -SELECT * FROM t1 ORDER BY a; - ---connection master -DROP TABLE t1; diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result index a2d9549b718..a5a02bfa1bc 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_embedded.result @@ -1532,16 +1532,6 @@ NUMERIC_BLOCK_SIZE NULL ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME LEGACY_XA_ROLLBACK_AT_DISCONNECT -VARIABLE_SCOPE SESSION -VARIABLE_TYPE BOOLEAN -VARIABLE_COMMENT If a user session disconnects after putting a transaction into the XA PREPAREd state, roll back the transaction. Can be used for backwards compatibility to enable this pre-10.5 behavior for applications that expect it. Note that this violates the XA specification and should not be used for new code -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST OFF,ON -READ_ONLY NO -COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LICENSE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR diff --git a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result index f40c0d0863f..50dd4ae23a3 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result +++ b/mysql-test/suite/sys_vars/r/sysvars_server_notembedded.result @@ -1642,16 +1642,6 @@ NUMERIC_BLOCK_SIZE NULL ENUM_VALUE_LIST NULL READ_ONLY NO COMMAND_LINE_ARGUMENT NULL -VARIABLE_NAME LEGACY_XA_ROLLBACK_AT_DISCONNECT -VARIABLE_SCOPE SESSION -VARIABLE_TYPE BOOLEAN -VARIABLE_COMMENT If a user session disconnects after putting a transaction into the XA PREPAREd state, roll back the transaction. Can be used for backwards compatibility to enable this pre-10.5 behavior for applications that expect it. Note that this violates the XA specification and should not be used for new code -NUMERIC_MIN_VALUE NULL -NUMERIC_MAX_VALUE NULL -NUMERIC_BLOCK_SIZE NULL -ENUM_VALUE_LIST OFF,ON -READ_ONLY NO -COMMAND_LINE_ARGUMENT OPTIONAL VARIABLE_NAME LICENSE VARIABLE_SCOPE GLOBAL VARIABLE_TYPE VARCHAR diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 321c1684c75..fc04f5436f3 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -1553,12 +1553,7 @@ void THD::cleanup(void) close_temporary_tables(); if (transaction->xid_state.is_explicit_XA()) - { - if (unlikely(variables.legacy_xa_rollback_at_disconnect)) - xa_trans_force_rollback(this); - else - trans_xa_detach(this); - } + trans_xa_detach(this); else trans_rollback(this); diff --git a/sql/sql_class.h b/sql/sql_class.h index 0da311533d3..6baf796fb8b 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -788,7 +788,6 @@ typedef struct system_variables my_bool binlog_annotate_row_events; my_bool binlog_direct_non_trans_update; my_bool column_compression_zlib_wrap; - my_bool legacy_xa_rollback_at_disconnect; plugin_ref table_plugin; plugin_ref tmp_table_plugin; diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index 53b2d9901ad..93298ff7b04 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -6788,13 +6788,3 @@ static Sys_var_ulonglong Sys_max_rowid_filter_size( SESSION_VAR(max_rowid_filter_size), CMD_LINE(REQUIRED_ARG), VALID_RANGE(1024, (ulonglong)~(intptr)0), DEFAULT(128*1024), BLOCK_SIZE(1)); - -static Sys_var_mybool Sys_legacy_xa_rollback_at_disconnect( - "legacy_xa_rollback_at_disconnect", - "If a user session disconnects after putting a transaction into the XA " - "PREPAREd state, roll back the transaction. Can be used for backwards " - "compatibility to enable this pre-10.5 behavior for applications that " - "expect it. Note that this violates the XA specification and should not " - "be used for new code", - SESSION_VAR(legacy_xa_rollback_at_disconnect), CMD_LINE(OPT_ARG), - DEFAULT(FALSE), NO_MUTEX_GUARD, NOT_IN_BINLOG); diff --git a/sql/xa.h b/sql/xa.h index 04ac98149aa..5f21e9e9b55 100644 --- a/sql/xa.h +++ b/sql/xa.h @@ -46,7 +46,6 @@ bool xid_cache_insert(XID *xid); bool xid_cache_insert(THD *thd, XID_STATE *xid_state, XID *xid); void xid_cache_delete(THD *thd, XID_STATE *xid_state); -bool xa_trans_force_rollback(THD *thd); bool trans_xa_start(THD *thd); bool trans_xa_end(THD *thd); bool trans_xa_prepare(THD *thd);