• Thirunarayanan Balathandayuthapani's avatar
    Bug #25385590 DROP TABLE CRASHES IF INNODB_FORCE_RECOVERY > 4 · 7223ec4c
    Thirunarayanan Balathandayuthapani authored
    Problem:
    ========
     - Drop table assert if innodb_force_recovery is set to 5 or 6.
    For innodb_force_recovery 5 and 6, InnoDB doesn't scan the undo log
    and it makes the redo rollback segment as NULL. There is no way for
    transaction to write any undo log.
    
     - If innodb_force_recovery is set to 6 then InnoDB does not do the
    redo log roll-forward in connection with recovery. In this case,
    log_sys will be initalized only and it will not have latest
    checkpoint information. Checkpoint is done during shutdown even
    innodb_force_recovery is set to 6. So it leads to incorrect
    information update in checkpoint header.
    
    Solution:
    ========
    1) Allow drop table only if innodb_force_recovery < 5.
    2) Make innodb as read-only if innodb_force_recovery is set to 6.
    3) During shutdown, remove the checkpoint if innodb_force_recovery
    is set to 6.
    Reviewed-by: default avatarJimmy Yang <jimmy.yang@oracle.com>
    RB: 15075
    7223ec4c
srv0start.cc 80.9 KB