1. 05 May, 2020 5 commits
  2. 04 May, 2020 9 commits
  3. 30 Apr, 2020 2 commits
    • Marko Mäkelä's avatar
      Cleanup: Reduce que_thr_t, que_fork_t, trx_lock_t size · f544a712
      Marko Mäkelä authored
      que_thr_t::magic_n: Remove. Access to freed data is best caught
      by AddressSanitizer.
      
      que_thr_t::start_running(): Replaces que_thr_move_to_run_state_for_mysql()
      and que_thr_move_to_run_state(), which were identical non-inline functions.
      
      que_thr_t::stop_no_error(): Replaces que_thr_stop_for_mysql_no_error().
      
      que_fork_t::n_active_thrs, trx_lock_t::n_active_thrs: Make debug-only.
      
      que_fork_t::set_active(bool active): Update n_active_thrs.
      f544a712
    • Sujatha's avatar
      MDEV-22317: SIGSEGV in my_free/delete_dynamic in optimized builds (ARIA) · 77e1b0c3
      Sujatha authored
      Post push fix.
      
      when "replicate_wild_do_table" and "replicate_wild_ignore_table" filters
      and changed dynamically the filter list gets cleared but the corresponding
      "wild_do_table_inited" and "wild_ignore_table_inited" flags are not getting
      cleared.
      
      Fix: Clear the flags.
      77e1b0c3
  4. 29 Apr, 2020 11 commits
    • Marko Mäkelä's avatar
      MDEV-22337: Fix type mismatch · 89aebdf9
      Marko Mäkelä authored
      89aebdf9
    • Varun Gupta's avatar
      MDEV-22160: SIGSEGV in st_join_table::save_explain_data on SELECT · 7f03a933
      Varun Gupta authored
      Adding a test case for rowid filter, the crash was fixed by MDEV-22191
      7f03a933
    • Sergei Petrunia's avatar
      MDEV-22401: Optimizer trace: multi-component range is not printed correctly · 7bc67357
      Sergei Petrunia authored
      KEY_MULTI_RANGE::range_flag does not have correct flag bits for
      per-endpoint flags (NEAR_MIN, NEAR_MAX, NO_MIN_RANGE, NO_MAX_RANGE).
      It only has bits for flags that describe both endpoints.
      So
      - Document this.
      - Switch optimizer trace to using {start|end}_key.flag values, instead.
        This fixes the bug.
      - Switch records_in_column_ranges() to doing that too. (This used to
        work, because KEY_MULTI_RANGE::range_flag had correct flag value
        for the last key component, and EITS only uses one-component
        pseudo-indexes)
      7bc67357
    • Marko Mäkelä's avatar
      Cleanup: More trx_t member functions · 3e6722d8
      Marko Mäkelä authored
      trx_t::rollback(): Renamed from trx_rollback_to_savepoint().
      
      trx_t::rollback_low(): Renamed from trx_rollback_to_savepoint_low().
      
      fts_sql_commit(): Defined as an alias of trx_commit_for_mysql().
      fts_sql_rollback(): Defined as an alias of trx_t::rollback().
      
      fts_rename_aux_tables_to_hex_format(): Fix the error handling
      that likely never worked because we failed to roll back the
      first transaction.
      3e6722d8
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 496d0372
      Marko Mäkelä authored
      496d0372
    • Marko Mäkelä's avatar
      MDEV-7962: Remove one more wsrep_on() · 5ba2aa1d
      Marko Mäkelä authored
      trx_rollback_to_savepoint(): Invoke trx_t::is_wsrep().
      5ba2aa1d
    • Marko Mäkelä's avatar
      MDEV-7962: Follow-up fix for 10.4 · cfbbf542
      Marko Mäkelä authored
      Replace wsrep_on() with trx_t::is_wsrep() where possible.
      
      Also, rename some functions to member functions and
      remove unused DBUG_EXECUTE_IF instrumentation:
      
      trx_t::commit(): Renamed from trx_commit().
      
      trx_t::commit_low(): Renamed from trx_commit_low().
      
      trx_t::commit_in_memory(): Renamed from trx_commit_in_memory().
      cfbbf542
    • Alexey Botchkov's avatar
      MDEV-22337 Assertion `Alloced_length >= (str_length + length + net_le…... · d4da131c
      Alexey Botchkov authored
      MDEV-22337 Assertion `Alloced_length >= (str_length + length + net_le… …ngth_size(length))' failed in Binary_string::q_net_store_data on long MULTIPOLYGON query with session_track_user_variables=1 (optimized builds).
      
      We have to reserve enough space in String to use q_something().
      Also pointer calculations fixed.
      d4da131c
    • Alexey Botchkov's avatar
      MDEV-21915 Server crashes in copy_fields,Item_func_group_concat::add … · ffc5e00e
      Alexey Botchkov authored
      …while using json_arrayagg() as a window function.
      
      We don't support JSON_ARRAYAGG and JSON_OBJECTAGG in window functions
      yet.
      ffc5e00e
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 0632b803
      Marko Mäkelä authored
      0632b803
    • Sujatha's avatar
      MDEV-22317: SIGSEGV in my_free/delete_dynamic in optimized builds (ARIA) · 2e6b21be
      Sujatha authored
      Problem:
      =======
      SET @@GLOBAL.replicate_wild_ignore_table='';
      SET @@GLOBAL.replicate_wild_do_table='';
      
      Reports following valgrind error.
      
      Conditional jump or move depends on uninitialised value(s)
      Rpl_filter::set_wild_ignore_table(char const*) (rpl_filter.cc:439)
      
      Conditional jump or move depends on uninitialised value(s)
      at 0xF60390: delete_dynamic (array.c:304)
      by 0x74F3F2: Rpl_filter::set_wild_do_table(char const*) (rpl_filter.cc:421)
      
      Analysis:
      ========
      List of values provided for options "wild_do_table" and "wild_ignore_table" are
      stored in DYNAMIC_ARRAYS.  When an empty list is provided these dynamic arrays
      are not initialized.  Existing code treats empty element list as an error and
      tries to clean the uninitialized list. This results in above valgrind issue.
      
      Fix:
      ===
      The clean up should be initiated only when there is an error while parsing the
      'wild_do_table' or 'wild_ignore_table' list and the dynamic_array is in
      initialized state. Otherwise for empty list it should simply return success.
      2e6b21be
  5. 28 Apr, 2020 13 commits