1. 30 Sep, 2022 1 commit
  2. 29 Sep, 2022 6 commits
    • Aleksey Midenkov's avatar
      MDEV-29620 Assertion `next_insert_id == 0' failed in handler::ha_external_lock · aa08a744
      Aleksey Midenkov authored
      ha_release_auto_increment() must be done before F_UNLCK.
      Non-atomic case is handled by select_insert::binlog_query().
      aa08a744
    • Aleksey Midenkov's avatar
      MDEV-29628 Memory leak after CREATE OR REPLACE with foreign key · c579d66b
      Aleksey Midenkov authored
      MDEV-28933 added a condition to avoid keeping cached foreign keys when
      renaming into temporary table. Such foreign keys must be freed.
      c579d66b
    • Aleksey Midenkov's avatar
      MDEV-29609 create_not_windows test fails with different result · cb583b2f
      Aleksey Midenkov authored
      make_tmp_name() creates temporary name with prefix containing PID and
      TID. This prefix influences max length of the rest of the name (the
      whole name is limited by NAME_LEN). During the test run PID and TID
      can change. PID increases when the server restarts. TID is incremented
      with the new connections (generated by next_thread_id(), is not the
      posix thread ID).
      
      During the test run PID can increase max 2 decimal positions: from
      tens to thousands this requires ~900 restarts. TID depends on
      connection count, but for test we assume it will not trespass 100000
      connections which is 5 decimal positions. So it should be enough to
      reserve 7 characters for PID and TID increment.
      
      The patch reserves more: it reserves 12 characters for 7-decimal PID
      and 5-decimal TID plus 4 chars of additional reserve (for future
      prefix changes) and assumes minimal legth of the prefix is 30 bytes:
      
      #sql-backup-PID-TID-
      #sql-create-PID-TID-
      
      4-6-PID-TID- is 10 + 4 + PID + TID, so PID + TID is 16 chars (7 + 5 + 4).
      cb583b2f
    • Aleksey Midenkov's avatar
      MDEV-29544 SIGSEGV in HA_CREATE_INFO::finalize_locked_tables · dcd66c38
      Aleksey Midenkov authored
      Usually when we get into finalize_locked_tables() with error
      m_locked_tables_count was not decremented. m_locked_tables_count is
      decremented when we drop the original table and if we failed that
      m_locked_tables_count is expected intact.
      
      The bug comes from the fact that finalize_atomic_replace() violates
      the above contract. It does HA_EXTRA_PREPARE_FOR_DROP and decrements
      m_locked_tables_count. Then it tries rename_table_and_triggers() and
      fails. With decremented m_locked_tables_count reopen_tables() does
      nothing and we don't get new value for pos_in_locked_tables->table.
      
      The test case demonstrates ER_ERROR_ON_RENAME where non-atomic CREATE
      OR REPLACE would not fail. The original RENAME TABLE fails under such
      broken environment, so nothing is wrong with atomic CREATE OR REPLACE
      failing there too.
      dcd66c38
    • Sergei Golubchik's avatar
      MDEV-29608 Default SSL makes mysqlslap much slower, tests fail with timeout · 1ac8149b
      Sergei Golubchik authored
      mysqlslap has an unusual semantics of the --iterations option, so that
      $ mysqlslap --concurrency=16 --iterations=1000
      performs 16,000 connections. Because of that it gets many times slower
      with --ssl
      
      Let's disable ssl for mysqlslap in mysql-test
      1ac8149b
    • Sergei Golubchik's avatar
      after merge update *.result · 530d19a3
      Sergei Golubchik authored
      530d19a3
  3. 27 Sep, 2022 1 commit
    • asklavou's avatar
      MDEV-29517: rpl.rpl_change_master_demote sporadically fails in BB · 9bf52749
      asklavou authored
      Problem:
      =======
      Test Case 4 sporadically failed upon waiting for the slave to start during
      master demotion to slave, due to a GTID event not existing in the new
      master's binlog. If by chance the original slave (new master) did not yet
      receive all the binlog events, then this failure could occur.
      
      Solution:
      ========
      Sync slave with master GTID  before master demotion.
      
      Reviewed By:
      ============
      Brandon Nesterenko <brandon.nesterenko@mariadb.com>
      9bf52749
  4. 26 Sep, 2022 1 commit
  5. 23 Sep, 2022 1 commit
  6. 21 Sep, 2022 7 commits
  7. 20 Sep, 2022 5 commits
  8. 19 Sep, 2022 16 commits
    • Daniel Bartholomew's avatar
      bump the VERSION · 4a7367d5
      Daniel Bartholomew authored
      4a7367d5
    • Daniel Bartholomew's avatar
      bump the VERSION · 90d899c3
      Daniel Bartholomew authored
      90d899c3
    • Daniel Bartholomew's avatar
      bump the VERSION · b73c70c2
      Daniel Bartholomew authored
      b73c70c2
    • Vlad Lesin's avatar
      MDEV-29515 innodb.deadlock_victim_race is unstable · 5ab78cf3
      Vlad Lesin authored
      The test is unstable because 'UPDATE t SET b = 100' latches a page and
      waits for 'upd_cont' signal in lock_trx_handle_wait_enter sync point, then
      purge requests RW_X_LATCH on the same page, and then 'SELECT * FROM t
      WHERE a = 10 FOR UPDATE' requests RW_S_LATCH, waiting for RW_X_LATCH
      requested by purge. 'UPDATE t SET b = 100' can't release page latch as
      it waits for upd_cont signal, which must be emitted after 'SELECT * FROM
      t WHERE a = 10 FOR UPDATE' acquired RW_S_LATCH. So we have a deadlock,
      which is resolved by finishing the debug sync point wait by timeout, and
      the 'UPDATE t SET b = 100' releases it's record locks rolling back the
      transaction, and 'SELECT * FROM t WHERE a = 10 FOR UPDATE' is finished
      successfully instead of finishing by lock wait timeout.
      
      The fix is to forbid purging during the test by opening read view in a
      separate connection before the first insert into the table.
      
      Besides, 'lock_wait_end' syncpoint is not needed, as it enough to wait
      the end of the SELECT execution to let the UPDATE to continue.
      5ab78cf3
    • Daniel Bartholomew's avatar
      bump the VERSION · a762dad4
      Daniel Bartholomew authored
      a762dad4
    • Andrew Hutchings's avatar
      MDEV-29426 Fix memory leak in CONNECT JSON/BSON (#2255) · 65b4a2af
      Andrew Hutchings authored
      * MDEV-29426 Fix memory leak in CONNECT JSON/BSON
      
      If information is being gathered on JSON/BSON tables we leak the heap
      allocated to the table class. With this fix we close and cleanup
      instead, just as we do for XML tables.
      65b4a2af
    • Marko Mäkelä's avatar
      Fix clang -Wunused-but-set-variable · 5e959bc3
      Marko Mäkelä authored
      5e959bc3
    • Marko Mäkelä's avatar
      Merge innodb.cmake to CMakeLists.txt · 3ab4b260
      Marko Mäkelä authored
      The reason why mysql/mysql-server@8020cfac20c55a870a874446870d5e90bdc181ed
      split the files was some unit tests that never existed in the
      MariaDB Server code base. The storage/innobase/unittest/ works just fine
      with this file.
      
      This is reverting part of 2e814d47
      which applied InnoDB changes from MySQL 5.7.9.
      3ab4b260
    • Marko Mäkelä's avatar
      Cleanup: Remove HAVE_IB_LINUX_FUTEX · 73658ede
      Marko Mäkelä authored
      The futex system calls were introduced in Linux 2.6.0,
      which was released in December 2003. It should be safe to assume
      that the system calls are always available on the Linux kernels
      that MariaDB Server 10.3 would run on.
      73658ede
    • Marko Mäkelä's avatar
      Cleanup: Remove INNODB_COMPILER_HINTS · 4c8b65db
      Marko Mäkelä authored
      There should be no point to disable branch prediction hints or prefetch.
      4c8b65db
    • Marko Mäkelä's avatar
      InnoDB cleanup: Replace UNIV_LINUX, UNIV_SOLARIS, UNIV_AIX · c22dff21
      Marko Mäkelä authored
      Let us use the normal platform-specific preprocessor symbols
      __linux__, __sun__, _AIX instead of some homebrew ones.
      
      The preprocessor symbol UNIV_HPUX must have lost its meaning
      by f6deb00a (note: the symbol
      UNIV_HPUX10 is being checked for, but only UNIV_HPUX is defined).
      c22dff21
    • Marko Mäkelä's avatar
      MDEV-29559 Recovery of INSERT_HEAP_DYNAMIC into secondary index fails · fed0d85d
      Marko Mäkelä authored
      log_phys_t::apply(): When parsing an INSERT_HEAP_DYNAMIC record,
      allow ll==rlen to hold for the last part. A secondary index record
      may inherit all preceding bytes from the infimum pseudo-record.
      
      For INSERT_HEAP_REDUNDANT, some header bytes will always be present
      because the header will never be copied from the page infimum.
      We will tolerate ll==rlen also in that case to be consistent with
      the parsing of INSERT_HEAP_DYNAMIC.
      fed0d85d
    • Marko Mäkelä's avatar
      Correct typos in a function comment · bbf81b51
      Marko Mäkelä authored
      Thanks to Thirunarayanan Balathandayuthapani for spotting this.
      bbf81b51
    • Daniel Black's avatar
      Merge 10.4 into 10.5 · 3c8674ed
      Daniel Black authored
      3c8674ed
    • Ian Gilfillan's avatar
      Update 10.5 HELP contents · 01d78d31
      Ian Gilfillan authored
      01d78d31
    • Ian Gilfillan's avatar
      Update 10.4 HELP contents · ef784c4e
      Ian Gilfillan authored
      ef784c4e
  9. 16 Sep, 2022 1 commit
    • Marko Mäkelä's avatar
      MDEV-29555 ASAN heap-buffer-overflow in mariabackup.huge_lsn,strict_full_crc32 · 593fdee3
      Marko Mäkelä authored
      recv_scan_log(): Do not dereference the first byte of the log record
      before recv_sys.parse_pmem() (or recv_sys_t::parse_mtr()) returns OK.
      
      In the case of the failure that was analyzed, we had
      recv_sys.offset == recv_sys.len and recv_sys_t::parse_mtr() would return
      PREMATURE_EOF. This would lead us to reading more data and parsing again.
      
      When a memory-mapped interface to the log is being used, that is,
      log_sys.is_pmem() holds, recv_sys.offset cannot point past the
      end of the memory-mapped log_sys.buf[]. This is guaranteed by
      log_sys.calc_lsn_offset().
      
      Thanks to Nayuta Yanagisawa for providing a core dump for analysis.
      593fdee3
  10. 15 Sep, 2022 1 commit
    • Daniel Black's avatar
      MDEV-16708: ps_missed_cmds test - HELP deconflict · 5e270ca2
      Daniel Black authored
      To make it possible to update the HELP text of UPDATE without
      changing this test every time, the test is changed to look
      for a faked help topic. A non-existant help topic generates
      different metadata and wasn't suitable as a test.
      
      Requested by Ian Gilfillan.
      
      Reviewed by Dmitry Shulga
      5e270ca2