• Andrei Elkin's avatar
    MDEV-14431 binlog.binlog_flush_binlogs_delete_domain failed in buildbot · d8974ebd
    Andrei Elkin authored
    The test and also rpl_gtid_delete_domain failed on PPC64 platform
    due to an incorrectly specified actual key for searching
    in a gtid domain system hash. While the correct size is 32 bits
    the supplied value was 8 bytes of long int size on the platform.
    The problem became evident thanks to the big endiness which
    cut off the *least* significant part of the value field.
    
    Fixed with correcting a dynamic array initialization to hold
    now uint32 values as well as the values extraction for
    searching in the gtid domain system hash.
    A new added test ensures no overflowed values are accepted
    for deletion which prevents inadvertent action. Notice though
    
    MariaDB [test]> set @@session.gtid_domain_id=(1 << 32) + 1;
    MariaDB [test]> show warnings;
    +---------+------+--------------------------------------------------------+
    | Level   | Code | Message                                                |
    +---------+------+--------------------------------------------------------+
    | Warning | 1292 | Truncated incorrect gtid_domain_id value: '4294967297' |
    +---------+------+--------------------------------------------------------+
    MariaDB [test]> select @@session.gtid_domain_id;
    +--------------------------+
    | @@session.gtid_domain_id |
    +--------------------------+
    |               4294967295 |
    +--------------------------+
    d8974ebd
binlog_flush_binlogs_delete_domain.result 4.42 KB