- 26 Jul, 2022 4 commits
-
-
Daniel Black authored
SHOW ENGINE INNODB STATUS and SHOW GLOBAL VARIABLES were blocking on the locks used to access the history length in MDEV-29141. While the reason for the blockage was elsewhere, we should make these monitoring commands less blocking as there is a trx_sys.history_size_approx function that can be used. SHOW ENGINE INNODB STATUS and SHOW GLOBAL STATUS LIKE 'innodb_history_list_length' and Innodb Monitors can use trx_sys.history_size_approx().
-
Marko Mäkelä authored
-
Thirunarayanan Balathandayuthapani authored
- Remove the FILE_MODIFY message in backup_file_op()
-
Rucha Deodhar authored
This commit is a fixup for MDEV-28762 Analysis: Some recursive json functions dont check for stack control Fix: Add check_stack_overrun(). The last argument is NULL because it is not used
-
- 25 Jul, 2022 2 commits
-
-
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.
-
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.
-
- 21 Jul, 2022 1 commit
-
-
Oleksandr Byelkin authored
It is legal that open table can leave unopened tables in SP and other parts of the code shoud expect it.
-
- 20 Jul, 2022 1 commit
-
-
Rucha Deodhar authored
Analysis: Some recursive json functions dont check for stack control Fix: Add check_stack_overrun(). The last argument is NULL because it is not used
-
- 19 Jul, 2022 1 commit
-
-
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.
-
- 18 Jul, 2022 1 commit
-
-
Vladislav Vaintroub authored
Rewrite queries to not use the deprecated syntax and avoid warnings.
-
- 12 Jul, 2022 1 commit
-
-
Oleksandr Byelkin authored
Close handlers in THD::drop_temporary_table.
-
- 09 Jul, 2022 1 commit
-
-
Daniel Black authored
Step 1 in handling InnoDB AIO assertions better is to get more detail of the cases of error. This doesn't resolve MDEV-27593, but increases the level of information in the assertion.
-
- 08 Jul, 2022 1 commit
-
-
Vladislav Vaintroub authored
Fix the side effect of MDEV-4750 (reenabling innodb_stats_persistent), so that sporadic MDL acquisition for this table does not interfere with SELECT from information_schema.metadata_lock_info
-
- 05 Jul, 2022 1 commit
-
-
Sergei Golubchik authored
mysql_json: GAMMA -> STABLE
-
- 04 Jul, 2022 8 commits
-
-
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.
-
Marko Mäkelä authored
-
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
-
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
-
Oleksandr Byelkin authored
This reverts commit c9beef43, because we have OpenSSL 3.0 support here. part of MDEV-29000
-
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
-
Marko Mäkelä authored
-
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.
-
- 03 Jul, 2022 1 commit
-
-
Vladislav Vaintroub authored
Add limited support for building embedded library (DLL only).
-
- 01 Jul, 2022 10 commits
-
-
Anel Husakovic authored
- Fixes 29e8c154 (MDEV-25857) Review by: <@mariadb.com>
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Starting with 10.5, InnoDB crash recovery tests seem to time out more easily under Valgrind, which emulates multiple threads by interleaving them in a single operating system thread. These tests will still be covered by AddressSanitizer and MemorySanitizer.
-
Marko Mäkelä authored
-
Vladislav Vaintroub authored
Remove the affected assert. Wait for all AIO_buffer_cache::release_buffer() to finish before AIO_buffer_cache::clear().
-
Marko Mäkelä authored
-
Thirunarayanan Balathandayuthapani authored
- InnoDB mistakenly identifies the non-unique FTS_DOC_ID index as FTS_DOC_ID_INDEX while loading the table. dict_load_indexes() should check whether the index is unique before assigning fts_doc_id_index
-
Marko Mäkelä authored
Before version 10, GCC would think that a right shift of an unsigned char returns int. Let us explicitly cast that back, to silence a bogus -Wconversion warning.
-
Marko Mäkelä authored
Also, refactor trx_i_s_common_fill_table() to remove dead code. Warnings about yynerrs in Bison-generated yyparse() will remain for now.
-
Marko Mäkelä authored
K&R style function definitions are deprecated in all versions of C and not supported in C2x.
-
- 30 Jun, 2022 6 commits
-
-
Marko Mäkelä authored
-
Thirunarayanan Balathandayuthapani authored
MDEV-28919 Assertion `(((core_null) + 7) >> 3) == oindex.n_core_null_bytes || !not_redundant()' failed - In case of discarded tablespace, InnoDB can't read the root page to assign the n_core_null_bytes. Consecutive instant DDL fails because of non-matching n_core_null_bytes.
-
Marko Mäkelä authored
fil_space_t::acquire_low(): Introduce a parameter that specifies which flags should be avoided. At all times, referenced() must not be incremented if the STOPPING flag is set. When fil_system.mutex is not being held by the current thread, the reference must not be incremented if the CLOSING flag is set (unless NEEDS_FSYNC is set, in fil_space_t::flush()). fil_space_t::acquire(): Invoke acquire_low(STOPPING | CLOSING). In this way, the reference count cannot be incremented after fil_space_t::try_to_close() invoked fil_space_t::set_closing(). If the CLOSING flag was set, we must retry acquire_low() after acquiring fil_system.mutex. fil_space_t::prepare_acquired(): Replaces prepare(true). fil_space_t::acquire_and_prepare(): Replaces prepare(). This basically retries fil_space_t::acquire() after acquiring fil_system.mutex.
-
Marko Mäkelä authored
-
Thirunarayanan Balathandayuthapani authored
MDEV-28806 Assertion `flag == 1' failure in row_build_index_entry_low upon concurrent ALTER and UPDATE - During online ADD INDEX, InnoDB was incorrectly writing log for an UPDATE that does not affect the being-created index.
-
Thirunarayanan Balathandayuthapani authored
- Redundant InnoDB table fails to set the flags2 while loading the table. It leads to "Upgrade index name failure" during alter operation. InnoDB should set the flags2 to FTS_AUX_HEX_NAME when fts is being loaded
-
- 29 Jun, 2022 1 commit
-
-
Sergei Golubchik authored
-