- 26 Mar, 2021 1 commit
-
-
Marko Mäkelä authored
A side effect of the MDEV-24589 bug fix is that if FLUSH TABLE...FOR EXPORT is initiated before the history of an earlier DROP INDEX operation has been purged, then the data file will contain allocated pages that belonged to the dropped indexes. These pages would never be freed after a subsequent IMPORT TABLESPACE. We will work around this regression by making IMPORT TABLESPACE tolerate pages that refer to an unknown index.
-
- 25 Mar, 2021 1 commit
-
-
Daniel Black authored
HAVE_valgrind_or_MSAN to HAVE_valgrind was incorrect in af784385. In my_valgrind.h when clang exists (hence no __has_feature(memory_sanitizer), and -DWITH_VALGRIND=1, but without memcheck.h, we end up with a MEM_CHECK_DEFINED being empty. If we are also doing a CMAKE_BUILD_TYPE=Debug this results a number of [-Werror,-Wunused-variable] errors because MEM_CHECK_DEFINED is empty. With MEM_CHECK_DEFINED empty, there becomes no uses of this of the fixed field and innodb variables in this patch. So we stop using HAVE_valgrind as catchall and use the name HAVE_CHECK_MEM to indicate that a CHECK_MEM_DEFINED function exists. Reviewer: Monty Corrects: af784385
-
- 23 Mar, 2021 4 commits
-
-
Marko Mäkelä authored
row_upd_clust_step(): Remove the "trigger" on DELETE SYS_INDEXES that would invoke dict_drop_index_tree(). Let us do it on purge. row_purge_remove_clust_if_poss_low(): Invoke dict_drop_index_tree() when purging a delete-marked SYS_INDEXES record.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
dict_table_open_on_index_id(): Remove. This function was used by the background scrubbing, which was removed in commit a5584b13.
-
Alexey Bychko authored
-
- 22 Mar, 2021 2 commits
-
-
Monty authored
Found by running valgrind on mtr tests
-
Otto Kekäläinen authored
Reseting -> Resetting Unknow -> Unknown capabilites -> capabilities choosen -> chosen direcory -> directory informations -> information openned -> opened refered -> referred to access -> one to access missmatch -> mismatch succesfully -> successfully dont -> don't
-
- 20 Mar, 2021 4 commits
-
-
Marko Mäkelä authored
In commit 412533b4 (MDEV-18582), one of the counters that was ported from XtraDB is useless. Innodb_buffered_aio_submitted would be 0 or 1, depending on whether is_linux_native_aio_supported() was executed to the point where it would be incremented. Let us remove this counter, because it has no practical value. Even if its value were 1, io_setup() can still fail and we may end up with innodb_use_native_aio=0.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
David Carlier authored
In this platform, it s better not to rely on optional proc filesystem presence. Using native API to retrieve binary absolute path instead.
-
- 19 Mar, 2021 10 commits
-
-
Alice Sherepa authored
-
Alice Sherepa authored
-
Marko Mäkelä authored
-
Alice Sherepa authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Sergei Golubchik authored
This partially reverts 66106130
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Daniel Black authored
AIX detects tell in the configure however it really isn't there. Use the my_seek aka lseek implementation.
-
- 18 Mar, 2021 15 commits
-
-
Igor Babaev authored
If a query with implicit grouping contains in MIN/MAX set function in the select list over a column that is a part of an index then the query might be subject to MIN/MAX optimization. With this optimization the server performs a look-up into an index, fetches a value of the column C used in the MIN/MAX function and substitute the MIN/MAX expression for this value. This allows to eliminate the table containing C from further join processing. In order the optimization to be applied the WHERE condition must be a conjunction of simple equality/inequality predicates or/and BETWEEN predicates. The bug fixed in the patch resulted in fetching a wrong value from the index used for MIN/MAX optimization. It may happened when a BETWEEN predicate containing the MIN/MAX value followed a strict inequality. Approved by dmitry.shulga@mariadb.com
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Tests with 4096-byte sector size confirm that it is safe to use O_DIRECT with page_compressed tables. That had been disabled on Linux, in an attempt to fix MDEV-21584 which had been filed for the O_DIRECT problems earlier. The fil_node_t::block_size was being set mostly correctly until commit 10dd290b (MDEV-17380) introduced a regression in MariaDB Server 10.4.4. fil_node_open_file(): Only avoid setting O_DIRECT on ROW_FORMAT=COMPRESSED tables that use KEY_BLOCK_SIZE=1 or 2 (1024 or 2048 bytes). fil_ibd_create(): Avoid setting O_DIRECT on ROW_FORMAT=COMPRESSED tables that use KEY_BLOCK_SIZE=1 or 2 (1024 or 2048 bytes). fil_node_t::find_metadata(): Require fstat() to be always invoked outside Microsoft Windows, so that fil_node_t::block_size can be set. fil_node_t::read_page0(): Rely on find_metadata() to assign block_size. Thanks to Vladislav Vaintroub for testing this on Microsoft Windows using an old-fashioned rotational hard disk with 4KiB sector size. Reviewed by: Vladislav Vaintroub This is a port of commit 00f620b2 and commit 6505662c from 10.2.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Before MDEV-14638, there was no race condition between the execution of fetch_data_into_cache() and transaction commit. fetch_data_into_cache(): Acquire trx_t::mutex before checking trx_t::state, to prevent a concurrent transition from TRX_STATE_COMMITTED_IN_MEMORY to TRX_STATE_NOT_STARTED in trx_commit_in_memory().
-
Marko Mäkelä authored
-
Marko Mäkelä authored
ha_innobase::info_low(): While collecting statistics for ANALYZE TABLE, ensure that dict_stats_process_entry_from_recalc_pool() is not executing on the same table. We observed result differences for the test innodb.innodb_stats because dict_stats_empty_index() was being invoked by the background statistics calculation while ha_innobase::analyze() was executing dict_stats_analyze_index_level().
-
Marko Mäkelä authored
Tests with 4096-byte sector size confirm that it is safe to use O_DIRECT with page_compressed tables. That had been disabled on Linux, in an attempt to fix MDEV-21584 which had been filed for the O_DIRECT problems earlier. The fil_node_t::block_size was being set mostly correctly until commit 10dd290b (MDEV-17380) introduced a regression in MariaDB Server 10.4.4. fil_node_t::read_page0(): Initialize fil_node_t::block_size. This will probably make similar code in fil_space_extend_must_retry() redundant, but we play it safe and will not remove that code. Thanks to Vladislav Vaintroub for testing this on Microsoft Windows using an old-fashioned rotational hard disk with 4KiB sector size. Reviewed by: Vladislav Vaintroub
-
Vladislav Vaintroub authored
This patch implements OS_DATA_FILE_NO_O_DIRECT on Windows.
-
Marko Mäkelä authored
This had been originally added in mysql/mysql-server@192bb153b675fe09037a53e456a79eee7211e3a7 with the motivation to disable O_DIRECT for the dedicated tablespace for temporary tables. In MariaDB Server, commit 5eb53955 (MDEV-12227) should be a better solution. The code became orphaned later in mysql/mysql-server@c61244c0e6c58727cffebfb312ac415a463fa0fe and it had been applied to MariaDB Server 10.2.2 in commit 2e814d47 and commit fec844ac. Thanks to Vladislav Vaintroub for spotting this.
-
Jan Lindström authored
MDEV-24916 : Assertion `current_stmt_binlog_format == BINLOG_FORMAT_STMT || current_stmt_binlog_format == BINLOG_FORMAT_ROW' failed in THD::is_current_stmt_binlog_format_row Store old value of binlog format before wsrep code so that if we bail out because wsrep is not ready for connections we can restore binlog format correctly.
-
Jan Lindström authored
MDEV-18874 : Galera test MW-286 causes Mutex = TTASEventMutex<GenericPolicy>]: Assertion `!is_owned()' failed. assertion MDEV-24649 galera.galera_bf_lock_wait MTR failed with sigabrt: Assertion `!is_ow ned()' failed in sync0policy.ic on MutexDebug with Mutex = TTASEventMutex<GenericPolicy> Bug was fixed as part of MDEV-23328, this just adds test cases to regression set.
-
Daniel Black authored
ALIGN was defined already: mysys/crc32/crc32c.cc:390: warning: "ALIGN" redefined #define ALIGN(n, m) ((n + ((1 << m) - 1)) & ~((1 << m) - 1)) In file included from /root/aix/build/include/my_global.h:543, from /root/aix/build/mysys/crc32/crc32c.cc:22: /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8/include-fixed/sys/socket.h:788: note: this is the location of the previous definition #define ALIGN(p) (ulong)((caddr_t)(p) + MACHINE_ALIGNMENT - 1 - \
-
Etienne Guesnet authored
-
Daniel Black authored
As evidenced by converstation on Zulip, knowing where to install a plugin is important too.
-
- 17 Mar, 2021 3 commits
-
-
Sergei Petrunia authored
Note they key_or() may call tree_delete(), which will cause the weight asserts to be checked. In order to avoid them from firing, update key1 tree's weight after we've changed key1->some_local_child->next_key_part. Having done that, do we still need this at the function end: /* Re-compute the result tree's weight. */ key1->update_weight_locally(); ?
-
Otto Kekäläinen authored
-
Otto Kekäläinen authored
Upstreamed from https://salsa.debian.org/mariadb-team/mariadb-10.5/-/tree/master/debian/po
-