1. 23 Aug, 2024 1 commit
    • Brandon Nesterenko's avatar
      MDEV-34765: rpl.master_last_event_time_stmt fails with Result Length Mismatch · 9e845107
      Brandon Nesterenko authored
      When executing a Query_log_event that is a COMMIT query,
      gtid_slave_pos is updated before other replication status
      variables, so when an MTR test syncs a replica with
      primaries via GTID, there is a slight window where accessing
      status variables, e.g. via SHOW ALL SLAVES STATUS, results
      in "stale" values because gtid_slave_pos has been updated
      before the *_last_event_time fields have been updated.
      
      This patch only fixes the test by switching from using
      GTIDs to using binlog file coordinates when synchronizing
      replicas with their primaries.
      9e845107
  2. 21 Aug, 2024 4 commits
  3. 20 Aug, 2024 3 commits
  4. 19 Aug, 2024 9 commits
    • Kristian Nielsen's avatar
      Fix sporadic test failure of mariabackup.slave_provision_nolock · 7318fa18
      Kristian Nielsen authored
      The test requires a larger innodb log file size; this was lost as a
      side-effect of d7699c51.
      Signed-off-by: default avatarKristian Nielsen <knielsen@knielsen-hq.org>
      7318fa18
    • Kristian Nielsen's avatar
      Fix sporadic failure in test rpl.rpl_rotate_logs · 78fcb947
      Kristian Nielsen authored
      Clarify confusing comments in the previous commit, and note that the failure
      started after push of MDEV-34504.
      Signed-off-by: default avatarKristian Nielsen <knielsen@knielsen-hq.org>
      78fcb947
    • Oleksandr Byelkin's avatar
      MDEV-34776 Assertion failure in Item_string::do_build_clone · ae02999c
      Oleksandr Byelkin authored
      Added missed methods to Item_string child.
      ae02999c
    • Oleksandr Byelkin's avatar
      MDEV-34771 Types mismatch when cloning items causes debug assertion · fccfdc28
      Oleksandr Byelkin authored
      Missing methods added to Item_bin_string
      fccfdc28
    • Monty's avatar
      Sort result from table_statistics and index_statistics · db8ab4ac
      Monty authored
      This is needed as the order of rows are not deterministic,
      especially in future versions of table statistics.
      db8ab4ac
    • Monty's avatar
      Revert "mtr: remove not_valgrind_build" · e51d55a6
      Monty authored
      The original code is correct.
      
      valgrind and asan binaries should be built with a specialiced version of
      mem_root that makes it easier to find memory overwrites.
      This is what the BUILD scripts is doing.
      
      The specialiced mem_root code allocates a new block for every allocation
      which is visiable for any test that depenmds on the default original malloc
      size and usage.
      e51d55a6
    • Dmitry Shulga's avatar
      MDEV-34718: Trigger doesn't work correctly with bulk update · ba5482ff
      Dmitry Shulga authored
      Running an UPDATE statement in PS mode and having positional
      parameter(s) bound with an array of actual values (that is
      prepared to be run in bulk mode) results in incorrect behaviour
      in presence of on update trigger that also executes an UPDATE
      statement. The same is true for handling a DELETE statement in
      presence of on delete trigger. Typically, the visible effect of
      such incorrect behaviour is expressed in a wrong number of
      updated/deleted rows of a target table. Additionally, in case UPDATE
      statement, a number of modified rows and a state message returned
      by a statement contains wrong information about a number of modified rows.
      
      The reason for incorrect number of updated/deleted rows is that
      a data structure used for binding positional argument with its
      actual values is stored in THD (this is thd->bulk_param) and reused
      on processing every INSERT/UPDATE/DELETE statement. It leads to
      consuming actual values bound with top-level UPDATE/DELETE statement
      by other DML statements used by triggers' body.
      
      To fix the issue, reset the thd->bulk_param temporary to the value
      nullptr before invoking triggers and restore its value on finishing
      its execution.
      
      The second part of the problem relating with wrong value of affected
      rows reported by Connector/C API is caused by the fact that diagnostics
      area is reused by an original DML statement and a statement invoked
      by a trigger. This fact should be take into account on finalizing a
      state of diagnostics area on completion running of a statement.
      
      Important remark: in case the macros DBUG_OFF is on, call of the method
        Diagnostics_area::reset_diagnostics_area()
      results in reset of the data members
        m_affected_rows, m_statement_warn_count.
      Values of these data members of the class Diagnostics_area are used on
      sending OK and EOF messages. In case DML statement is executed in PS bulk
      mode such resetting results in sending wrong result values to a client
      for affected rows in case the DML statement fires a triggers. So, reset
      these data members only in case the current statement being processed
      is not run in bulk mode.
      ba5482ff
    • Yuchen Pei's avatar
      MDEV-33836 Compute modulus correctly in sequence · 8b8c8fcb
      Yuchen Pei authored
      When the sequence is unsigned bigint, it needs to be cast to unsigned
      for correct computation of the modulus.
      8b8c8fcb
    • Yuchen Pei's avatar
      MDEV-33836 Fix version markers in tests relating to MDEV-28152 · 26034534
      Yuchen Pei authored
      MDEV-28152 was pushed to 11.5, not 11.4
      26034534
  5. 16 Aug, 2024 1 commit
  6. 15 Aug, 2024 4 commits
  7. 14 Aug, 2024 6 commits
    • Daniel Bartholomew's avatar
      bump the VERSION · cf08f44d
      Daniel Bartholomew authored
      cf08f44d
    • Marko Mäkelä's avatar
      Merge 10.6 into 10.11 · 62bfcfd8
      Marko Mäkelä authored
      62bfcfd8
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · 757c3681
      Marko Mäkelä authored
      757c3681
    • Marko Mäkelä's avatar
      MDEV-34755 g++- -Wstringop-truncation due to safe_strcpy() · ecd910ae
      Marko Mäkelä authored
      The #pragma that was removed in
      commit e255837e (MDEV-34266)
      turns out to be necessary for silencing all cases of
      -Wstringop-truncation.
      ecd910ae
    • Marko Mäkelä's avatar
      MDEV-34678 pthread_mutex_init() without pthread_mutex_destroy() · 4f8803c0
      Marko Mäkelä authored
      When SUX_LOCK_GENERIC is defined, the srw_mutex, srw_lock, sux_lock are
      implemented based on pthread_mutex_t and pthread_cond_t.  This is the
      only option for systems that lack a futex-like system call.
      
      In the SUX_LOCK_GENERIC mode, if pthread_mutex_init() is allocating
      some resources that need to be freed by pthread_mutex_destroy(),
      a memory leak could occur when we are repeatedly invoking
      pthread_mutex_init() without a pthread_mutex_destroy() in between.
      
      pthread_mutex_wrapper::initialized: A debug field to track whether
      pthread_mutex_init() has been invoked.  This also helps find bugs
      like the one that was fixed by
      commit 1c8af2ae (MDEV-34422);
      one simply needs to add -DSUX_LOCK_GENERIC to the CMAKE_CXX_FLAGS
      to catch that particular bug on the initial server bootstrap.
      
      buf_block_init(), buf_page_init_for_read(): Invoke block_lock::init()
      because buf_page_t::init() will no longer do that.
      
      buf_page_t::init(): Instead of invoking lock.init(), assert that it
      has already been invoked (the lock is vacant).
      
      add_fts_index(), build_fts_hidden_table(): Explicitly invoke
      index_lock::init() in order to avoid a pthread_mutex_destroy()
      invocation on an uninitialized object.
      
      srw_lock_debug::destroy(): Invoke readers_lock.destroy().
      
      trx_sys_t::create(): Invoke trx_rseg_t::init() on all rollback segments
      in order to guarantee a deterministic state for shutdown, even if
      InnoDB fails to start up.
      
      trx_rseg_array_init(), trx_temp_rseg_create(), trx_rseg_create():
      Invoke trx_rseg_t::destroy() before trx_rseg_t::init() in order to
      balance pthread_mutex_init() and pthread_mutex_destroy() calls.
      4f8803c0
    • JunSeong's avatar
      fix: fix typo at mysql-test README · 72ab8bc9
      JunSeong authored
      72ab8bc9
  8. 13 Aug, 2024 2 commits
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-14231 MATCH() AGAINST( IN BOOLEAN MODE), results mismatch · b304ec30
      Thirunarayanan Balathandayuthapani authored
      - Added plugin_debug.test, multiple_index.test to innodb_fts suite
      from mysql-5.7.
      
      - commit c5b28e55 removes the warning
      for InnoDB rebuilding table to add FTS_DOC_ID
      
      - multiple_index test case  has MATCH(a) values are smaller
      than in MySQL because ROLLBACK updates the stat_n_rows.
      
      - st_mysql_ftparser_boolean_info structure conveys boolean
      metadata to mysql search engine for every word in the query.
      This structure misses the position value to store the correct
      offset of every word. So phrase search queries in plugin_debug
      test case with boolean mode for simple parser throws
      wrong result.
      b304ec30
    • Marko Mäkelä's avatar
      MDEV-34707: BUF_GET_RECOVER assertion failure on upgrade · 12b01d74
      Marko Mäkelä authored
      buf_page_get_gen(): Relax the assertion once more.
      The LSN may grow by invoking ibuf_upgrade(), that is,
      when upgrading files where innodb_change_buffering!=none was used.
      The LSN may also have been recovered from a log that needs
      to be upgraded to the current format.
      12b01d74
  9. 12 Aug, 2024 6 commits
    • Julius Goryavsky's avatar
      MDEV-30686: Endless loop when trying to establish connection · 2c5d8376
      Julius Goryavsky authored
      With wsrep_sst_rsync, node goes into endless loop when trying
      to establish connection to donor for IST/SST if the database
      is bind on specific IP address, not the "*".
      
      This commit fixes this problem. Separate tests are not
      required - the problem can occur in normal configurations
      on a number of systems when selecting a bing address other
      than "*", especially on FreeBSD and with the IPv6 addresses.
      2c5d8376
    • Jan Lindström's avatar
      MDEV-34594 : Assertion `client_state.transaction().active()' failed in · cd8b8bb9
      Jan Lindström authored
      int wsrep_thd_append_key(THD*, const wsrep_key*, int, Wsrep_service_key_type)
      
      CREATE TABLE [SELECT|REPLACE SELECT] is CTAS and idea was that
      we force ROW format. However, it was not correctly enforced
      and keys were appended before wsrep transaction was started.
      
      At THD::decide_logging_format we should force used stmt binlog
      format to ROW in CTAS case and produce a warning if used
      binlog format was not ROW.
      
      At ha_innodb::update_row we should not append keys similarly
      as in ha_innodb::write_row if sql_command is SQLCOM_CREATE_TABLE.
      Improved error logging on ::write_row, ::update_row and ::delete_row
      if wsrep key append fails.
      Signed-off-by: default avatarJulius Goryavsky <julius.goryavsky@mariadb.com>
      cd8b8bb9
    • Vladislav Vaintroub's avatar
      MDEV-34741 - remove LOCK TABLE from mariadb-import · ff865b08
      Vladislav Vaintroub authored
      It currently serves no real purpose, but is suspected to cause occasional
      error when foreign keys are used.
      "Error: 1100, Table 'child' was not locked with LOCK TABLES, when using table: parent"
      as seen on CI
      ff865b08
    • Alexander Barkov's avatar
      MDEV-34376 Wrong data types when mixing an utf8 *TEXT column and a short binary · 0e273510
      Alexander Barkov authored
      A mixture of a multi-byte *TEXT column and a short binary column
      produced a too large column.
      For example, COALESCE(tinytext_utf8mb4, short_varbinary)
      produced a BLOB column instead of an expected TINYBLOB.
      
      - Adding a virtual method Type_all_attributes::character_octet_length(),
        returning max_length by default.
      - Overriding Item_field::character_octet_length() to extract
        the octet length from the underlying Field.
      - Overriding Item_ref::character_octet_length() to extract
        the octet length from the references Item (e.g. as VIEW fields).
      - Fixing Type_numeric_attributes::find_max_octet_length() to
        take the octet length using the new method character_octet_length()
        instead of accessing max_length directly.
      0e273510
    • Ian Gilfillan's avatar
      Update sponsors · c83ba513
      Ian Gilfillan authored
      c83ba513
    • Sergei Golubchik's avatar
      Two problems with auth_parsec.so · 05fe3f1c
      Sergei Golubchik authored
      1. it links with ${SSL_LIBRARIES}, in WolfSSL builds it's a static
         library, so when a plugin is loaded there will be two copies of
         wolfssl in the same address space. It breaks odr (at least).
      2. Plugin can linked with OpenSSL and the server with WolfSSL or
         vice versa. It might load, but then we'll have both WolfSSL and
         OpenSSL at the same time. Kind of risky.
      
      Fix: link the plugin statically into the server if it's a WolfSSL build
      
      adjust tests to work with static and dynamic parsec
      05fe3f1c
  10. 10 Aug, 2024 3 commits
  11. 09 Aug, 2024 1 commit