• mats@mats-laptop.(none)'s avatar
    BUG#36197: flush tables (or little table cache) can cause crash on slave · 812fa8b2
    mats@mats-laptop.(none) authored
    When flushing tables, there were a slight chance that the flush was occuring
    between processing of two table map events. Since the tables are opened
    one by one, it might result in that the tables were not valid and that sub-
    sequent locking of tables would cause the slave to crash.
    
    The problem is solved by opening and locking all tables at once using
    simple_open_n_lock_tables(). Also, the patch contain a change to open_tables()
    so that pre-locking only takes place when the trg_event_map is not zero, which
    was not the case before (this caused the lock to be placed in thd->locked_tables
    instead of thd->lock since the assumption was that triggers would be called
    later and therefore the tables should be pre-locked).
    812fa8b2
log_event_old.cc 92.6 KB