1. 08 Feb, 2018 7 commits
    • Vladislav Vaintroub's avatar
      f01ce62c
    • Vladislav Vaintroub's avatar
    • Marko Mäkelä's avatar
      MDEV-14407 Assertion failure during rollback · db253057
      Marko Mäkelä authored
      Rollback attempted to dereference DB_ROLL_PTR=0, which cannot possibly
      be a valid undo log pointer. A safe canonical value would be
      roll_ptr_t(1) << ROLL_PTR_INSERT_FLAG_POS
      which is what was chosen in MDEV-12288.
      
      This bug was reproduced in 10.3 only. Potentially, the problem could
      have been introduced by MDEV-11415, which suppresses undo logging for
      ALGORITHM=COPY operations. In those operations, we should actually
      have written the safe value of DB_ROLL_PTR instead of writing 0.
      However, the test in commit 5421e3ae
      demonstrates that access to the rebuilt table by earlier-started
      transactions should actually have been refused with ER_TABLE_DEF_CHANGED.
      
      btr_cur_ins_lock_and_undo(): When undo logging is disabled, use the
      safe value of DB_ROLL_PTR.
      
      btr_cur_optimistic_insert(): Validate the DB_TRX_ID,DB_ROLL_PTR before
      inserting into a clustered index leaf page.
      
      ins_node_t::sys_buf[]: Replaces row_id_buf and trx_id_buf and some
      heap usage.
      
      row_ins_alloc_sys_fields(): Initialize ins_node_t::sys_buf[].
      
      trx_undo_page_report_modify(): Assert that the DB_ROLL_PTR is not 0.
      
      trx_undo_get_undo_rec_low(): Assert that the roll_ptr is valid before
      trying to dereference it.
      
      dict_index_t::is_primary(): Check if the index is the primary key.
      db253057
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · be6307c0
      Marko Mäkelä authored
      be6307c0
    • Marko Mäkelä's avatar
      Merge 10.0 into 10.1 · 871f2a6e
      Marko Mäkelä authored
      871f2a6e
    • Marko Mäkelä's avatar
      Make the test innodb.recovery_shutdown more robust · 9216a4f6
      Marko Mäkelä authored
      Before killing the server, we have to FLUSH TABLES in order to
      prevent the corruption of any MyISAM system tables.
      9216a4f6
    • Marko Mäkelä's avatar
      MDEV-15249 Crash in MVCC read after IMPORT TABLESPACE · 5421e3ae
      Marko Mäkelä authored
      PageConverter::adjust_cluster_record(): Instead of writing
      the invalid value DB_ROLL_PTR=0, write a value that indicates
      a fresh insert, that is, prevents the DB_ROLL_PTR from being
      dereferenced in any circumstances.
      
      It can be argued that IMPORT TABLESPACE should actually
      update the dict_index_t::trx_id to prevent older transactions
      from accessing the table, similar to what I did on table
      rebuild in MySQL 5.6.6 in
      https://github.com/mysql/mysql-server/commit/03f81a55f221095d397c375afe8a10c8038da339
      5421e3ae
  2. 07 Feb, 2018 11 commits
  3. 06 Feb, 2018 14 commits
  4. 05 Feb, 2018 4 commits
  5. 04 Feb, 2018 1 commit
  6. 03 Feb, 2018 3 commits