• Marko Mäkelä's avatar
    MDEV-19346: Remove dummy InnoDB log checkpoints · 3db94d24
    Marko Mäkelä authored
    log_checkpoint(), log_make_checkpoint_at(): Remove the parameter
    write_always. It seems that the primary purpose of this parameter
    was to ensure in the function recv_reset_logs() that both checkpoint
    header pages will be overwritten, when the function is called from
    the never-enabled function recv_recovery_from_archive_start().
    
    create_log_files(): Merge recv_reset_logs() to its only caller.
    
    Debug instrumentation: Prefer to flush the redo log, instead of
    triggering a redo log checkpoint.
    
    page_header_set_field(): Disable a debug assertion that will
    always fail due to MDEV-19344, now that we no longer initiate
    a redo log checkpoint before an injected crash.
    
    In recv_reset_logs() there used to be two calls to
    log_make_checkpoint_at(). The apparent purpose of this was
    to ensure that both InnoDB redo log checkpoint header pages
    will be initialized or overwritten.
    The second call was removed (without any explanation) in MySQL 5.6.3:
    mysql/mysql-server@4ca37968da54ddc6b3b6628f41428ddba1c79bb8
    
    In MySQL 5.6.8 WL#6494, starting with
    mysql/mysql-server@00a0ba8ad92569fcf08212b3b8cf046dc8a0ce10
    the function recv_reset_logs() was not only invoked during
    InnoDB data file initialization, but also during a regular
    startup when the redo log is being resized.
    
    mysql/mysql-server@45e91679832219e2593c77185342f11f85232b58
    in MySQL 5.7.2 removed the UNIV_LOG_ARCHIVE code, but still
    did not remove the parameter write_always.
    3db94d24
trx0trx.cc 76.4 KB