1. 22 Feb, 2021 11 commits
    • Sergei Golubchik's avatar
      mtr fixes for old (5.10.1) perl · 7fe351ab
      Sergei Golubchik authored
      7fe351ab
    • Sergei Golubchik's avatar
      support for mtr --valgdb · 77c23c62
      Sergei Golubchik authored
      add a new "debugger" to mtr, that runs the executable
      under valgrind in gdb. valgrind pid is auto-detected,
      but the delay (sleep) and vgdb path are hard-coded for now
      77c23c62
    • Sergei Golubchik's avatar
      unify mtr handling of debuggers · feacc0aa
      Sergei Golubchik authored
      "debugger" is anything that wraps execution of a target
      binary (mysqld or mysqltest). Currently the list includes:
      gdb, ddd, dbx, lldb, valgrind, strace, ktrace, rr,
      devenv, windbg, vsjitdebugger.
      
      for every debugger xxx, mtr will recognize four options:
      --xxx, --boot-xxx, --manual-xxx, --client-xxx.
      They all support an optional "=string" argument. String
      being a semicolon-separated list of commands (e.g. for gdb)
      or one (not semicolon-separated) command line of options
      (e.g. for valgrind). Or both (e.g. --gdb='-quiet -nh;info files'
      
      In embedded both --xxx and --client-xxx work.
      
      Functionality changed/removed:
      * --rr-args is gone
      * --rr-dir is gone
      * --manual-debug is gone
      * --debugger={devenv|vc|windbg|vc_express|vsjitdebugger} is gone
      * --strace-option is gone
      * --stracer={strace|ktrace} is gone
      * --valgrind only enables it for the server, not for everything
      * --valgrind-all is gone
      * --valgrind-mysqltest is gone
      * --valgrind-mysqld is gone
      * --valgrind-options is gone
      * --valgrind-option is gone
      * --valgrind-path is gone
      * --callgrind is gone
      * one cannot combine --valgrind --gdb anymore
      * valgrind report doesn't add a fake test line to the output
      * vc and vcexpress on windows are no longer supported
      feacc0aa
    • Sergei Golubchik's avatar
      cleanup: remove dead code in mtr · 3b0b4e61
      Sergei Golubchik authored
      3b0b4e61
    • Sergei Golubchik's avatar
      cleanup: stat tables · c4f01334
      Sergei Golubchik authored
      don't allocate Column_statistics_collected objects that won't
      be used.
      
      minor style fixes (StringBuffer<>, etc)
      c4f01334
    • Sergei Golubchik's avatar
      MDEV-23753: SIGSEGV in Column_stat::store_stat_fields · 06a791aa
      Sergei Golubchik authored
      only collect persistent stats for columns explicitly listed
      by the user in the  ANALYZE TABLE PERSISTENT FOR COLUMNS (...)
      clause. The engine can extend table->read_set as much as
      it wants, it should not affect the collected statistics.
      
      Test case from the 3b94309a applies - it used to crash,
      because ha_partition extended table->read_set after the loop that
      initialized some objects based on bits in the read_set but before the
      loop that used these objects based on bits in the read_set.
      06a791aa
    • Sergei Golubchik's avatar
      Revert "MDEV-23753: SIGSEGV in Column_stat::store_stat_fields" · caad32ca
      Sergei Golubchik authored
      This reverts the commit 3b94309a but keeps the test
      
      Because the fix is a hack that isn't supposed to do anything,
      and relies on a side-effect of rnd_init inside ha_partition.
      
      A different fix is coming up.
      caad32ca
    • Sergei Golubchik's avatar
      a638f157
    • Daniel Bartholomew's avatar
      bump the VERSION · 6aa90974
      Daniel Bartholomew authored
      6aa90974
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-24863 AHI entries mismatch with the index while reloading the evicted tables. · d7fc4f52
      Thirunarayanan Balathandayuthapani authored
      - This is caused by commit ad6171b9
      (MDEV-22456). InnoDB reloads the evicted table again from dictionary.
      In that case, AHI entries and current index object mismatches
      happens. When index object mismatches then InnoDB should drop
      the page hash AHI entries for the block. In
      btr_search_drop_page_hash_index(), InnoDB should take exclusive
      lock on the AHI latch if index is already freed to avoid the
      freed memory access during buf_pool_resize()
      d7fc4f52
    • Jan Lindström's avatar
      374f4c3f
  2. 18 Feb, 2021 2 commits
  3. 17 Feb, 2021 3 commits
  4. 16 Feb, 2021 4 commits
    • Marko Mäkelä's avatar
      MDEV-15641 fixup: Make the test faster · 067465cd
      Marko Mäkelä authored
      Let us avoid the excessive allocation of explicit record locks
      (a work-around of MDEV-24813) so that the test will execute
      much faster under AddressSanitizer, MemorySanitizer, Valgrind.
      067465cd
    • Varun Gupta's avatar
      MDEV-23291: SUM column from a derived table returns invalid values · 3544643f
      Varun Gupta authored
      The issue here was the read_set bitmap was not set for a field which
      was used as a reference in an inner select.
      We need to make sure that if we are in an inner select and we have
      references from outer select then we update the table bitmaps for
      such references.
      
      Introduced a function in the class Item_subselect that would
      update bitmaps of table for the references within a
      subquery that are defined in outer selects.
      3544643f
    • Varun Gupta's avatar
      MDEV-24779: main.subselect fails in buildbot with --ps-protocol · 7e9a6b7f
      Varun Gupta authored
      Follow-up fix to commit 26f50335(MDEV-23449)
      The GROUP BY clause inside IN/ALL/ANY subquery is removed
      when there is no aggregate function or HAVING clause in the subquery.
      
      When the GROUP BY clause is removed, a subquery can also be removed
      if it part of the GROUP BY clause. This is done inside the function
      remove_redundant_subquery_clauses. Here we walk over the GROUP BY list
      and remove a subselect from its unit via the callback function
      eliminate_subselect_processor.
      
      The issue here was that when the query was being re-executed it was trying
      to reinitialize the select that was removed as stated above.
      This is not required, so the fix would be to remove select_lex
      both from tree lex structure and the global list of nodes so that
      we don't do the reinitialization again.
      7e9a6b7f
    • Varun Gupta's avatar
      MDEV-19474: Histogram statistics are used even with optimizer_use_condition_selectivity=3 · a461e4d3
      Varun Gupta authored
      The issue here was histogram statistics were being used even when
      the level of optimizer_use_condition_selectivity doesn't allow
      usage of statistics from histogram.
      
      The histogram statistics are read for a table only when
      optimizer_use_condition_selectivity > 3. But the TABLE structure can be
      stored in the internal table cache and be reused for the next query.
      So in this case the histogram statistics will be available for the next query.
      
      The fix would be to make sure to use the histogram statistics only when
      optimizer_use_condition_selectivity > 3.
      a461e4d3
  5. 15 Feb, 2021 2 commits
  6. 12 Feb, 2021 3 commits
  7. 11 Feb, 2021 2 commits
    • Julius Goryavsky's avatar
      MDEV-19950: Galera test failure on galera_ssl_upgrade · 95003eab
      Julius Goryavsky authored
      The test requires adaptation for MariaDB, which is done
      in this patch. In addition, this patch includes a fix for
      the SST script startup code that adds escaping for special
      characters on the command line (in case they are contained
      in the arguments to mysqld). The fix does not require
      separate tests, as the required tests are already part
      of the mtr suite for Galera.
      95003eab
    • Jan Lindström's avatar
      Update Galera disabled.def · 362dcf9e
      Jan Lindström authored
      362dcf9e
  8. 08 Feb, 2021 1 commit
  9. 07 Feb, 2021 1 commit
    • Marko Mäkelä's avatar
      Make innodb_gis.rtree_purge run faster · 739abf51
      Marko Mäkelä authored
      A locking SELECT from an InnoDB table is very slow especially
      in debug builds. Replacing some INSERT...SELECT should not reduce
      the test coverage, because the test will still do DELETE
      (which will acquire explicit record locks).
      739abf51
  10. 05 Feb, 2021 5 commits
  11. 03 Feb, 2021 1 commit
    • Sujatha's avatar
      MDEV-22741: *SAN: ERROR: AddressSanitizer: use-after-poison on address in... · eef4c5d3
      Sujatha authored
      MDEV-22741: *SAN: ERROR: AddressSanitizer: use-after-poison on address in instrings/strmake.c:36 from change_master (on optimized builds)
      
      Problem:
      ========
      CHANGE MASTER TO MASTER_USER='root', MASTER_SSL=0, MASTER_SSL_CA='',
        MASTER_SSL_CERT='', MASTER_SSL_KEY='', MASTER_SSL_CRL='',
        MASTER_SSL_CRLPATH='';
      
      CHANGE MASTER TO MASTER_USER='root', MASTER_PASSWORD='', MASTER_SSL=0;
      
      use-after-poison is reported for lex_mi->ssl_crl
      
      File: sql_repl.cc
      
      if (lex_mi->ssl_crl)
        strmake_buf(mi->ssl_crl, lex_mi->ssl_crl);
      
      Analysis:
      ========
      At the end of CHANGE MASTER statement execution, the LEX_MASTER_INFO
      parameters are reset so that the next query will have a clean state. But
      'ssl_crl' and 'ssl_crl_path' members of LEX_MASTER_INFO object are not
      cleared during 'LEX_MASTER_INFO::reset'. Hence when a new CHANGE MASTER
      statement is executed, the stale value of lex_mi->ssl_crl is used, so ASAN
      reports use-after-poison.
      
      Fix:
      ===
      Clear 'ssl_crl' and 'ssl_crl_path' as part of 'reset'.
      eef4c5d3
  12. 02 Feb, 2021 3 commits
  13. 01 Feb, 2021 2 commits