- 26 Sep, 2024 1 commit
-
-
Julius Goryavsky authored
-
- 25 Sep, 2024 1 commit
-
-
Denis Protivensky authored
Appliers need to verify foreign key constraints during normal operation, in multi-active topologies, and for this reason appliers are configured to enable FK checking. However, during node joining, in IST and latter catch up period, the node is still idle (from local connections), and only source for incoming transactions is the cluster sending certified write sets for applying. IST happens with parallel applying, and there is a possibility that foreign key check cause lock conflicts between appliers accessing FK child and parent tables. Also, the excessive FK checking will slow down IST process somewhat. For this reasons, we could relax FK checks for appliers during IST and catch up periods. The relaxed FK check mode should, however, be configurable e.g. by wsrep_mode flag: SKIP_APPLIER_FK_CHECKS_IN_IST. When this operation mode is set, and the node is processing IST or catch up, appliers should skip FK checking. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
- 24 Sep, 2024 1 commit
-
-
Denis Protivensky authored
Applied SR transaction on the child table was not BF aborted by TOI running on the parent table for several reasons: Although SR correctly collected FK-referenced keys to parent, TOI in Galera disregards common certification index and simply sets itself to depend on the latest certified write set seqno. Since this write set was the fragment of SR transaction, TOI was allowed to run in parallel with SR presuming it would BF abort the latter. At the same time, DML transactions in the server don't grab MDL locks on FK-referenced tables, thus parent table wasn't protected by an MDL lock from SR and it couldn't provoke MDL lock conflict for TOI to BF abort SR transaction. In InnoDB, DDL transactions grab shared MDL locks on child tables, which is not enough to trigger MDL conflict in Galera. InnoDB-level Wsrep patch didn't contain correct conflict resolution logic due to the fact that it was believed MDL locking should always produce conflicts correctly. The fix brings conflict resolution rules similar to MDL-level checks to InnoDB, thus accounting for the problematic case. Apart from that, wsrep_thd_is_SR() is patched to return true only for executing SR transactions. It should be safe as any other SR state is either the same as for any single write set (thus making the two logically equivalent), or it reflects an SR transaction as being aborting or prepared, which is handled separately in BF-aborting logic, and for regular execution path it should not matter at all. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
-
- 23 Sep, 2024 2 commits
-
-
Marko Mäkelä authored
Starting with GCC 7 and clang 15, single-bit operations such as fetch_or(1) & 1 are translated into 80386 instructions such as LOCK BTS, instead of using the generic translation pattern of emitting a loop around LOCK CMPXCHG. Given that the oldest currently supported GNU/Linux distributions ship GCC 7, and that older versions of GCC are out of support, let us remove some work-arounds that are not strictly necessary. If someone compiles the code using an older compiler, it will work but possibly less efficiently. srw_mutex_impl::HOLDER: Changed from 1U<<31 to 1 in order to work around https://github.com/llvm/llvm-project/issues/37322 which is specific to setting the most significant bit. srw_mutex_impl::WAITER: A multiplier of waiting requests. This used to be 1, which would now collide with HOLDER. fil_space_t::set_stopping(): Remove this unused function. In MSVC we need _interlockedbittestandset() for LOCK BTS.
-
Lena Startseva authored
Fix for v. 10.6
-
- 20 Sep, 2024 2 commits
-
-
Daniel Black authored
Aria transaction ids are uint16 rather than uint. Change the type to be more accurate.
-
mariadb-DebarunBanerjee authored
The issue is caused by a race between buf_page_create_low getting the page from buffer pool hash and buf_LRU_free_page evicting it from LRU. The issue is introduced in 10.6 by MDEV-27058 commit aaef2e1d MDEV-27058: Reduce the size of buf_block_t and buf_page_t The solution is buffer fix the page before releasing buffer pool mutex in buf_page_create_low when x_lock_try fails to acquire the page latch.
-
- 16 Sep, 2024 2 commits
-
-
Julius Goryavsky authored
-
Julius Goryavsky authored
-
- 15 Sep, 2024 12 commits
-
-
Julius Goryavsky authored
-
Julius Goryavsky authored
-
Julius Goryavsky authored
-
Julius Goryavsky authored
-
Julius Goryavsky authored
-
Julius Goryavsky authored
The lsof utility is prone to blocking on system calls that it uses to obtain information about sockets (or files, devices, etc.). This behavior is described in its own documentation. It has a '-b' option (in combination with warnings suppression via '-w') that reduces the probability of blocking, introducing new problems (luckily probably not relevant for our use case). However, there is no guarantee that it will not hang on some distributions, with some TCP/IP stack implementations, or with some filesystems, etc. Also, of the three utilities that are suitable for our purposes, lsof is the slowest. So if there are other utilities that we use during SST, such as 'ss' or 'sockstat', it is reasonable to use them instead of lsof. This commit changes the prioritization of utilities, it does not need additional tests (besides the numerous SST tests already available in the galera suites). If the system still need to use lsof, this commit adds the '-b' and '-w' options to it command line - to reduce the likelihood of blocking.
-
Julius Goryavsky authored
-
Julius Goryavsky authored
-
Julius Goryavsky authored
-
Julius Goryavsky authored
Removed handling of the long-unsupported xtrabackup_pid file, as it is not even created by modern versions of mariabackup. Instead, added stopping of the asynchronous process that mariabackup runs (if it is still active) to the exception handler.
-
Julius Goryavsky authored
This commit makes the SST script for mariabackup more resilient to unexpected terminations or hangs while mariabackup or when SST scripts in a previous session are still running (in reality they were hung while waiting for something).
-
Julius Goryavsky authored
-
- 14 Sep, 2024 1 commit
-
-
Marko Mäkelä authored
GCC 12.2.0 could issue -Wnonnull for an unreachable call to strlen(new_path). Let us prevent that by replacing the condition (type == FILE_RENAME) with the equivalent (new_path). This should also optimize the generated code, because the life time of the parameter "type" will be reduced.
-
- 13 Sep, 2024 1 commit
-
-
Marko Mäkelä authored
my_b_encr_write(): Initialize also block_length, and at the same time last_block_length, so that all 128 bits can be initialized with fewer writes. This fixes an error that was caught in the test encryption.tempfiles_encrypted. test_my_safe_print_str(): Skip a test that would attempt to display uninitialized data in the test unit.stacktrace. Previously, our CI did not build unit tests with MemorySanitizer. handle_delayed_insert(): Remove a redundant call to pthread_exit(0), which would for some reason cause MemorySanitizer in clang-19 to report a stack overflow in a RelWithDebInfo build. This fixes a failure of several tests. Reviewed by: Vladislav Vaintroub
-
- 12 Sep, 2024 5 commits
-
-
Dave Gosselin authored
Emit a warning in the event that we finished processing input files before reaching the boundary indicated by --stop-datetime.
-
Dave Gosselin authored
Emit a warning in the event that we finished processing input files before reaching the boundary indicated by --stop-position.
-
Marko Mäkelä authored
buf_page_t::read_complete(): Fix an incorrect condition that had been added in commit aaef2e1d (MDEV-27058). Also for compressed-only pages we must remember that buffered changes may exist. buf_read_page(): Correct the function comment; this is for a synchronous and not asynchronous read. Pass the parameter unzip=true to buf_read_page_low(), because each of our callers will be interested in the uncompressed page frame. This will cause the test encryption.innodb-compressed-blob to emit more errors when the correct keys for decrypting the clustered index root page are unavailable. Reviewed by: Debarun Banerjee
-
Marko Mäkelä authored
buf_pool_t::page_fix(): If a change buffer merge may be needed on a ROW_FORMAT=COMPRESSED page that exists in compressed-only format in the buffer pool, go ahead to decompress the block. This fixes an infinite loop. Reviewed by: Debarun Banerjee
-
Yuchen Pei authored
-
- 11 Sep, 2024 5 commits
-
-
Monty authored
-
Monty authored
Add support for removing the Content-Type header to the S3 engine. This is required for compatibility with some S3 providers. This also adds a provider option to the S3 engine which will turn on relevant compatibility options for specific providers. This was required for getting MariaDB S3 engine to work with "Huawei Cloud S3". To get Huawei S3 storage to work on has set one of the following S3 options: s3_provider=Huawei s3_ssl_no_verify=1 Author: Andrew Hutchings <andrew@mariadb.org>
-
Sergei Petrunia authored
-
Yuchen Pei authored
-
Daniel Black authored
The 10.5->10.6 merge commit 3bc98a4e casts the arg to an int16 pointer in set_extraction_flag_processor(). This matched the previous commit c76eabfb where set_extraction_flag was changed to have int16 arg instead of int. The commit a5e4c349 for MDEV-29363 added a call to set_extraction_flag_processor on IMMUTABLE_FL (MARKER_IMMUTABLE in 10.6). The subsequent 10.5->10.6 merge f071b762 did not cast the flag to int16 when merging this change. The result is big-endian processors cleared the immutable flag rather than set the flag, resulting in MDEV-29363 being unfixed on big-endian processors.
-
- 10 Sep, 2024 7 commits
-
-
Yuchen Pei authored
MDEV-31788 Factor functions to reduce duplication around spider_check_and_init_casual_read in ha_spider.cc factored out static functions: - spider_prep_loop - spider_start_bg - spider_send_queries
-
Yuchen Pei authored
-
Yuchen Pei authored
-
Yuchen Pei authored
-
Yuchen Pei authored
-
Yuchen Pei authored
They are for unnecessary debugging purposes only.
-
Yuchen Pei authored
The functions called in blocks protected by this macro remain undefined as of 11.5 c96b23f9
-