mirror of
https://github.com/MariaDB/server.git
synced 2025-11-01 19:36:12 +01:00
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.
1 line
32 B
Text
1 line
32 B
Text
--plugin-load-add=$HA_SPIDER_SO
|