1. 01 Mar, 2022 6 commits
  2. 28 Feb, 2022 10 commits
    • Monty's avatar
      Fixed sporadic error in main.backup_locks · 72437cbc
      Monty authored
      The follwoing could happen if InnoDB did some background work while
      test was running:
      
      @@ -5,6 +5,8 @@
       SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
       LOCK_MODE      LOCK_TYPE       TABLE_SCHEMA    TABLE_NAME
       MDL_SHARED_HIGH_PRIO   Table metadata lock     test    t1
      +MDL_SHARED     Table metadata lock     mysql   innodb_table_stats
      +MDL_SHARED     Table metadata lock     mysql   innodb_index_stat
      72437cbc
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · edb311ae
      Marko Mäkelä authored
      edb311ae
    • Marko Mäkelä's avatar
      MDEV-27964: Work around SIGSEGV in WITH_MSAN builds · bc020058
      Marko Mäkelä authored
      We will move all tests of the ENCRYPT() function to the test
      main.func_crypt, which will be disabled in MSAN builds for now.
      bc020058
    • Marko Mäkelä's avatar
      Merge fixup: -Wconversion · 08d39bdf
      Marko Mäkelä authored
      In merge cc1d9062 the 32-bit builds
      were broken.
      08d39bdf
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · 5c21cba6
      Marko Mäkelä authored
      5c21cba6
    • Marko Mäkelä's avatar
      Avoid some failures WITH_MSAN · 13076bd3
      Marko Mäkelä authored
      13076bd3
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · cc1d9062
      Marko Mäkelä authored
      cc1d9062
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 3c58cdd9
      Marko Mäkelä authored
      3c58cdd9
    • Marko Mäkelä's avatar
      MDEV-27800: Avoid garbage TRX_UNDO_TRX_NO on TRX_UNDO_CACHED pages · 0635088d
      Marko Mäkelä authored
      In commit c7d04487 (MDEV-15132)
      MariaDB Server 10.3 stopped writing the latest transaction identifier
      to the TRX_SYS page. Instead, the transaction identifier will be
      recovered from undo log pages.
      
      Unfortunately, before commit 3926673c
      and mysql/mysql-server@dc29792ff2996aefbb6e64bb2f0bc3aa8fc879e9
      (MySQL 5.1.48 or MariaDB 5.1.48) InnoDB did not always initialize all
      data fields, but some garbage could be left behind in unused parts
      of data pages.
      
      In undo log pages that are essentially free, but added to a list for
      reuse (TRX_UNDO_CACHED) the TRX_UNDO_TRX_NO fields could contain garbage,
      instead of 0. As long as such undo pages are being reused and never
      marked completely free, the garbage contents may remain forever.
      In fact, the function trx_undo_header_create() and the record
      MLOG_UNDO_HDR_CREATE will only initialize TRX_UNDO_TRX_ID, but leave
      TRX_UNDO_TRX_NO uninitialized.
      
      trx_undo_mem_create_at_db_start(): Only read the TRX_UNDO_TRX_NO
      fields of TRX_UNDO_CACHED pages if the TRX_UNDO_PAGE_TYPE is 0,
      that is, the page was updated by MariaDB Server 10.3. Earlier versions
      would always write the TRX_UNDO_PAGE_TYPE as 1 or 2.
      
      trx_undo_header_create(): Zero out the TRX_UNDO_TRX_NO field.
      Strictly speaking, this will change the semantics of the
      MLOG_UNDO_HDR_CREATE record, but it should not do any harm to
      overwrite a potentially garbage field with zeroes.
      
      Note: This fix will only help future upgrades straight from
      MariaDB Server 10.2 or MySQL 5.6 or earlier. If such an upgrade has
      already been made, then an earlier server startup could have
      fast-forwarded the transaction ID sequence to a large value.
      If this large value cannot be represented in 48 bits (the size of
      the DB_TRX_ID column in clustered index records), then various
      strange things can happen.
      0635088d
    • Marko Mäkelä's avatar
      Merge 10.2 into 10.3 · 535bef86
      Marko Mäkelä authored
      535bef86
  3. 25 Feb, 2022 12 commits
  4. 24 Feb, 2022 4 commits
  5. 23 Feb, 2022 8 commits
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · 164a6aa4
      Marko Mäkelä authored
      164a6aa4
    • Marko Mäkelä's avatar
      Extend have_sanitizer with ASAN+UBSAN and MSAN · b91a123d
      Marko Mäkelä authored
      Disable some tests that are too slow or big for MSAN.
      b91a123d
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 23368b76
      Marko Mäkelä authored
      23368b76
    • Julius Goryavsky's avatar
      MDEV-26377: Stricter validation of ssl-mode values · a3da3c8a
      Julius Goryavsky authored
      This commit adds validation of the values of the ssl-mode parameter
      in SSL scripts, since now only a basic check for the presence of the
      "VERIFY_" prefix is performed there to detect "VERIFY_IDENTITY" and
      "VERIFY_CA", but all other values are not checked at all.
      
      In addition, this commit removes leading and trailing spaces from
      parameter values that SST scripts read from configuration files or
      from the command line so that they do not interfere with parameter
      checks and substitutions. Parameter substitution has been made more
      robust against characters in strings that the shell might erroneously
      interpret as regexp.
      a3da3c8a
    • Marko Mäkelä's avatar
      MDEV-27798 SIGSEGV in dict_index_t::reconstruct_fields() · 46764652
      Marko Mäkelä authored
      When recovery is rolling back an incomplete instant DROP COLUMN
      operation, it may access non-existing fields. Let us avoid
      invoking std::find_if() outside the valid bounds of the array.
      
      This bug was reproduced with the Random Query Generator, using a
      combination of instant DROP, ADD...FIRST, CHANGE (renaming a column).
      Unfortunately, we were unable to create an mtr test case for
      reproducing this, despite spending considerable effort on it.
      46764652
    • Marko Mäkelä's avatar
      MDEV-27924 page_zip_copy_recs() corrupts ROW_FORMAT=COMPRESSED block descriptor · d3e06dbb
      Marko Mäkelä authored
      In commit aaef2e1d (MDEV-27058)
      we failed to introduce a special copy constructor that would
      preserve the "page_zip_des_t::fix" field that only exists there
      in order to avoid alignment loss on 64-bit systems.
      
      page_zip_copy_recs(): Invoke the special copy constructor.
      
      The block descriptor corruption causes assertion failures when
      running ./mtr --suite=innodb_zip while InnoDB has been built
      with UNIV_ZIP_COPY. Normally, calls to page_zip_copy_recs()
      occur very rarely on page splits.
      d3e06dbb
    • Marko Mäkelä's avatar
      WSREP: Fix GCC 12.0.1 -Wuninitialized · 0b849a44
      Marko Mäkelä authored
      GCC 12 complains if a reference to an uninitialized object is
      being passed to a constructor. The mysql_mutex_t, mysql_cond_t
      would be initialized in the constructor body, which is executed
      after the initializer list. There is no problem passing a pointer
      instead of a reference. The wrapper classes do not dereference
      the pointers in the constructor or destructor, so there does not
      appear to be any correctness issue.
      0b849a44
    • Marko Mäkelä's avatar
      MDEV-23888 fixup: GCC 12 -Wunused-value · 8b7abe21
      Marko Mäkelä authored
      8b7abe21