• Jan Lindström's avatar
    MDEV-25089 : Assertion `error.len > 0' failed in galera::ReplicatorSMM::handle_apply_error() · daaa16a4
    Jan Lindström authored
    Problem is that Galera starts TOI (total order isolation) i.e.
    it sends query to all nodes. Later it is discovered that
    used engine or other feature is not supported by Galera.
    Because TOI is executed parallelly in all nodes appliers
    could execute given TOI and ignore the error and
    start inconsistency voting causing node to leave from
    cluster or we might have a crash as reported.
    
    For example SEQUENCE engine does not support GEOMETRY data
    type causing either inconsistency between nodes (because
    some errors are ignored on applier) or crash.
    
    Fixed my adding new function wsrep_check_support to check
    can Galera support provided CREATE TABLE/SEQUENCE before TOI is
    started and if not clear error message is provided to
    the user.
    
    Currently, not supported cases:
    
    * CREATE TABLE ... AS SELECT when streaming replication is used
    * CREATE TABLE ... WITH SYSTEM VERSIONING AS SELECT
    * CREATE TABLE ... ENGINE=SEQUENCE
    * CREATE SEQUENCE ... ENGINE!=InnoDB
    * ALTER TABLE t ... ENGINE!=InnoDB where table t is SEQUENCE
    Signed-off-by: default avatarJulius Goryavsky <julius.goryavsky@mariadb.com>
    daaa16a4
sql_table.h 11 KB