1. 17 Sep, 2020 3 commits
    • Marko Mäkelä's avatar
      Make a test more robust · d61c5696
      Marko Mäkelä authored
      Change buffering will occasionally happen if other pages are
      not flushed quickly enough.
      d61c5696
    • Marko Mäkelä's avatar
      MDEV-23719: Make lock_sys use page_id_t · 00cd53d3
      Marko Mäkelä authored
      Since commit 8ccb3caa it should be
      more efficient to use page_id_t rather than two separate variables
      for tablespace identifier and page number.
      
      lock_rec_fold(): Replaced with page_id_t::fold().
      
      lock_rec_hash(): Replaced with lock_sys.hash(page_id).
      
      lock_rec_expl_exist_on_page(), lock_rec_get_first_on_page_addr(),
      lock_rec_get_first_on_page(): Replaced with lock_sys.get_first().
      00cd53d3
    • Marko Mäkelä's avatar
      MDEV-23719: Remove buf_block_t::lock_hash_val · 852771ba
      Marko Mäkelä authored
      The InnoDB buffer block page descriptor is caching a value
      buf_block_t::lock_hash_val that should be quick to compute
      in the first place, as suggested by
      commit 14be8143.
      
      lock_rec_fold(): Define as page_id_t::fold() instead of
      ut_fold_ulint_pair().
      852771ba
  2. 14 Sep, 2020 2 commits
  3. 11 Sep, 2020 1 commit
  4. 10 Sep, 2020 3 commits
  5. 09 Sep, 2020 14 commits
  6. 08 Sep, 2020 6 commits
  7. 07 Sep, 2020 8 commits
    • Aleksey Midenkov's avatar
      MDEV-23549 CREATE fails after DROP without FRM · 9842ed4e
      Aleksey Midenkov authored
      Related to 7c2ba9e9: ha_table_exists() is replaced by
      dd_frm_type(). ha_table_exists() checked the existence of share and
      that succeeded to enter the execution branch of ha_delete_table()
      where tdc_remove_table() was called. Now it is skipped because
      dd_frm_type() returns TABLE_TYPE_UNKNOWN. Fix it by calling
      tdc_remove_table() in this case as well.
      9842ed4e
    • Andrei Elkin's avatar
      MDEV-23473 Query_log_event::pack_info does not check flags2_inited · 92ffab38
      Andrei Elkin authored
      A mtr failure in rpl.rpl_mariadb_slave_capability mismatch:
      
      -slave-relay-bin.000005	#	Query	#	#	BEGIN
      +slave-relay-bin.000005	#	Query	#	#	set foreign_key_checks=1, check_constraint_checks=1; BEGIN
      
      was fixed by {{80544a58}}, and without any check for {{flags_inited}}
      which is a pattern in the sources.
      
      This ticket therefore merely makes sure through an assert that a
      relation between the two remain in {{Query_log_event::pack_info}}.
      92ffab38
    • Marko Mäkelä's avatar
      MDEV-22924 Corruption in MVCC read via secondary index · f99cace7
      Marko Mäkelä authored
      An unsafe optimization was introduced by
      commit 2347ffd8 (MDEV-20301)
      which is based on
      mysql/mysql-server@3f3136188f1bd383f77f97823cf6ebd72d5e4d7e or
      mysql/mysql-server@647a3814a91c3d3bffc70ddff5513398e3f37bd4
      in MySQL 8.0.12 or MySQL 8.0.13
      (which in turn is based on the contribution in MySQL Bug #84958).
      
      Row_sel_get_clust_rec_for_mysql::operator(): In addition to checking
      that the pointer to the record matches, also check the latest
      modification of the page (FIL_PAGE_LSN) as well as the page identifier.
      Only if all three match, it is safe to reuse cached_old_vers.
      
      Row_sel_get_clust_rec_for_mysql::check_eq(): Assert that the PRIMARY KEY
      of the cached old version of the record corresponds to the latest version.
      
      We got a test case where CHECK TABLE, UPDATE and purge would be
      hammering on the same table (with only 6 rows) and a pointer that
      was originally pointing to a record pk=2 would match a cached_clust_rec
      that was pointing to a record pk=1. In the diagnosed `rr replay` trace,
      we would wrongly return an old cached version of the pk=1 record,
      instead of retrieving the correct version of the pk=2 record. Because
      of this, CHECK TABLE would fail to count one of the records in a
      secondary index, and report failure.
      
      This bug appears to affect MVCC reads via secondary indexes only.
      The purge of history in secondary indexes uses a different code path,
      and so do checks for implicit record locks.
      f99cace7
    • Vladislav Vaintroub's avatar
      MDEV-23680 Assertion `data' failed in crcr32_calc_pclmulqdq · 30ff6164
      Vladislav Vaintroub authored
      Fix DBUG_ASSERT
      30ff6164
    • Kentoku SHIBA's avatar
      MDEV-7098 spider/bg.spider_fixes failed in buildbot with safe_mutex: Trying to... · 9dedba16
      Kentoku SHIBA authored
      MDEV-7098 spider/bg.spider_fixes failed in buildbot with safe_mutex: Trying to unlock mutex conn->mta_conn_mutex that wasn't locked at storage/spider/spd_db_conn.cc, line 671
      9dedba16
    • Kentoku SHIBA's avatar
      MDEV-7098 spider/bg.spider_fixes failed in buildbot with safe_mutex: Trying to... · e976f461
      Kentoku SHIBA authored
      MDEV-7098 spider/bg.spider_fixes failed in buildbot with safe_mutex: Trying to unlock mutex conn->mta_conn_mutex that wasn't locked at storage/spider/spd_db_conn.cc, line 671
      e976f461
    • Kentoku SHIBA's avatar
      MDEV-7098 spider/bg.spider_fixes failed in buildbot with safe_mutex: Trying to... · 9b688471
      Kentoku SHIBA authored
      MDEV-7098 spider/bg.spider_fixes failed in buildbot with safe_mutex: Trying to unlock mutex conn->mta_conn_mutex that wasn't locked at storage/spider/spd_db_conn.cc, line 671
      9b688471
    • Kentoku SHIBA's avatar
      MDEV-7098 spider/bg.spider_fixes failed in buildbot with safe_mutex: Trying to... · 2cc9e456
      Kentoku SHIBA authored
      MDEV-7098 spider/bg.spider_fixes failed in buildbot with safe_mutex: Trying to unlock mutex conn->mta_conn_mutex that wasn't locked at storage/spider/spd_db_conn.cc, line 671
      2cc9e456
  8. 04 Sep, 2020 3 commits