1. 30 Apr, 2020 3 commits
    • Anushree Prakash B's avatar
      Bug#30689251 - BACKPORT TO MYSQL-5.6, BUG#29597896 - NULL POINTER DEREFERENCE IN LIBMYSQL · e8e67bd4
      Anushree Prakash B authored
      DESCRIPTION:
      ============
      There can be issues if the packets sent by the server
      are not proper. Certain checks should be performed at the
      client side while unpacking fields data.
      
      FIX:
      ====
      Check for the appropriate fields data and error out if it
      is not present.
      
      RB: 23601
      e8e67bd4
    • Sivert Sorumgard's avatar
      Bug#30628268: OUT OF MEMORY CRASH · 39c60116
      Sivert Sorumgard authored
      The event scheduler has a THD which is used for e.g. keeping track
      of the timing of the events. Thus, each scheduling of an event will
      make use of this THD, which in turn allocates memory in the THD's
      mem root. However, the mem root was never cleared, and hence, the
      memory occupied would monotonically increase throughout the life
      time of the server.
      
      The root cause was found by Jon Olav Hauglid, and this fix clears the
      THD's mem root for each event being scheduled.
      
      Change-Id: I462d2b9fd9658c9f33ab5080f7cd0e0ea28382df
      39c60116
    • Sergei Golubchik's avatar
      Bug#29915479 RUNNING COM_REGISTER_SLAVE WITHOUT COM_BINLOG_DUMP CAN RESULTS IN SERVER EXIT · 6bb28e0b
      Sergei Golubchik authored
      in fact, in MariaDB it cannot, but it can show spurious slaves
      in SHOW SLAVE HOSTS.
      
      slave was registered in COM_REGISTER_SLAVE and un-registered after
      COM_BINLOG_DUMP. If there was no COM_BINLOG_DUMP, it would never
      unregister.
      6bb28e0b
  2. 29 Apr, 2020 4 commits
  3. 25 Apr, 2020 1 commit
  4. 24 Apr, 2020 1 commit
  5. 18 Apr, 2020 1 commit
    • Igor Babaev's avatar
      MDEV-21932 Another attempt to fix the bug . · 29cdd508
      Igor Babaev authored
      The first patch for the bug was erroneous: it did not take into account
      the fact that the modified function get_key_scans_params() was called in
      different contexts. As a result the patch caused a regression bug MDEV-22191.
      The patch for this bug introduced an extra parameter. Actually we can
      do without this parameter and use the fourth parameter for the same
      puropose - to differentiate between the calls of the function for range
      access and for index merge access.
      
      Also removed the call of get_key_scans_params() in the code of the function
      merge_same_index_scans() as not needed.
      29cdd508
  6. 16 Apr, 2020 2 commits
  7. 08 Apr, 2020 1 commit
  8. 03 Apr, 2020 1 commit
    • Hannu Hartikainen's avatar
      my.cnf: mention that config files must be *.cnf · 64b70b09
      Hannu Hartikainen authored
      It took me a long time to debug why my configs were not being loaded,
      and judging from online discussions I'm not the only one. Make the
      comment in the default my.cnf a bit more helpful.
      
      The !includedir directive is implemented in mysys/my_default.c.
      
      - f_extensions[] is a list of file extensions. It includes .ini and .cnf
        on Windows, and only .cnf on all other platforms.
      - search_default_file_with_ext() contains the !includedir directive. It
        filters files in the directory to those matching f_extensions[].
      
      This file should only be applicable on Unix-like platforms, so only
      files with the .cnf extension are read.
      
      Closes #1485
      64b70b09
  9. 24 Mar, 2020 1 commit
  10. 15 Mar, 2020 1 commit
    • Igor Babaev's avatar
      MDEV-10466 Server crashed in SEL_ARG::store_min() with extended_keys=on · 407b0a6a
      Igor Babaev authored
      This bug could manifest itself in a very rare cases when the optimizer
      chose an execution plan by which a joined table was accessed by a table
      scan and the optimizer was checking whether ranges checked for each record
      could improve this plan. In such cases the optimizer evaluates range
      conditions over a table that depend on other tables. For such conditions
      the constructed SEL_ARG trees are marked as MAYBE_KEY. If a SEL_ARG object
      constructed for a sargable condition marked as RANGE_KEY had the same
      first key part as a MAYBE_KEY SEL_ARG object and the key_and() function
      was called for this pair of SEL_ARG objects then an invalid SEL_ARG
      object could be constructed that ultimately could lead to a crash before
      the execution phase.
      407b0a6a
  11. 13 Mar, 2020 1 commit
    • Igor Babaev's avatar
      MDEV-21932 A fast plan with ROR index-merge is ignored when · 5af12e46
      Igor Babaev authored
                'index_merge_sort_union=off'
      
      When index_merge_sort_union is set to 'off' and  index_merge_union is set
      to 'on' then any evaluated index merge scan must consist only of ROR scans.
      The cheapest out of such index merges must be chosen. This index merge
      might not be the cheapest index merge.
      5af12e46
  12. 11 Mar, 2020 1 commit
  13. 12 Feb, 2020 1 commit
  14. 29 Jan, 2020 1 commit
  15. 27 Jan, 2020 1 commit
  16. 17 Jan, 2020 2 commits
  17. 16 Jan, 2020 2 commits
  18. 13 Jan, 2020 1 commit
  19. 03 Jan, 2020 1 commit
  20. 17 Dec, 2019 1 commit
  21. 16 Dec, 2019 1 commit
  22. 13 Dec, 2019 2 commits
  23. 02 Dec, 2019 1 commit
  24. 29 Nov, 2019 2 commits
    • Anel Husakovic's avatar
    • Daniel Black's avatar
      MDEV-15503: mtr fix --strace · 866e5c25
      Daniel Black authored
      $glob_mysql_test_dir was the wrong directory for strace output as
      it was for in-tree builds only so failed for:
      * out of tree builds
      * --parallel; and
      * --mem
      
      strace output wasn't saved.
      
      strace-option never replaced existing arguments (so ammended
      documentation).
      
      strace-client didn't accept an argument as described.
      
      Replaced specification of client with this with 'stracer' to be
      consistent with --debugger option.
      
      For consistency with debugger options, --client-strace was added to
      execute the strace on the mysqltest.
      
      Example: Running one test
      
      $ ./mtr --strace --client-strace funcs_1.is_table_constraints
      Logging: ./mtr  --strace --client-strace funcs_1.is_table_constraints
      vardir: /home/anel/mariadb/5.5/mysql-test/var
      Checking leftover processes...
      Removing old var directory...
       - WARNING: Using the 'mysql-test/var' symlink
      Creating var directory '/home/anel/mariadb/5.5/mysql-test/var'...
      Checking supported features...
      MariaDB Version 5.5.67-MariaDB-debug
      Installing system database...
       - SSL connections supported
       - binaries are debug compiled
      Collecting tests...
      
      ==============================================================================
      
      TEST                                      RESULT   TIME (ms) or COMMENT
      --------------------------------------------------------------------------
      
      worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 16000..16019
      funcs_1.is_table_constraints             [ pass ]   1270
      --------------------------------------------------------------------------
      The servers were restarted 0 times
      Spent 1.270 of 3 seconds executing testcases
      
      Completed: All 1 tests were successful
      
      $ find -L . -name \*strace -ls
            653     56 -rw-r--r--   1 anel     anel        57147 Nov 29 15:08 ./var/log/mysqltest.strace
            646   1768 -rw-r--r--   1 anel     anel      1809855 Nov 29 15:08 ./var/log/mysqld.1.strace
      
      Example: Running test in parallel
      
      $ mysql-test/mtr --strace --client-strace  --mem --parallel=3  main.select
      Logging: /home/dan/software_projects/mariadb-server/mysql-test/mysql-test-run.pl  --strace --client-strace --mem --parallel=3 main.select
      vardir: /home/dan/software_projects/build-mariadb-10.3/mysql-test/var
      Checking leftover processes...
      Removing old var directory...
      Creating var directory '/home/dan/software_projects/build-mariadb-10.3/mysql-test/var'...
       - symlinking 'var' to '/dev/shm/var_auto_0v2E'
      Checking supported features...
      MariaDB Version 5.5.67-MariaDB
       - SSL connections supported
      Collecting tests...
      Installing system database...
      
      ==============================================================================
      
      TEST                                  WORKER RESULT   TIME (ms) or COMMENT
      --------------------------------------------------------------------------
      
      worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 16000..16019
      worker[3]  - 'localhost:16040' was not free
      worker[2] Using MTR_BUILD_THREAD 301, with reserved ports 16020..16039
      worker[3] Using MTR_BUILD_THREAD 303, with reserved ports 16060..16079
      main.select                              w1 [ pass ]   7310
      --------------------------------------------------------------------------
      The servers were restarted 0 times
      Spent 7.310 of 11 seconds executing testcases
      
      Completed: All 1 tests were successful.
      
      $ find mysql-test/var/ -name \*strace -ls
        5213766   1212 -rw-r--r--   1  dan      dan       1237817 May 20 16:47 mysql-test/var/1/log/mysqltest.strace
        5214733  13016 -rw-r--r--   1  dan      dan      13328335 May 20 16:47 mysql-test/var/1/log/mysqld.1.strace
      
      $ mysql-test/mtr --strace --client-strace --strace-option='-e' --strace-option='trace=openat'  --mem --parallel=3  main.select
      ...
      $ find mysql-test/var/ -name \*strace -ls
        5220790      8 -rw-r--r--   1  dan      dan          6291 May 20 17:02 mysql-test/var/3/log/mysqltest.strace
        5224140    308 -rw-r--r--   1  dan      dan        314356 May 20 17:02 mysql-test/var/3/log/mysqld.1.strace
      $ more mysql-test/var/3/mysqltest.strace
      1692  openat(AT_FDCWD, "/home/dan/software_projects/mariadb-server/libmysql/.libs/tls/x86_64/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) =
      -1 ENOENT (No such file or directory)
      1692  openat(AT_FDCWD, "/home/dan/software_projects/mariadb-server/libmysql/.libs/tls/x86_64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOE
      NT (No such file or directory)
      
      Closes #600
      866e5c25
  25. 22 Nov, 2019 1 commit
  26. 05 Nov, 2019 1 commit
  27. 04 Nov, 2019 1 commit
    • Sergei Golubchik's avatar
      MDEV-20971 ASAN heap-use-after-free in list_delete / heap_close · cd156e2c
      Sergei Golubchik authored
      Don't save/restore HP_INFO as it could be changed by a concurrent thread.
      different parts of HP_INFO are protected by different mutexes and
      the mutex that protect most of the HP_INFO does not protect its open_list
      data.
      
      As a bonus, make heap_check_heap() to take const HP_INFO* and not
      make any changes there whatsoever.
      cd156e2c
  28. 30 Oct, 2019 2 commits
  29. 29 Oct, 2019 1 commit