mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
This was missing bug fix from MySQL wsrep i.e. Galera. Problem was that if stored procedure declares a handler that catches deadlock error, then the error may have been cleared in method sp_rcontext::handle_sql_condition(). Use wsrep_conflict_state correctly to determine is the error already sent to client. Add test case for both this bug and MDEV-12837: WSREP: BF lock wait long. Test requires both fixes to pass.
19 lines
438 B
Plaintext
19 lines
438 B
Plaintext
CREATE TABLE t1 ENGINE=InnoDB select 1 as a, 1 as b union select 2, 2;
|
|
ALTER TABLE t1 add primary key(a);
|
|
CREATE PROCEDURE p1()
|
|
BEGIN
|
|
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION rollback;
|
|
WHILE 1 DO
|
|
start transaction;
|
|
update t1 set b=connection_id() where a=1;
|
|
commit;
|
|
END WHILE;
|
|
END|
|
|
call p1;
|
|
call p1;
|
|
call p1;
|
|
call p1;
|
|
checking error log for 'BF lock wait long' message for 10 times every 10 seconds ...
|
|
drop table t1;
|
|
drop procedure p1;
|