1. 19 Oct, 2023 5 commits
  2. 18 Oct, 2023 3 commits
    • Marko Mäkelä's avatar
      MDEV-32511: Race condition between checkpoint and page write · cfd17881
      Marko Mäkelä authored
      fil_aio_callback(): Invoke fil_node_t::complete_write() before
      releasing any page latch, so that in case a log checkpoint is
      executed roughly concurrently with the first write into a file
      since the previous checkpoint, we will not miss a fdatasync()
      or fsync() call to make the write durable.
      cfd17881
    • Marko Mäkelä's avatar
      Merge 10.6 into 10.10 · c857259e
      Marko Mäkelä authored
      c857259e
    • Marko Mäkelä's avatar
      MDEV-32511 Assertion !os_aio_pending_writes() failed · bf7c6fc2
      Marko Mäkelä authored
      In MemorySanitizer builds of 10.10 and 10.11, we would rather often
      have the assertion fail in innodb_init() during mariadb-backup --prepare.
      The assertion could also fail during InnoDB startup, but less often.
      
      Before commit 685d958e in 10.8 the
      log file cleanup after a successfully applied backup is different,
      and the os_aio_pending_writes() assertion is in srv0start.cc.
      
      IORequest::write_complete(): Invoke node->complete_write() before
      releasing the page latch, so that a log checkpoint that is about to
      execute concurrently will not miss a fdatasync() or fsync() on the
      file, in case this was the first write since the last such call.
      
      create_log_file(), srv_start(): Replace the debug assertion with
      a debug check. For all intents and purposes, all writes could have
      been completed but some write_io_callback() may not have invoked
      io_slots::release() yet.
      bf7c6fc2
  3. 17 Oct, 2023 5 commits
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-31851 After crash recovery, undo tablespace fails to open · 3da5d047
      Thirunarayanan Balathandayuthapani authored
      Problem:
      ========
      - InnoDB fails to open undo tablespace when page0 is corrupted
      and fails to throw error.
      
      Solution:
      =========
      - InnoDB throws DB_CORRUPTION error when InnoDB encounters
      page0 corruption of undo tablespace.
      
      - InnoDB restores the page0 of undo tablespace from
      doublewrite buffer if it encounters page corruption
      
      - Moved Datafile::restore_from_doublewrite() to
      recv_dblwr_t::restore_first_page(). So that undo
      tablespace and system tablespace can use this function
      instead of duplicating the code
      
      srv_undo_tablespace_open(): Returns 0 if file doesn't exist
      or ULINT_UNDEFINED if page0 is corrupted.
      3da5d047
    • Monty's avatar
      Fixed memory leak when using histograms · a49ebf71
      Monty authored
      This was introduced in last merge with 10.6
      The reason is that 10.6 does not need anything special to free histograms
      as everything is allocated on a memroot.
      In 10.10 histograms is using the vector class, which has some problems:
      - No automatic free
      - No memory usage accounting
      (we should at some point remove vector usage because of the above problem)
      
      Fixed by expliciting freeing histograms when freeing TABLE_STATISTICS
      objects.
      a49ebf71
    • Marko Mäkelä's avatar
      Merge 10.6 into 10.10 · 0563106b
      Marko Mäkelä authored
      0563106b
    • Yuchen Pei's avatar
      [fixup] Spider fixup after merge · 8f905942
      Yuchen Pei authored
      - Remove some references to dead macros
      8f905942
    • Yuchen Pei's avatar
      Spider: update reason for disabling spider/bugfix.mdev_27239 · 515f8de2
      Yuchen Pei authored
      It was disabled in the recent 10.6->10.10 merge.
      515f8de2
  4. 16 Oct, 2023 2 commits
  5. 14 Oct, 2023 4 commits
    • Monty's avatar
      MDEV-32449 Server crashes in Alter_info::add_stat_drop_index upon CREATE TABLE · 1c554459
      Monty authored
      Fixed missing initialization of Alter_info()
      
      This could cause crashes in some create table like scenarios
      where some generated indexes where automatically dropped.
      
      I also added a test that we do not try to drop from index_stats for
      temporary tables.
      1c554459
    • Monty's avatar
      Do not create histograms for single column unique key · ec277a70
      Monty authored
      The intentention was always to not create histograms for single value
      unique keys (as histograms is not useful in this case), but because of
      a bug in the code this was still done.
      
      The changes in the test cases was mainly because hist_size is now NULL
      for these kind of columns.
      ec277a70
    • Marko Mäkelä's avatar
      Merge 10.6 into 10.10 · d5e15424
      Marko Mäkelä authored
      The MDEV-29693 conflict resolution is from Monty, as well as is
      a bug fix where ANALYZE TABLE wrongly built histograms for
      single-column PRIMARY KEY.
      Also includes a fix for safe_malloc error reporting.
      
      Other things:
      - Copied main.log_slow from 10.4 to avoid mtr issue
      
      Disabled test:
      - spider/bugfix.mdev_27239 because we started to get
        +Error	1429 Unable to connect to foreign data source: localhost
        -Error	1158 Got an error reading communication packets
      - main.delayed
        - Bug#54332 Deadlock with two connections doing LOCK TABLE+INSERT DELAYED
          This part is disabled for now as it fails randomly with different
          warnings/errors (no corruption).
      d5e15424
    • Sergei Golubchik's avatar
      Revert "MDEV-29091: Correct event_name in PFS for wait caused by FOR UPDATE" · ea0b1ccd
      Sergei Golubchik authored
      This reverts commit 03c9a4ef.
      
      The fix is wrong. It was doing this: if the uninitialized
      wait->m_class has some specific value, then don't initialize it.
      ea0b1ccd
  6. 13 Oct, 2023 4 commits
  7. 12 Oct, 2023 4 commits
  8. 11 Oct, 2023 2 commits
    • Marko Mäkelä's avatar
      MDEV-32364 Server crashes when starting server with high innodb_log_buffer_size · c72ddeea
      Marko Mäkelä authored
      log_t::create(), log_t::attach(): Return whether the initialisation
      succeeded. It may fail if too large an innodb_log_buffer_size is specified.
      
      recv_sys_t::close_files(): Actually close the data files so that the
      test mariabackup.huge_lsn,strict_crc32 will not fail on Microsoft Windows
      when renaming ib_logfile101 due to a leaked file handle of ib_logfile0.
      
      recv_sys_t::find_checkpoint(): Register recv_sys.files[0] as OS_FILE_CLOSED
      because the file handle has already been attached to log_sys.log and
      we do not want to close the file twice.
      
      recv_sys_t::read(): Access the first log file via log_sys.log.
      
      This is a port of commit 6e9b421f
      adapted to commit 685d958e (MDEV-14425).
      
      The test case is omitted, because it would fail to fail when the log
      is stored in persistent memory (or "fake PMEM" on Linux /dev/shm).
      c72ddeea
    • Yuchen Pei's avatar
      MDEV-32238 Adding a switch to disable the spider group by handler · 50784c88
      Yuchen Pei authored
      The system variable spider_disable_group_by_handler, if on, will
      disable the spider group by handler (gbh), and such disablement serves
      as workaround to bugs caused by gbh, labelled with spider-gbh on jira,
      including MDEV-26247, MDEV-28998, MDEV-29163, MDEV-30392, MDEV-31645.
      Tests for these tickets are added accordingly with the workaround in
      place.
      50784c88
  9. 10 Oct, 2023 4 commits
  10. 08 Oct, 2023 6 commits
    • Monty's avatar
      Fixed that log_slow.test works with view_protocol · b04af648
      Monty authored
      Part of the test did not work with view_protocol as the query written
      to the slow_log table is changed because of view_protocol.
      b04af648
    • Monty's avatar
      Fixed compiler warnings in connect/odbconn.cpp · 1dd6d9a0
      Monty authored
      1dd6d9a0
    • Monty's avatar
      MDEV-22243 type_test.type_test_double fails with 'NUMERIC_SCALE NULL' · 9d19b652
      Monty authored
      There where several reasons why the test failed:
      - Constructors for Field_double and Field_float changed an argument
        to the constructor instead of a the correct class variable.
      - gcc 7.5.0 produced wrong code when inlining Field_double constructor
        into Field_test_double constructor.
      
      Fixed by changing the correct class variable and make the constructors
      not inline to go around the gcc bug.
      9d19b652
    • Otto Kekalainen's avatar
      Fix merge commit 5ea5291d: No test file or result files should be executable · 8941bdc4
      Otto Kekalainen authored
      In commit 5ea5291d @sanja-byelkin for unknown reason switched the file mode
      for 3 Galera tzinfo related test files from 644 -> 755. This exists only
      from branch 10.6 onward:
      
          $ git checkout 10.5
          $ find mysql-test -executable -name *.test -or -executable -name *.result
          (no results)
          $ git checkout 10.6
          $ find mysql-test -executable -name *.test -or -executable -name *.result
          mysql-test/suite/galera/t/mysql_tzmysql-test/suite/galera/t/mysql_tzinfo_to_sql.test
          mysql-test/suite/galera/t/mariadb_tzinfo_to_sql.test
          mysql-test/suite/galera/r/mariadb_tzinfo_to_sql.resultinfo_to_sql.test
      
      mysql-test/suite/galera/t/mariadb_tzinfo_to_sql.test
      mysql-test/suite/galera/r/mariadb_tzinfo_to_sql.result
      
      No test file nor test result file should be executable, so run chmod -x
      on them.
      
      All new code of the whole pull request, including one or several files
      that are either new files or modified ones, are contributed under the
      BSD-new license. I am contributing on behalf of my employer Amazon Web
      Services, Inc.
      8941bdc4
    • Monty's avatar
      MDEV-31349 test maria.maria-purge failed on 'aria_log.00000002 not found' · 185591c1
      Monty authored
      The bug was in the test case.
      The problem was that maria_empty_logs.inc deleted aria log files before
      the server was properly shutdown.
      Fixed by waiting for pid file to disappear before starting to delete log
      files.
      
      Other things:
      - Fixed that translog_purge_at_flush() will not stop deleting files even
        if one file could not be deleted.
      185591c1
    • Monty's avatar
      Fixed randomly failing test main.order_by_optimizer_innodb · 424a7a26
      Monty authored
      The problem was that sometimes InnoDB returned sligtly wrong record count
      for table, which causes the optimizer to disregard the result from
      the range optimizer. The end result was that the optimizer choosed a
      ref access instead of a range access which caused errors in buildbot.
      
      Fixed by adding more rows to the table to ensure that table scan is
      more costly than range scan of the given interval.
      424a7a26
  11. 06 Oct, 2023 1 commit