1. 18 Sep, 2020 1 commit
  2. 17 Sep, 2020 1 commit
  3. 14 Sep, 2020 3 commits
  4. 11 Sep, 2020 1 commit
  5. 10 Sep, 2020 3 commits
    • Jan Lindström's avatar
      MDEV-23709 : Galera test failure on galera_fk_cascade_delete_debug · 8993e40d
      Jan Lindström authored
      Add wait_condition so that inserts to parent and child are replicated
      and applied before we set debug sync point.
      8993e40d
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-23199 page_compression flag is missing for full_crc32 tablespace · f19da4a0
      Thirunarayanan Balathandayuthapani authored
      Problem:
      ======
      Making the tablespace as page_compressed doesn't do table rebuild.
      It does change only the FSP_SPACE_FLAGS.
      
      During recovery:
      1) InnoDB encounters FILE_CREATE redo log and opens the tablespace
      with old FSP_SPACE_FLAGS value.
      2) Only parsing of redo log has been finished. Now InnoDB tries to
      load the table. If the existing tablespace flags doesn't match
      with table flags then InnoDB should read page0. But in
      fsp_flags_try_adjust(), skips the page read for full_crc32 format.
      3) After that, InnoDB tries to open the clustered index and it
      leads to failure of page validation.
      
      Fix:
      ===
      While parsing the redo log record, track FSP_SPACE_FLAGS in
      recv_spaces for the respective space id. Assign the flags for
      the tablespace when it is loaded.
      
      recv_parse_set_size_and_flags(): Parse the redo log to set the
      tablespace recovery size and flags.
      
      fil_space_set_recv_size_and_flags(): Changed from
      fil_space_set_recv_size(). To set the recovery size and flags of
      the tablespace.
      
      Introduce flags variable in file_name_t to maintain the tablespace
      flag which we encountered during parsing of redo log.
      
      is_flags_full_crc32_equal(), is_flags_non_full_crc32_equal(): Rename
      the variable page_ssize and space_page_ssize with fcrc32_psize and
      non_fcrc32_psize.
      f19da4a0
    • Geert Hendrickx's avatar
      MDEV-23589: Portability: use `uname -n` instead of `hostname` · 1bb3ad6d
      Geert Hendrickx authored
      Closes PR #1663
      1bb3ad6d
  6. 09 Sep, 2020 11 commits
  7. 07 Sep, 2020 4 commits
    • 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
    • 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
  8. 04 Sep, 2020 7 commits
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 7f8cd326
      Marko Mäkelä authored
      7f8cd326
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · c5cb59ce
      Marko Mäkelä authored
      c5cb59ce
    • Marko Mäkelä's avatar
      MDEV-23651: Fix the Windows build · 1a3ce7e7
      Marko Mäkelä authored
      In the Microsoft environment, my_atomic requires int32.
      1a3ce7e7
    • Marko Mäkelä's avatar
      MDEV-23600 follow-up: uninitialized rec_field_is_prefix · c029d456
      Marko Mäkelä authored
      build_template_field(): Initialize templ->rec_field_is_prefix
      also for indexes on virtual columns. This was caught on 10.5 by
      MemorySanitizer as use-of-uninitialized-value in
      row_search_with_covering_prefix() when running the test
      main.fast_prefix_index_fetch_innodb.
      c029d456
    • Sergei Petrunia's avatar
      Fix a typo in the previous cset · 8c2909a2
      Sergei Petrunia authored
      8c2909a2
    • Marko Mäkelä's avatar
      MDEV-23633 fixup: Add missing semicolon · b0c194ca
      Marko Mäkelä authored
      b0c194ca
    • Marko Mäkelä's avatar
      MDEV-23633 MY_RELAX_CPU performs unnecessary compare-and-swap on ARM · 24f510bb
      Marko Mäkelä authored
      This follows up MDEV-14374, which was filed against MariaDB Server 10.3.
      Back then, on a 48-core Qualcomm Centriq 2400, the performance of
      delay loops for spinloops was tested both with and without the dummy
      compare-and-swap operation, and it was decided to keep the dummy
      operation.
      
      On target architectures where nothing special is available (other than
      x86 (IA-32, AMD64) or POWER), we perform a dummy compare-and-swap operation.
      This is contrary to the idea of the x86 PAUSE instruction and the
      __ppc_get_timebase(), which aim to keep the memory bus idle for a while,
      to allow other cores to better execute code while a spinloop is waiting
      for something to be changed.
      
      On MariaDB Server 10.4 and another implementation of the ARMv8 ISA,
      omitting the dummy compare-and-swap improved performance by up to 12%.
      So, let us avoid the dummy compare-and-swap on ARM.
      
      For now, we are retaining the dummy compare-and-swap on other ISAs
      (such as SPARC, MIPS, S390x, RISC-V) because we do not have any
      performance data for them.
      24f510bb
  9. 03 Sep, 2020 9 commits