- 26 Jul, 2022 1 commit
-
-
Andrei authored
The hang may be caused by a 1pc branch that was fixed by MDEV-26031 in 10.6 and up. That commit did not look relevant in 10.5 and below so was not pushed to the low branches. To possibly tackle the reported issue the MDEV-26031 is backported now with a test that unlike 10.6 does not expose the former bug in 10.5. It is only needed for checking a refined logics inside MYSQL_BIN_LOG::write_transaction_to_binlog. The latter is made to do away with xid-unlogging (which is suspected to have been at fault) for xid-less transaction.
-
- 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 6 commits
-
-
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.
-
- 01 Jul, 2022 7 commits
-
-
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
-
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 4 commits
-
-
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
- 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
-
- 28 Jun, 2022 2 commits
-
-
Aleksey Midenkov authored
Log MDL state transitions. Trace-friendly message format. DBUG_LOCK_FILE replaced by thread-local storage. Logged states legend: Seized lock was acquired without waiting Waiting lock is waiting Acquired lock was acquired after waiting Released lock was released Deadlock lock was aborted due to deadlock Timeout lock was aborted due to timeout >0 Nowait lock was aborted due to zero timeout Killed lock was aborted due to kill message OOM can not acquire because out of memory Usage: mtr --mysqld=--debug=d,mdl,query:i:o,/tmp/mdl.log Cleanup from garbage messages: sed -i -re \ '/(mysql|performance_schema|sys|mtr)\// d; /MDL_BACKUP_/ d' \ /tmp/mdl.log
-
Alexander Barkov authored
A cleanup for MDEV-25243 ASAN heap-use-after-free in Item_func_sp::execute_impl upon concurrent view DDL and I_S query with view and function The test was reported to fail sporadicaly with this diff: --- mysql-test/main/information_schema_tables.result +++ mysql-test/main/information_schema_tables.reject @@ -21,6 +21,8 @@ disconnect con1; connection default; DROP VIEW IF EXISTS vv; +Warnings: +Note 4092 Unknown VIEW: 'test.vv' in the "The originally reported non-deterministic test" part. Disabling warnings around the DROP VIEW statement.
-
- 27 Jun, 2022 13 commits
-
-
Nayuta Yanagisawa authored
The Spider mixes the comma join with other join types, and thus ERROR 1054 occurs. This is well-known issue caused by the higher precedence of JOIN over the comma (,). We can fix the problem simply by using JOINs instead of commas.
-
Nayuta Yanagisawa authored
MDEV-21310 AUTO_INCREMENT column throws range error on INSERT in partitioned table | Assertion `part_share->auto_inc_initialized || !can_use_for_auto_inc_init()' failed. The bug is caused by a similar mechanism as MDEV-21027. The function, check_insert_or_replace_autoincrement, failed to open all the partitions on INSERT SELECT statements and it results in the assertion error.
-
Nayuta Yanagisawa authored
The heap-use-after-free is caused by the following mechanism: * In the execution of FLUSH TABLE WITH READ LOCK, the function spider_free_trx_conn() is called and the connections held by SPIDER_TRX::trx_conn_hash are freed. * Then, an instance of ha_spider maintains the freed connections because they are also referenced from ha_spider::conns. The ha_spider instance is kept in a lock structure until the corresponding table is unlocked. * Spider accesses ha_spider::conns on the implicit UNLOCK TABLE issued by BEGIN. In the first place, when the connections have been freed, it means that there are really no remote table locked by Spider. Thus, there is no need for Spider to access ha_spider::cons on the implicit UNLOCK TABLE. We can fix the bug by removing the above mentioned access to ha_spider::conns. We also modified spider_free_trx_conn() so that it frees the connections only when no table is locked to reduce the chance of another heap-use-after-free on ha_spider::conns.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
prepare_inplace_alter_table_dict(): If the table will not be rebuilt, preserve all of the original ROW_FORMAT, including the compressed page size flags related to ROW_FORMAT=COMPRESSED.
-
Marko Mäkelä authored
hex_to_ascii(): Add #if around the definition to avoid clang -Wunused-function. Avoid GCC 5 -Wconversion with a cast.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
buf_page_print(): Dump the buffer page 32 bytes (64 hexadecimal digits) per line. In this way, the limitation in mtr ("Data too long for column 'line'") will not be triggered. Also, do not bother decoding the page contents, because everything is present in the hexadecimal output. dict_index_find_on_id_low(): Merge to dict_index_get_if_in_cache_low(). The direct call in buf_page_print() was prone to crashing, in case the table definition was concurrently evicted or dropped from the data dictionary cache.
-
Hirokazu Hata authored
Spider supports (or at least allows) INSERT DELAYED but the documentation does not specify spider as a storage engine that supports "INSERT DELAYED". Also, although not mentioned in the documentation, "INSERT DELAYED" is not intended to be executed inside a transaction, as can be seen from the list of supported storage engines. The current implementation allows executing a delayed insert on a remote transactional table and this breaks the consistency ensured by the transaction. We too remove "internal_delayed", one of the Spider table parameters. Documentation says, > Whether to transmit existence of delay to remote servers when > executing an INSERT DELAYED statement on local server. This table parameter is only used for "INSERT DELAYED". Reviewed by: Nayuta Yanagisawa
-
- 24 Jun, 2022 1 commit
-
-
Oleksandr Byelkin authored
MDEV-22590 SIGSEGV in flush_all_key_blocks when changing key_buffer_size / ASAN: heap-use-after-free in flush_all_key_blocks Take into account that in preparation of a simple key cache for resizing no disk blocks might be assigned to it. Reviewer: IgorBabaev <igor@mariadb.com>
-
- 23 Jun, 2022 1 commit
-
-
Vladislav Vaintroub authored
Fixed tpool timer implementation on POSIX. Prior to this patch, under some specific rare circumstances (concurrency related), timer callback execution might be skipped.
-
- 21 Jun, 2022 1 commit
-
-
Julius Goryavsky authored
This commit contains workaround for a bug known as 'Red Hat issue 1870279' (connection reset by peer issue in socat versions 1.7.3.3 to 1.7.4.0) which further causes crashes during SST using mariabackup (when openssl is used). Also fixed broken logic of automatic generation of the Diffie-Hellman parameters for socat version less than 1.7.3 (which defaults to 512-bit values instead of 2048-bit ones).
-