1. 05 Feb, 2020 1 commit
  2. 04 Feb, 2020 3 commits
  3. 03 Feb, 2020 2 commits
    • Jan Lindström's avatar
      MDEV-20625 : MariaDB asserting when enabling wsrep_on · 574354a6
      Jan Lindström authored
      When wsrep_on is changed to ON we might need to run wsrep_init
      if wsrep-provider is set and wsrep is not inited.
      574354a6
    • Sachin's avatar
      MDEV-20001 Potential dangerous regression: INSERT INTO >=100 rows fail for... · eed6d215
      Sachin authored
      MDEV-20001 Potential dangerous regression: INSERT INTO >=100 rows fail for myisam table with HASH indexes
      
      Problem:-
      
      So the issue is when we do bulk insert with rows
      > MI_MIN_ROWS_TO_DISABLE_INDEXES(100) , We try to disable the indexes to
      speedup insert. But current logic also disables the long unique indexes.
      
      Solution:- In ha_myisam::start_bulk_insert if we find long hash index
      (HA_KEY_ALG_LONG_HASH) we will not disable the index.
      
      This commit also refactors the mi_disable_indexes_for_rebuild function,
      Since this is function is called at only one place, it is inlined into
      start_bulk_insert
      
      mi_clear_key_active is added into myisamdef.h because now it is also used
      in ha_myisam.cc file.
      
      (Same is done for Aria Storage engine)
      eed6d215
  4. 02 Feb, 2020 2 commits
  5. 01 Feb, 2020 2 commits
  6. 31 Jan, 2020 3 commits
    • Marko Mäkelä's avatar
      MDEV-17844 recs_off_validate() fails in page_zip_write_trx_id_and_roll_ptr() · d87b725e
      Marko Mäkelä authored
      In commit 0e5a4ac2 (MDEV-15562)
      we introduced was a bogus debug check failure that does not affect
      the correctness of the release build.
      
      With a fixed-length PRIMARY KEY, we do not have to recompute
      the rec_get_offsets() after restarting the mini-transaction,
      because the offsets of DB_TRX_ID,DB_ROLL_PTR are not going
      to change.
      
      row_undo_mod_clust(): Invoke rec_offs_make_valid() to keep the
      debug check in page_zip_write_trx_id_and_roll_ptr() happy.
      
      The scenario to reproduce this bug should be rather unlikely:
      In the time frame when row_undo_mod_clust() has committed its
      first mini-transaction and has not yet started the next one,
      another mini-transaction must do something that causes the page
      to be reorganized, split or merged.
      d87b725e
    • Marko Mäkelä's avatar
      Fixup cd2c0e01 · 88bcc7f2
      Marko Mäkelä authored
      The variable 'dlh' was being used uninitialized if WSREP_PROVIDER
      is not set.
      88bcc7f2
    • Sachin's avatar
      Empty commit · a10a94b2
      Sachin authored
      a10a94b2
  7. 29 Jan, 2020 2 commits
  8. 28 Jan, 2020 1 commit
  9. 27 Jan, 2020 1 commit
  10. 26 Jan, 2020 2 commits
  11. 25 Jan, 2020 1 commit
  12. 24 Jan, 2020 8 commits
    • Sergei Petrunia's avatar
      MDEV-21383: Possible range plan is not used under certain conditions · 7e8a5802
      Sergei Petrunia authored
      [Variant 2 of the fix: collect the attached conditions]
      
      Problem:
      make_join_select() has a section of code which starts with
       "We plan to scan all rows. Check again if we should use an index."
      
      the code in that section will [unnecessarily] re-run the range
      optimizer using this condition:
      
        condition_attached_to_current_table AND current_table's_ON_expr
      
      Note that the original invocation of range optimizer in
      make_join_statistics was done using the whole select's WHERE condition.
      Taking the whole select's WHERE condition and using multiple-equalities
      allowed the range optimizer to infer more range restrictions.
      
      The fix:
      - Do range optimization using a condition that is an AND of this table's
      condition and all of the previous tables' conditions.
      - Also, fix the range optimizer to prefer SEL_ARGs with type=KEY_RANGE
      over SEL_ARGS with type=MAYBE_KEY, regardless of the key part.
      Computing
      key_and(
        SEL_ARG(type=MAYBE_KEY key_part=1),
        SEL_ARG(type=KEY_RANGE, key_part=2)
      )
      will now produce the SEL_ARG with type=KEY_RANGE.
      7e8a5802
    • Oleksandr Byelkin's avatar
      fix tests · fdb9b05c
      Oleksandr Byelkin authored
      fdb9b05c
    • Oleksandr Byelkin's avatar
      Merge branch '10.3' into 10.4 · bfc24bb2
      Oleksandr Byelkin authored
      bfc24bb2
    • Oleksandr Byelkin's avatar
    • Oleksandr Byelkin's avatar
      Merge branch '10.2' into 10.3 · ceda5f72
      Oleksandr Byelkin authored
      ceda5f72
    • Oleksandr Byelkin's avatar
      Merge branch '10.1' into 10.2 · f2ccfcac
      Oleksandr Byelkin authored
      f2ccfcac
    • Marko Mäkelä's avatar
      ac3e3e12
    • Sujatha's avatar
      MDEV-21490: binlog tests fail with valgrind: Conditional jump or move depends... · 599a0609
      Sujatha authored
      MDEV-21490: binlog tests fail with valgrind: Conditional jump or move depends on uninitialised value in sql_ex_info::init
      
      Problem:
      =======
      P1) Conditional jump or move depends on uninitialised value(s)
          sql_ex_info::init(char const*, char const*, bool) (log_event.cc:3083)
      
      code: All the following variables are not initialized.
      ----
        return ((cached_new_format != -1) ? cached_new_format :
          (cached_new_format=(field_term_len > 1 || enclosed_len > 1 ||
          line_term_len > 1 || line_start_len > 1 || escaped_len > 1)));
      
      P2) Conditional jump or move depends on uninitialised value(s)
          Rows_log_event::Rows_log_event(char const*, unsigned
            int, Format_description_log_event const*) (log_event.cc:9571)
      
      Code: Uninitialized values is reported for 'var_header_len' variable.
      ----
        if (var_header_len < 2 || event_len < static_cast<unsigned
            int>(var_header_len + (post_start - buf)))
      
      P3) Conditional jump or move depends on uninitialised value(s)
          Table_map_log_event::pack_info(Protocol*) (log_event.cc:11553)
      
      code:'m_table_id' is uninitialized.
      ----
        void Table_map_log_event::pack_info(Protocol *protocol)
        ...
        size_t bytes= my_snprintf(buf, sizeof(buf), "table_id: %lu (%s.%s)",
                                    m_table_id, m_dbnam, m_tblnam);
      
      Fix:
      ===
      P1 - Fix)
      Initialize cached_new_format,field_term_len, enclosed_len, line_term_len,
      line_start_len, escaped_len members in default constructor.
      
      P2 - Fix)
      "var_header_len" is initialized by reading the event buffer. In case of an
      invalid event the buffer will contain invalid data. Hence added a check to
      validate the event data. If event_len is smaller than valid header length
      return immediately.
      
      P3 - Fix)
      'm_table_id' within Table_map_log_event is initialized by reading data from
      the event buffer. Use 'VALIDATE_BYTES_READ' macro to validate the current
      state of the buffer. If it is invalid return immediately.
      599a0609
  13. 23 Jan, 2020 6 commits
  14. 22 Jan, 2020 1 commit
    • Jan Lindström's avatar
      MDEV-17571 : Make systemd timeout behavior more compatible with long Galera SSTs · 8a931e4d
      Jan Lindström authored
      This is 10.4 version.
      
      Idea is to create monitor thread for both donor and joiner that will
      periodically if needed extend systemd timeout while SST is being
      processed. In 10.4 actual SST is executed by running SST script
      and exchanging messages on pipe using blocking fgets. This fix
      starts monitoring thread before SST script is started and
      we stop monitoring thread when SST has been completed.
      8a931e4d
  15. 21 Jan, 2020 5 commits
    • Oleksandr Byelkin's avatar
      Merge branch '10.3' into 10.4 · 6918157e
      Oleksandr Byelkin authored
      6918157e
    • Sergei Golubchik's avatar
      MDEV-21249 MariaDB 10.3.10 When referring to bigint to generate timestamp data... · 8eec2d61
      Sergei Golubchik authored
      MDEV-21249 MariaDB 10.3.10 When referring to bigint to generate timestamp data in the virtual generated column, the value of the generated column does not change when the time zone changes
      
      FROM_UNIXTIME() depends on @@time_zone, so it's VCOL_SESSION_FUNC
      8eec2d61
    • Marko Mäkelä's avatar
      MDEV-21539 Assertion ...prtype... failed in row_log_table_apply_convert_mrec · 1084fa77
      Marko Mäkelä authored
      This bug is a cousin of MDEV-18719 and MDEV-20190, which failed to
      relax a debug assertion in one more code path.
      
      row_log_table_apply_convert_mrec(): Use dict_col_t::same_format()
      and ignore all format-agnostic flags in the assertions.
      1084fa77
    • Andrei Elkin's avatar
      MDEV-20821 parallel slave server shutdown hang · 5cd21ac2
      Andrei Elkin authored
      Parallel slave server shutdown found to be hanging in
      close_connections() triggered by shutdown due to a slave worker thread
      would not be notified to exit in case the worker was sitting idle.
      
      Fixed with destroying the worker pool earlier that is in
      slave_prepare_for_shutdown() when all their driver threads have already left.
      A test file is added to simulate the bug condition as well as check
      multi-sourced and not-idle worker cases.
      5cd21ac2
    • Vlad Lesin's avatar
      MDEV-14183: aria_pack segfaults in compress_maria_file · 4e7f3fb8
      Vlad Lesin authored
      Column definition order in st_maria_share::columndef can differ from
      order of fields in record(see also st_maria_share::column_nr,
      st_maria_columndef::column_nr, _ma_column_nr_write(),
      _ma_column_nr_read()). This was not taken into account in aria_pack
      tool.
      
      The fix is to initialize elements of HUFF_COUNTS array in the correct
      order.
      4e7f3fb8