1. 05 Apr, 2024 7 commits
    • Sergei Golubchik's avatar
      perfschema is disabled until it's enabled · 19028020
      Sergei Golubchik authored
      as it was thinking it was enabled even if initialize_performance_schema
      wasn't called at all
      19028020
    • Monty's avatar
      Fixed memory leaks in embedded server and mysqltest · 53af3d8c
      Monty authored
      This commit fixes the following issues:
      - memory leak checking enabled for mysqltest. This cover all cases except
        calls to 'die()' that only happens in case of internal failures in
        mysqltest. die() is not called anymore in the result files differs.
      - One can now run mtr --embedded without failures (this crashed or hang
        before)
      - cleanup_and_exit() has a new parameter that indicates that it is called
        from die(), in which case we should not do memory leak checks. We now
        always call cleanup_and_exit() instead of exit() to be able to free up
        memory and discover memory leaks.
      - Lots of new assert to catch error conditions
      - More DBUG statements.
      - Fixed that all results are freed in mysqltest (Fixed a memory leak in
        mysqltest when using prepared statements).
      - Fixed race condition in do_stmt_close() that caused embedded server
        to not free memory. (Memory leak in mysqltest with embedded server).
      - Fixed two memory leaks in embedded server when using prepared statements.
        These memory leaks caused timeout hangs in mtr when server was compiled
        with safemalloc. This issue was not noticed (except as timeouts) as
        memory report checking was done but output of it was disabled.
      53af3d8c
    • Sergei Golubchik's avatar
      mtr: increase timeouts under ASAN/UBSAN/MSAN · fc6711c6
      Sergei Golubchik authored
      not only under valgrind
      fc6711c6
    • Sergei Golubchik's avatar
      rpl.rpl_domain_id_filter_master_crash failed on msan builder · bd0e7515
      Sergei Golubchik authored
      it seems that the test can get IO thread running or not,
      there's a comment about it. Thus stop_slave_io.inc is told
      to ignore errors.
      
      Make stop_slave_io.inc also disable warnings in this case,
      in particular "1255 Slave already has been stopped"
      bd0e7515
    • Sergei Golubchik's avatar
      innodb.innodb_defrag_stats wait for the correct value · b067df32
      Sergei Golubchik authored
      failed on amd64-centos-stream8
      b067df32
    • Sergei Golubchik's avatar
      innodb.monitor test: wait for the correct value · a58a570c
      Sergei Golubchik authored
      on a busy system it might take time for buffer_page_written_index_leaf
      to reach the correct value. Wait for it.
      
      also, tag identical statements to be different in the result file.
      a58a570c
    • Sergei Golubchik's avatar
      MDEV-22955 innodb.innodb-alter fails in buildbot with extra warning · faf686db
      Sergei Golubchik authored
      add 10.5-specific global suppression.
      the extra warning is gone in 10.6
      faf686db
  2. 04 Apr, 2024 1 commit
    • sjaakola's avatar
      MDEV-33749 hyphen in table name can cause galera certification failures · 2fcf2ec2
      sjaakola authored
      Fix in this commit handles foreign key value appending into write set
      so that db and table names are converted from the filepath format
      to tablename format. This is compatible with key values appended from
      elsewhere in the code base
      
      There is a mtr test galera.galera_table_with_hyphen for regression testing
      
      Reviewer: monty@mariadb.com
      2fcf2ec2
  3. 02 Apr, 2024 1 commit
  4. 29 Mar, 2024 1 commit
    • Alexander Barkov's avatar
      MDEV-33788 HEX(COLUMN_CREATE(.. AS CHAR ...)) fails with --view-protocol · 29bb321f
      Alexander Barkov authored
      Item_func_dyncol_create::print_arguments() printed only CHARSET clause
      without COLLATE.
      
      Therefore,
      
      HEX(column_create(1,'1212' AS CHAR CHARACTER SET utf8mb3 COLLATE utf8mb3_bin))
      
      inside a VIEW changed to just:
      
      HEX(column_create(1,'1212' AS CHAR CHARACTER SET utf8mb3))
      
      which changed the collation ID seen in the HEX output.
      
      Note, the collation ID inside column_create() is not really much important.
      (It's only important what the character set is).
      And for COLLATE, the more important thing is what's later written
      in the AS clause of COLUMN_GET:
      
      SELECT
         COLUMN_GET(
          column_create(1,'1212' AS CHAR CHARACTER SET utf8mb3 COLLATE utf8mb3_bin)
          column_nr AS type  -- this type is more important
         );
      
      Still, let's add the COLLATE clause into the COLUMN_CREATE() print output,
      although it's not important for now for anything else than just the HEX output.
      At least to make VIEW work in a more predictable way with HEX(COLUMN_CREATE()).
      
      Also, in the future we can start using somehow the collation ID written inside
      COLUMN_CREATE(), for example by making the `AS type` clause optional in
      COLUMN_GET():
        COLUMN_GET(dyncol_blob, column_nr [AS type]);
      instead of:
        COLUMN_GET(dyncol_blob, column_nr AS type);
      
      SQL Server compatibility layer may need this for
      the SQL_Variant data type support.
      29bb321f
  5. 28 Mar, 2024 3 commits
    • Dmitry Shulga's avatar
      MDEV-33768: Memory leak found in the test main.constraints run with... · e1876e7f
      Dmitry Shulga authored
      MDEV-33768: Memory leak found in the test main.constraints run with --ps-protocol against a server built with the option -DWITH_PROTECT_STATEMENT_MEMROOT
      
      The discovered memory leak was introduced by the commit
        762bf7a0
          (MDEV-22602 Disable UPDATE CASCADE for SQL constraints)
      
      The reason why a memory leaked on running the test main.constraints
      is that a statement arena was used for allocation a memory
      for storing a constraint name. A constraint name is an entity having
      temporary nature by its design so runtime arena should be used for its
      allocation.
      e1876e7f
    • Dmitry Shulga's avatar
      MDEV-33767: Memory leaks found in some tests run with --ps-protocol against a... · f44e41db
      Dmitry Shulga authored
      MDEV-33767: Memory leaks found in some tests run with --ps-protocol against a server built with the option -DWITH_PROTECT_STATEMENT_MEMROOT
      
      Found memory leaks were introduced by the commit
        a896bebf
        MDEV-18844 Implement EXCEPT ALL and INTERSECT ALL operations
      and caused by using a statement arena instead a runtime arena for
      allocation of objects having temporary life span by their nature.
      Aforementioned memory leaks were produced by running queries
      that typically use select with intersect, union or table values
      constructors.
      
      To fix these memory leaks use the runtime arena for allocation
      of Item_field objects used by set operations.
      
      Additionally, OOM handling added on allocation of aforementioned
      Item_field objects.
      f44e41db
    • Daniel Black's avatar
      MDEV-33044 Loading time zones does not work with alter_algorithm INPLACE (postfix) · 9f1019ba
      Daniel Black authored
      Test case doesn't work on embedded builds.
      9f1019ba
  6. 27 Mar, 2024 17 commits
  7. 25 Mar, 2024 2 commits
  8. 22 Mar, 2024 2 commits
  9. 19 Mar, 2024 1 commit
  10. 18 Mar, 2024 3 commits
    • Daniel Black's avatar
      MDEV-33636: RPM caps is on mariadbd exe · a13e521b
      Daniel Black authored
      Postfix on 51e3f1da that
      mariadbd should be the executable name rather than capabilities
      on a symlink.
      a13e521b
    • Marko Mäkelä's avatar
      Work around missing MSAN instrumentation · 4592af2e
      Marko Mäkelä authored
      Let us skip the recently added test main.mysql-interactive if
      an instrumented ncurses library is not available.
      
      In InnoDB, let us work around an uninstrumented libnuma, by
      declaring that the objects returned by numa_get_mems_allowed()
      are initialized.
      4592af2e
    • Marko Mäkelä's avatar
      MDEV-33478: Tests massively fail with clang-18 -fsanitize=memory · 09d991d0
      Marko Mäkelä authored
      Starting with clang-16, MemorySanitizer appears to check that
      uninitialized values not be passed by value nor returned.
      Previously, it was allowed to copy uninitialized data in such cases.
      
      get_foreign_key_info(): Remove a local variable that was passed
      uninitialized to a function.
      
      DsMrr_impl: Initialize key_buffer, because DsMrr_impl::dsmrr_init()
      is reading it.
      
      test_bind_result_ext1(): MYSQL_TYPE_LONG is 32 bits, hence we must
      use a 32-bit type, such as int. sizeof(long) differs between
      LP64 and LLP64 targets.
      09d991d0
  11. 15 Mar, 2024 2 commits