mariadb/mysql-test/include/have_spider.opt
Andrei Elkin 8d4abfeca2 MDEV-36802 flaw in external xa-commit with multiple xa-capable engines
MDEV-32830 base patch missed out supporting XA-COMPLETE
via hton::"complete"_by_xid with multiple engines some of them
are and some are not defined ordered_commit().
The base patch fails with an assert in a path that should have been
unreachable in the first place.
The assert path revealed a second commit-by-xid capable engine (Spider)
was running commit_by_xid() as if it is ordered_commit()-type of
while Spider does not define ordered_commit.
For engines featuring the ordered-commit undefined and commit-by-xid defined
commit_by_xid() is considered as a general so cannot be invoked out of
binlog-group-commit (run_prepare_ordered()).
It would be a full commit similarly to the normal transaction case be invoked
after binlog-group-commit engine loop is done^\footnote{%
also specified in p.5 low-level design points of MDEV-32830 description}.

For that this patch

- extends  commit_or_rollback_xa_engine() with a hint
  for xarollback_handlerton() argument that enables to understand
  which phase of XA completion it's being run.
- elaborates in xacommit_handlerton().
  Specifically to fix this bug, not invoke a defined hton->complete_by_xid when
  the method is to run as ordered-"complete" by engine lacking the
  ordered_commit.
2025-05-15 10:56:55 +03:00

1 line
32 B
Text

--plugin-load-add=$HA_SPIDER_SO