1. 26 Jul, 2022 4 commits
  2. 25 Jul, 2022 2 commits
    • Vlad Lesin's avatar
      MDEV-21136 InnoDB's records_in_range estimates can be way off · 222e800e
      Vlad Lesin authored
      Get rid of BTR_ESTIMATE and btr_cur_t::path_arr.
      
      Before the fix btr_estimate_n_rows_in_range_low() used two
      btr_cur_search_to_nth_level() calls to create two arrays of tree path,
      the array per border. And then it tried to estimate the number of rows
      diving level-by-level with the array elements. As the path pages are
      unlatched during the arrays iterating, the tree could be modified, the
      estimation function called itself until the number of attempts exceed.
      
      After the fix the estimation happens during search process. Roughly, the
      algorithm is the following. Dive in the left page, then if there are pages
      between left and right ones, read a few pages to the right, if the right
      page is reached, fetch it and count the exact number of rows, otherwise
      count the estimated number of rows, and fetch the right page.
      
      The latching order corresponds to WL#6326 rules, i.e.:
      
      (2.1) [same as (1.1)]: Page latches must be acquired in descending order
      of tree level.
      
      (2.2) When acquiring a node pointer page latch at level L, we must hold
      the left sibling page latch (at level L) or some ancestor latch
      (at level>L).
      
      When we dive to the level down, the parent page is unlatched only after
      the the current level page is latched. When we estimate the number of rows
      on some level, we latch the left border, then fetch the next page, and
      then fetch the next page unlatching the previous page after the current
      page is latched until the right border is reached. I.e. the left sibling
      is always latched when we acquire page latch on the same level. When we
      reach the right border, the current page is unlatched, and then the right
      border is latched. Following to (2.2) rule, we can do this because the
      right border's parent is latched.
      222e800e
    • Thirunarayanan Balathandayuthapani's avatar
      MDEV-29137 mariabackup excessive logging of ddl tracking · 6156a2be
      Thirunarayanan Balathandayuthapani authored
      - Remove the FILE_MODIFY message from mariabackup which was
      displaying the list of file names which were modified since
      the previous checkpoint.
      6156a2be
  3. 21 Jul, 2022 1 commit
  4. 20 Jul, 2022 1 commit
  5. 19 Jul, 2022 1 commit
    • Anson Chung's avatar
      Fix Ninja builds on Gitlab-CI by limiting parallelism · 3a9cb4c1
      Anson Chung authored
      In previous versions it was stated that MDEV-25968 was causing other
      jobs in the pipeline to fail if not run with "-j 2" but this bug was not
      affecting fedora-ninja. This is still true for the public gitlab runners.
      However, running the fedora-ninja job on custom runners with more processors
      without the "-j 2" flag will cause the compiler to crash.
      
      When running the build with 2,4,8,16,32 threads, build times were
      consistent indicating that the typical bottleneck is I/O and not CPU
      cores. Therefore, "-j 2" is not a big drawback and it was chosen in
      order to remain consistent with the other builds affected by MDEV-25968.
      
      All new code of the whole pull request, including one or several files
      that are either new files or modified ones, are contributed under the
      BSD-new license. I am contributing on behalf of my employer Amazon Web
      Services, Inc.
      3a9cb4c1
  6. 18 Jul, 2022 1 commit
  7. 12 Jul, 2022 1 commit
  8. 09 Jul, 2022 1 commit
  9. 08 Jul, 2022 1 commit
  10. 05 Jul, 2022 1 commit
  11. 04 Jul, 2022 8 commits
    • Marko Mäkelä's avatar
      MDEV-26294 Duplicate entries in unique index not detected when changing collation · f8240a27
      Marko Mäkelä authored
      Problem:
      =======
      ALTER TABLE in InnoDB fails to detect duplicate entries
      for the unique index when the character set or collation of
      an indexed column is changed in such a way that the character
      encoding is compatible with the old table definition.
      In this case, any secondary indexes on the changed columns
      would be rebuilt (DROP INDEX, ADD INDEX).
      
      Solution:
      ========
      During ALTER TABLE, InnoDB keeps track of columns whose collation
      changed, and will fill in the correct metadata when sorting the
      index records, or applying changes from concurrent DML.
      This metadata will be allocated in the dict_index_t::heap of
      the being-created secondary indexes.
      
      The fix was developed by Thirunarayanan Balathandayuthapani
      and simplified by me.
      f8240a27
    • Marko Mäkelä's avatar
      Merge 10.5 into 10.6 · f43145a0
      Marko Mäkelä authored
      f43145a0
    • Vladislav Vaintroub's avatar
      MDEV-28648 main.ssl_timeout fails with OpenSSL 3.0.3 · 9d5718c9
      Vladislav Vaintroub authored
      Depending on OpenSSL version, and at least in 3.0.3, the client-side socket
      timeout is reported as generic error (SSL_ERROR_SYSCALL), losing further
      details (both errno and GetLastError() return 0). This results in client
      reporting "Unknown OpenSSL error" 2026, instead of another generic
      "Lost connection to server during query" 2013
      
      Adjusted test case.
      
      Part of MDEV-29000
      9d5718c9
    • Honza Horak's avatar
      MDEV-27778 md5 in FIPS crashes with OpenSSL 3.0.0 · ef655669
      Honza Horak authored
      OpenSSL 3.0.0+ does not support EVP_MD_CTX_FLAG_NON_FIPS_ALLOW any longer.
      In OpenSSL 1.1.1 the non FIPS allowed flag is context specific, while
      in 3.0.0+ it is a different EVP_MD provider.
      
      Fixes #2010
      
      part of MDEV-29000
      ef655669
    • Oleksandr Byelkin's avatar
      Revert "don't build with OpenSSL 3.0, it doesn't work before MDEV-25785" · 1dc09ce0
      Oleksandr Byelkin authored
      This reverts commit c9beef43, because
      we have OpenSSL 3.0 support here.
      
      part of MDEV-29000
      1dc09ce0
    • Vladislav Vaintroub's avatar
      MDEV-25785 Add support for OpenSSL 3.0 · 8a9c1e9c
      Vladislav Vaintroub authored
      Summary of changes
      
      - MD_CTX_SIZE is increased
      
      - EVP_CIPHER_CTX_buf_noconst(ctx) does not work anymore, points
        to nobody knows where. The assumption made previously was that
        (since the function does not seem to be documented)
        was that it points to the last partial source block.
        Add own partial block buffer for NOPAD encryption instead
      
      - SECLEVEL in CipherString in openssl.cnf
        had been downgraded to 0, from 1, to make TLSv1.0 and TLSv1.1 possible
         (according to https://github.com/openssl/openssl/blob/openssl-3.0.0/NEWS.md
         even though the manual for SSL_CTX_get_security_level claims that it
         should not be necessary)
      
      - Workaround Ssl_cipher_list issue, it now returns TLSv1.3 ciphers,
        in addition to what was set in --ssl-cipher
      
      - ctx_buf buffer now must be aligned to 16 bytes with openssl(
        previously with WolfSSL only), ot crashes will happen
      
      - updated aes-t , to be better debuggable
        using function, rather than a huge multiline macro
        added test that does "nopad" encryption piece-wise, to test
        replacement of EVP_CIPHER_CTX_buf_noconst
      
      part of MDEV-29000
      8a9c1e9c
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 33f0270e
      Marko Mäkelä authored
      33f0270e
    • Marko Mäkelä's avatar
      MDEV-26294 Duplicate entries in unique index not detected when changing collation · 9a0cbd31
      Marko Mäkelä authored
      ha_innobase::check_if_supported_inplace_alter(): Refuse to change the
      collation of a column that would become or remain indexed as part of
      the ALTER TABLE operation.
      
      In MariaDB Server 10.6, we will allow this type of operation;
      that fix depends on MDEV-15250.
      9a0cbd31
  12. 03 Jul, 2022 1 commit
  13. 01 Jul, 2022 10 commits
  14. 30 Jun, 2022 6 commits
  15. 29 Jun, 2022 1 commit