1. 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
  2. 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
  3. 11 Mar, 2020 1 commit
  4. 12 Feb, 2020 1 commit
  5. 29 Jan, 2020 1 commit
  6. 27 Jan, 2020 1 commit
  7. 17 Jan, 2020 2 commits
  8. 16 Jan, 2020 2 commits
  9. 13 Jan, 2020 1 commit
  10. 03 Jan, 2020 1 commit
  11. 17 Dec, 2019 1 commit
  12. 16 Dec, 2019 1 commit
  13. 13 Dec, 2019 2 commits
  14. 02 Dec, 2019 1 commit
  15. 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
  16. 22 Nov, 2019 1 commit
  17. 05 Nov, 2019 1 commit
  18. 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
  19. 30 Oct, 2019 2 commits
  20. 29 Oct, 2019 2 commits
  21. 28 Oct, 2019 1 commit
  22. 19 Oct, 2019 3 commits
  23. 15 Oct, 2019 3 commits
  24. 11 Oct, 2019 2 commits
    • 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
    • Marko Mäkelä's avatar
      MDEV-19455: Avoid SET DEBUG_DBUG='-d,...' construct · 4ebaf813
      Marko Mäkelä authored
      Apply the correct pattern for debug instrumentation:
      
      SET @save_dbug=@@debug_dbug;
      SET debug_dbug='+d,...';
      ...
      SET debug_dbug=@save_dbug;
      
      Numerous tests use statements of the form
      
      SET debug_dbug='-d,...';
      
      which will inadvertently enable all DBUG tracing output,
      causing unnecessary waste of resources.
      4ebaf813
  25. 07 Oct, 2019 1 commit
  26. 01 Oct, 2019 1 commit
  27. 24 Sep, 2019 1 commit
    • Alexander Barkov's avatar
      MDEV-20495 Assertion `precision > 0' failed in decimal_bin_size upon CREATE ..... · 67b0faa2
      Alexander Barkov authored
      MDEV-20495 Assertion `precision > 0' failed in decimal_bin_size upon CREATE .. SELECT with zerofilled decimal
      
      Also fixes:
      
      MDEV-20560 Assertion `precision > 0' failed in decimal_bin_size upon SELECT with MOD short unsigned decimal
      
      Changing the way how Item_func_mod calculates its max_length.
      It now uses decimal_precision(), decimal_scale() and unsigned_flag
      of its arguments, like all other Item_num_op descendants do.
      67b0faa2
  28. 20 Sep, 2019 2 commits