1. 11 Mar, 2019 8 commits
    • Alexey Botchkov's avatar
      MDEV-18886 JSON_ARRAY() does not recognise JSON argument. · acb4a872
      Alexey Botchkov authored
      JSON_ARRAY and JSON_OBJECT functions with no arguments now get the
      connection charset. Item_func_convert_charset returns the correct
      is_json() flag.
      acb4a872
    • Marko Mäkelä's avatar
      MDEV-18878: Correct a condition · 28e713dc
      Marko Mäkelä authored
      Initialize node->trx_id before checking if a table can be skipped.
      28e713dc
    • Marko Mäkelä's avatar
      Try to address MDEV-17745 · 21975280
      Marko Mäkelä authored
      wait_all_purged.inc: Wait for 60 seconds instead of 30 seconds.
      Purge can be slow on buildbot, especially in ASAN-instrumented builds.
      21975280
    • Marko Mäkelä's avatar
      MDEV-18878: Slimmer purge in non-debug builds · 6e767046
      Marko Mäkelä authored
      purge_node_t::in_progress: Replaces purge_node_t::done.
      Only present in debug builds.
      
      purge_node_t::start(): Moved from the start of row_purge_step().
      
      purge_node_t::end(): Replaces row_purge_end().
      
      trx_purge_attach_undo_recs(): Omit a check from non-debug builds.
      6e767046
    • Marko Mäkelä's avatar
      MDEV-18878 Purge: Optimize away futile table lookups · 1ab049e5
      Marko Mäkelä authored
      If a table has been dropped, rebuilt, or its tablespace has been
      discarded or the table is corrupted, it does not make sense to
      look up that table again while purging old undo log records.
      
      purge_node_t::purge_node_t(): Replaces row_purge_node_create().
      
      que_common_t::que_common_t(): Constructor.
      
      row_import_update_index_root(): Remove the constant parameter
      dict_locked=true, and update the table->def_trx_id in the cache.
      
      purge_node_t::unavailable_table_id: The latest unavailable table ID,
      to avoid future lookups.
      
      purge_node_t::def_trx_id: The latest modification of the table
      identified by unavailable_table_id, or TRX_ID_MAX.
      
      purge_node_t::is_skipped(): Determine if a table should be skipped.
      
      purge_node_t::skip(): Note that a table should be skipped.
      1ab049e5
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · 3ea49d35
      Marko Mäkelä authored
      3ea49d35
    • Eugene Kosov's avatar
      MDEV-17703 Add WITH_UBSAN switch to CMake similar to WITH_ASAN · 2a2ab121
      Eugene Kosov authored
      This can be useful:
      UBSAN_OPTIONS=log_path=/some/path
      
      clang users may want to increase stack size in include/my_pthread.h or enable
      some optimizations
      2a2ab121
    • Marko Mäkelä's avatar
      Clean up mysql-test/suite/galera/disabled.def again · 04150218
      Marko Mäkelä authored
      Clean up after commit 0957d257
      which introduced some disorder (unsorted or duplicated test names).
      04150218
  2. 09 Mar, 2019 6 commits
  3. 08 Mar, 2019 3 commits
  4. 07 Mar, 2019 10 commits
  5. 06 Mar, 2019 13 commits
    • Sergei Golubchik's avatar
      fix memory leaks in mysql_client_test · 57dd892c
      Sergei Golubchik authored
      This fixes main.mysql_client_test, main.mysql_client_test_comp,
      main.mysql_client_test_nonblock failures
      in ASAN_OPTIONS="abort_on_error=1" runs
      57dd892c
    • Sergei Golubchik's avatar
      MDEV-18376 Memory leak in main.mysqladmin · 2f742b57
      Sergei Golubchik authored
      don't initialize mysql structure before it actually becomes needed.
      
      This fixes main.mysqladmin failures
      in ASAN_OPTIONS="abort_on_error=1" runs
      2f742b57
    • Sergei Golubchik's avatar
      MDEV-13818 CREATE INDEX leaks memory if running out of undo log space · 65070bef
      Sergei Golubchik authored
      free already allocated indexes if row_merge_create_index() fails
      
      This fixes innodb.alter_crash failure
      in ASAN_OPTIONS="abort_on_error=1" runs
      65070bef
    • Sergei Golubchik's avatar
      mronga: fix a memory leak · 2b4027e6
      Sergei Golubchik authored
      use the correct delete operator
      
      This fixes mroonga/storage.column_generated_stored_add_column failures
      in ASAN_OPTIONS="abort_on_error=1" runs
      2b4027e6
    • Sergei Golubchik's avatar
      MDEV-18625 ASAN unknown-crash in my_copy_fix_mb /... · 5f105e75
      Sergei Golubchik authored
      MDEV-18625 ASAN unknown-crash in my_copy_fix_mb / ha_mroonga::storage_inplace_alter_table_add_column
      
      disable inplace alter for adding stored generated columns.
      
      This fixes mroonga/storage.column_generated_stored_add_column failures
      in ASAN_OPTIONS="abort_on_error=1" runs
      
      Also, add a test case that shows the bug without ASAN.
      5f105e75
    • Sergei Golubchik's avatar
      ASAN loves stack, give it some · 84645366
      Sergei Golubchik authored
      fixes these test failures in ASAN builds (in 10.1 and 10.4):
      * main.signal_demo3
      * main.sp
      * sys_vars.max_sp_recursion_depth_func
      * mroonga/storage.foreign_key_delete_existent
      * mroonga/storage.foreign_key_delete_nonexistent
      * mroonga/storage.foreign_key_insert_existent
      * mroonga/storage.foreign_key_update_existent
      * mroonga/storage.foreign_key_update_nonexistent
      * mroonga/storage.function_command_auto-escape
      * mroonga/storage.function_command_select
      * mroonga/storage.variable_enable_operations_recording_insert
      84645366
    • Sergei Golubchik's avatar
      5ce6fb59
    • Marko Mäkelä's avatar
      Merge 10.1 into 10.2 · c155946c
      Marko Mäkelä authored
      c155946c
    • Alexander Barkov's avatar
      A cleanup for MDEV-18333 Slow_queries count doesn't increase when slow_query_log is turned off · 26f0d72a
      Alexander Barkov authored
      thd->lex->m_sql_cmd was not cleared between queries.
      log_slow_query() could crash (when running mtr --ps) because of this.
      26f0d72a
    • Marko Mäkelä's avatar
      MDEV-18637 Assertion `cache' failed in fts_init_recover_doc · 485dcb07
      Marko Mäkelä authored
      I know no test case for this bug in 10.1. So a test case will be
      committed separately in 10.2
      
      fts_reset_get_doc(): properly initialize fts_get_doc_t::cache
      485dcb07
    • Marko Mäkelä's avatar
      MDEV-18659: Revert a non-functional change · 4b5dc47f
      Marko Mäkelä authored
      fts_fetch_index_words(): Restore the initialization len=0.
      The test innodb_fts.create in 10.2 would end up in an infinite loop
      if this assignment is removed, because a following iteration of the
      while() loop would assign zip->zp->avail_in=len with the original value
      instead of the 0 that was reset in the previous iteration.
      4b5dc47f
    • Marko Mäkelä's avatar
      MDEV-18659: Fix string truncation/overflow in InnoDB and XtraDB · b7612116
      Marko Mäkelä authored
      Fix the warnings issued by GCC 8 -Wstringop-truncation
      and -Wstringop-overflow in InnoDB and XtraDB.
      
      This work is motivated by Jan Lindström. The patch mainly differs
      from his original one as follows:
      
      (1) We remove explicit initialization of stack-allocated string buffers.
      The minimum amount of initialization that is needed is a terminating
      NUL character.
      (2) GCC issues a warning for invoking strncpy(dest, src, sizeof dest)
      because if strlen(src) >= sizeof dest, there would be no terminating
      NUL byte in dest. We avoid this problem by invoking strncpy() with
      a limit that is 1 less than the buffer size, and by always writing
      NUL to the last byte of the buffer.
      (3) We replace strncpy() with memcpy() or strcpy() in those cases
      when the result is functionally equivalent.
      
      Note: fts_fetch_index_words() never deals with len==UNIV_SQL_NULL.
      This was enforced by an assertion that limits the maximum length
      to FTS_MAX_WORD_LEN. Also, the encoding that InnoDB uses for
      the compressed fulltext index is not byte-order agnostic, that is,
      InnoDB data files that use FULLTEXT INDEX are not portable between
      big-endian and little-endian systems.
      b7612116
    • Marko Mäkelä's avatar
      MDEV-18749: Uninitialized value upon ADD FULLTEXT INDEX · b21930fb
      Marko Mäkelä authored
      row_merge_create_fts_sort_index(): Initialize dict_col_t.
      
      This fixes an access to uninitialized dict_col_t::ind when a debug
      assertion in MariaDB 10.4 invokes is_dropped() in
      rec_get_converted_size_comp_prefix_low(). Older MariaDB versions
      seem to be unaffected by the uninitialized values, but it should
      not hurt to initialize everything.
      b21930fb