1. 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
  2. 16 Apr, 2020 2 commits
  3. 08 Apr, 2020 1 commit
  4. 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
  5. 24 Mar, 2020 1 commit
  6. 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
  7. 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
  8. 11 Mar, 2020 1 commit
  9. 12 Feb, 2020 1 commit
  10. 29 Jan, 2020 1 commit
  11. 27 Jan, 2020 1 commit
  12. 17 Jan, 2020 2 commits
  13. 16 Jan, 2020 2 commits
  14. 13 Jan, 2020 1 commit
  15. 03 Jan, 2020 1 commit
  16. 17 Dec, 2019 1 commit
  17. 16 Dec, 2019 1 commit
  18. 13 Dec, 2019 2 commits
  19. 02 Dec, 2019 1 commit
  20. 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
  21. 22 Nov, 2019 1 commit
  22. 05 Nov, 2019 1 commit
  23. 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
  24. 30 Oct, 2019 2 commits
  25. 29 Oct, 2019 2 commits
  26. 28 Oct, 2019 1 commit
  27. 19 Oct, 2019 3 commits
  28. 15 Oct, 2019 3 commits
  29. 11 Oct, 2019 1 commit
    • Marko Mäkelä's avatar
      MDEV-20805 ibuf_add_free_page() is not initializing FIL_PAGE_TYPE first · ea61b796
      Marko Mäkelä authored
      In the function recv_parse_or_apply_log_rec_body() there are debug checks
      for validating the state of the page when redo log records are being
      applied. Most notably, FIL_PAGE_TYPE should be set before anything else
      is being written to the page.
      
      ibuf_add_free_page(): Set FIL_PAGE_TYPE before performing any other changes.
      ea61b796