• Jan Lindström's avatar
    MDEV-32974 : Member fails to join due to old seqno in GTID · cac0fc97
    Jan Lindström authored
    Before MDEV-15158, wsrep xid information was stored in only one place:
    in the TRX_SYS page. Starting with 10.3, it is not stored there but
    in the rollback segment header pages, and the latest one is what
    matters. MDEV-19229 allows the undo tablespaces to be rebuilt when
    innodb_undo_tablespaces is changed on startup. Previously it was not
    possible to change that parameter.
    
    These changes caused the fact that rollback segment header pages could
    contain several wsrep xid's stored and when undo tablespaces were
    rebuilt there was a effort to restore wsrep xid back to rollback
    segment header page but because there was several of them the latest
    wsrep xid was overwritten with older one.
    
    trx_rseg_read_wsrep_checkpoint
    trx_rseg_init_wsrep_xid
    	Return true if read xid is wsrep xid, false if not
    
    trx_rseg_mem_restore
    	Try to read wsrep xid and if it is found copy it to
    	trx_sys.recovered_wsrep_xid if read xid has larger
    	seqno.
    cac0fc97
trx0rseg.cc 23.3 KB