Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/MariaDB/mysql-test/suite/galera/t/   (MariaDB Server Version 8.1-8.4©)  Datei vom 1.9.2026 mit Größe 1 kB image not shown  

Quelle  MDEV-35446.test  Sprache: unbekannt

 
Spracherkennung für: .test vermutete Sprache: SQL {SQL[66] VDM[66] ADA[44]} [Methode: maximale Elemente, drei Dimensionen]

#
# MDEV-35446
#
# Test BF abort of a transaction under PS protocol, after
# a statement is prepared (and the diagnostics area is
# disabled).
#

--source include/have_debug_sync.inc
--source include/galera_cluster.inc

#
# Setup: bf_trx executes in node_1 and will BF abort victim_trx.
#
--connect bf_trx, 127.0.0.1, root, , test, $NODE_MYPORT_1
--connect victim_trx, 127.0.0.1, root, , test, $NODE_MYPORT_2
--connect node_2_ctrl, 127.0.0.1, root, , test, $NODE_MYPORT_2

CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;

--connection victim_trx
START TRANSACTION;
INSERT INTO t1 VALUES (2), (1);

--connection node_2_ctrl
SET GLOBAL debug_dbug = '+d,sync.wsrep_apply_cb';

--connection bf_trx
INSERT INTO t1 VALUES (1), (2);

--connection node_2_ctrl
SET DEBUG_SYNC = "now WAIT_FOR sync.wsrep_apply_cb_reached";
SET GLOBAL debug_dbug = '';

#
# COMMIT the victim_trx and expect a deadlock error.
# Here we park the client in a sync point at the end of prepare
# command (COM_STMT_PREPARE), where the diagnostics area of the
# client has already been disabled. The client signals the
# applier to continue and will be BF aborted.
# If bug is present, the transaction is aborted, but the COMMIT
# statement succeeds (instead of returning deadlock error).
#
--connection victim_trx

--disable_ps_protocol
SET DEBUG_SYNC = "wsrep_at_dispatch_end_before_result SIGNAL signal.wsrep_apply_cb WAIT_FOR bf_abort";
--enable_ps_protocol

--error ER_LOCK_DEADLOCK
COMMIT;

#
# Cleanup
#
SET DEBUG_SYNC = 'RESET';
DROP TABLE t1;

[Dauer der Verarbeitung: 0.22 Sekunden, vorverarbeitet 2026-10-11]