1. 09 Feb, 2020 2 commits
  2. 08 Feb, 2020 1 commit
  3. 05 Feb, 2020 1 commit
  4. 04 Feb, 2020 1 commit
  5. 02 Feb, 2020 5 commits
  6. 31 Jan, 2020 5 commits
  7. 30 Jan, 2020 2 commits
  8. 29 Jan, 2020 1 commit
    • Sujatha's avatar
      MDEV-20923:UBSAN: member access within address … which does not point to an... · d89bb886
      Sujatha authored
      MDEV-20923:UBSAN: member access within address … which does not point to an object of type 'xid_count_per_binlog'
      
      Problem:
      -------
      Accessing a member within 'xid_count_per_binlog' structure results in
      following error when 'UBSAN' is enabled.
      
      member access within address 0xXXX which does not point to an object of type
      'xid_count_per_binlog'
      
      Analysis:
      ---------
      The problem appears to be that no constructor for 'xid_count_per_binlog' is
      being called, and thus the vtable will not be initialized.
      
      Fix:
      ---
      Defined a parameterized constructor for 'xid_count_per_binlog' class.
      d89bb886
  9. 28 Jan, 2020 6 commits
  10. 27 Jan, 2020 3 commits
  11. 26 Jan, 2020 2 commits
  12. 25 Jan, 2020 2 commits
  13. 24 Jan, 2020 7 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
      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
    • Rafli Akmal's avatar
      MDEV-15052: Allow sysusers and tmpfiles install for non-systemd users · 742c36d0
      Rafli Akmal authored
      ..as they have their own tools that parses those files, such as
      opensysusers[1] that handles sysusers file and opentmpfiles[2] that
      handles tmpfiles.d settings
      
      Because of this. Move both sysusers and tmpfiles 'if' function
      outside systemd function, allowing independent install
      Signed-off-by: default avatarRafli Akmal <thefallenrat@artixlinux.org>
      
      [1] - https://github.com/artix-linux/opensysusers
      [2] - https://github.com/OpenRC/opentmpfiles
      
      Changes done by vicentiu@mariadb.org, from original author patch:
      
      Installing sysusers and tmpfiles without checking for systemd existence
      means that by default, cmake will ALWAYS install these files. Our
      general policy is we do not install things which are not needed.
      However, there is a valid use case when these files are useful, as is
      described above.
      
      To allow this, provide an extra switch that can be enabled during
      configuring by doing -DINSTALL_SYSTEMD_{SYSUSERS|TMPFILES}=True
      
      This will use the default path INSTALL_SYSTEMD_{SYSUSERS|TMPFILES}DIR
      fetched from install_layout.cmake for rpm & deb based layouts
      respectively, or they must be overriden if the install_layout is
      standalone.
      
      Example:
      
      cmake . -DINSTALL_SYSTEMD_SYSUSERS=True -DINSTALL_SYSTEMD_SYSUSERSDIR=/etc/sysusers.d
      742c36d0
    • Christian Hesse's avatar
      MDEV-17028: Use descriptive file names for sysusers and tmpfiles configuration · b472bc2e
      Christian Hesse authored
      These files were installed to:
      
      ${INSTALL_SYSTEMD_SYSUSERSDIR}/sysusers.conf
      ${INSTALL_SYSTEMD_TMPFILESDIR}/tmpfiles.conf
      
      Instead rename the files to more descriptive file names 'mariadb.conf'.
      b472bc2e
    • 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
  14. 23 Jan, 2020 2 commits