• Jan Lindström's avatar
    MDEV-13471: Test failure on innodb.log_file_size,4k · 391b1af0
    Jan Lindström authored
    Problem was that 4k page size is not really supported in
    Galera. For reference see:
    	codership/galera#398
    
    Page size 4k is problematic because WSREP XID info location
    that was set to constant UNIV_PAGE_SIZE - 3500 and that is conflicting
    with rseg undo slots location if there is lot of undo tablespaces.
    Undo tablespace identifiers and page numbers require
    at least 126*8=1024 bytes starting from offset 56. Therefore,
    WSREP XID startig from offset 596 would overwrite several
    space_id,page_no pairs starting from 72th undo log tablespace
    space_id,page_no pair at offset 594.
    This will cause InnoDB startup failure seen as
    [ERROR] InnoDB: Unable to open undo tablespace './undo30579'.
    
    Originally, the undo tablespace ID would always be between
    0 and 127. Starting with MySQL 5.6.36 which introduced
    Bug #25551311 BACKPORT BUG #23517560 REMOVE SPACE_ID RESTRICTION
    FOR UNDO TABLESPACES (merged to MariaDB 10.0.31)
    it is possible for an undo tablespace ID to be 0x7773. But in
    this case, the page number should be 3, not 0x72650003.
    This is just the first collision. The WSREP XID data would
    overwrite subsequent slots.
    
    trx0sys.h
    
    trx0sys.cc
    	Code formatting and add comments.
    391b1af0
trx0sys.cc 39 KB