• Mattias Jonsson's avatar
    Bug#47343: InnoDB fails to clean-up after lock wait timeout on · eab2be0a
    Mattias Jonsson authored
               REORGANIZE PARTITION
    
    There were several problems which lead to this this,
    all related to bad error handling.
    
    1) There was several bugs preventing the ddl-log to be used for
       cleaning up created files on error.
    
    2) The error handling after the copy partition rows did not close
       and unlock the tables, resulting in deletion of partitions
       which were in use, which lead InnoDB to put the partition to
       drop in a background queue.
    
    sql/ha_partition.cc:
      Bug#47343: InnoDB fails to clean-up after lock wait timeout on
                 REORGANIZE PARTITION
      
      Better error handling, if partition has been created/opened/locked
      then make sure it is unlocked and closed before returning error.
      The delete of the newly created partition is handled by the ddl-log.
    sql/sql_parse.cc:
      Bug#47343: InnoDB fails to clean-up after lock wait timeout on
                 REORGANIZE PARTITION
      
      Fix a bug found when experimenting, thd could really be NULL here,
      as mentioned in the function header.
    sql/sql_partition.cc:
      Bug#47343: InnoDB fails to clean-up after lock wait timeout on
                 REORGANIZE PARTITION
      
      Used the correct .frm shadow name to put into the ddl-log.
      Really use the ddl-log to handle errors.
    sql/sql_table.cc:
      Bug#47343: InnoDB fails to clean-up after lock wait timeout on
                 REORGANIZE PARTITION
      
      Fixes of the ddl-log when used as error recovery (no crash).
      When executing an entry from memory (not read from disk)
      the name_len was not set correctly.
    eab2be0a
ha_partition.cc 195 KB