- 20 Dec, 2019 1 commit
-
-
Eugene Kosov authored
If we manually poison memory region, ASAN requires that we manually unpoison it too. We didn't do it and munmap() didn't do it too. That was the issue. os_mem_free_large(): unpoison memory region. Just in case. https://github.com/google/sanitizers/issues/182 https://github.com/llvm/llvm-project/blob/86acaa9457d3957cbe303e1e801f1e727f66ca89/compiler-rt/include/sanitizer/asan_interface.h#L21
-
- 18 Dec, 2019 2 commits
-
-
Jan Lindström authored
-
Jan Lindström authored
Problem was that wsrep_on was OFF.
-
- 17 Dec, 2019 3 commits
-
-
Vladislav Vaintroub authored
Fixed the condition for waking up/creating another thread. If there is some work to do (if the request queue is not empty), a thread should be woken or created. The condition was incorrect since 18c9b345
-
Sergei Golubchik authored
We cannot have -Werror for third-party submodules because whenever they break the build we cannot fix it as needed.
-
Varun Gupta authored
The query requires 2 temporary tables for execution, the window function is always attached to the last temporary table, but in this case the result field of the window function points to the first temporary table rather than the last one. Fixed this by not changing window function items with temporary table items of the first temporary table.
-
- 13 Dec, 2019 1 commit
-
-
Anel Husakovic authored
PR#1127: Fix is_check_constraints.result to be compatibile with 10.3 The patch is done according to the original patch for MDEV-14474 1edd09c325525cba33152 and not one which is merged on server d526679e. This patch includes: - Rename from `is_check_constraint` to `is_check_constraints` to tests and results - Per review, change the order of fields in IS check_constraints table by adding the column `table_name` before `constraint_name`. According to the standard 2006 there is no `table_name` column. - Original patch and one in `10.3` supports embedded server this patch doesn't support. After the merge `10.3` will not support also. - Don't use patch c8b8b01b61 to change the length of `CHECK_CLAUSE` field PR#1150: MDEV-18440: Information_schema.check_constraints possible data leak This patch is extension of PR 1127 and includes: - Check for table grants - Additional test according to the MDEV specification Signed-off-by: Vicențiu Ciorbaru <vicentiu@mariadb.org>
-
- 12 Dec, 2019 2 commits
-
-
Eugene Kosov authored
offset_t: this is a type which represents one record offset. It's unsigned short int. a lot of functions: replace ulint with offset_t btr_pcur_restore_position_func(), page_validate(), row_ins_scan_sec_index_for_duplicate(), row_upd_clust_rec_by_insert_inherit_func(), row_vers_impl_x_locked_low(), trx_undo_prev_version_build(): allocate record offsets on the stack instead of waiting for rec_get_offsets() to allocate it from mem_heap_t. So, reducing memory allocations. RECORD_OFFSET, INDEX_OFFSET: now it's less convenient to store pointers in offset_t* array. One pointer occupies now several offset_t. And those constant are start indexes into array to places where to store pointer values REC_OFFS_HEADER_SIZE: adjusted for the new reality REC_OFFS_NORMAL_SIZE: increase size from 100 to 300 which means less heap allocations. And sizeof(offset_t[REC_OFFS_NORMAL_SIZE]) now is 600 bytes which is smaller than previous 800 bytes. REC_OFFS_SEC_INDEX_SIZE: adjusted for the new reality rem0rec.h, rem0rec.ic, rem0rec.cc: various arguments, return values and local variables types were changed to fix numerous integer conversions issues. enum field_type_t: offset types concept was introduces which replaces old offset flags stuff. Like in earlier version, 2 upper bits are used to store offset type. And this enum represents those types. REC_OFFS_SQL_NULL, REC_OFFS_MASK: removed get_type(), set_type(), get_value(), combine(): these are convenience functions to work with offsets and it's types rec_offs_base()[0]: still uses an old scheme with flags REC_OFFS_COMPACT and REC_OFFS_EXTERNAL rec_offs_base()[i]: these have type offset_t now. Two upper bits contains type.
-
Vlad Lesin authored
copy thread) mariabackup hangs waiting until innodb redo log thread read log till certain LSN, and it waits under FTWRL. If there is redo log read error in the thread, it is finished, and main thread knows nothing about it, what leads to hanging. As it hangs under FTWRL, slave threads on server side can be blocked due to MDL lock conflict. The fix is to finish mariabackup with error message on innodb redo log read failure.
-
- 11 Dec, 2019 4 commits
-
-
Varun Gupta authored
The issue here is window function makes the passed string object to point to an area in a temporary table's record buffer. Then, the temporary table is freed, together with its record buffer. Then, Item_cache_str attempts to read this value. The fix is to call value_buff.copy(). This will make the value_buff to store its string in a buffer that it owns, which will not disappear unexpectedly.
-
Daniel Bartholomew authored
-
Vladislav Vaintroub authored
Simplify loading messages into mariabackup. Do the same as server does We're forcing english, so there is no attempt to load errmsg.sys
-
Vladislav Vaintroub authored
-
- 10 Dec, 2019 7 commits
-
-
Marko Mäkelä authored
When using huge pages, the innodb_buffer_pool_size cannot necessarily be restored. Simplify things by restarting the server.
-
Marko Mäkelä authored
InnoDB RNG maintains global state, causing otherwise unnecessary bus traffic. Even worse, this is cross-mutex traffic. That is, different mutexes suffer from contention. Fixed delay of 4 was verified to give best throughput by OLTP update index and read-write benchmarks on Intel Broadwell (2/20/40) and ARM (1/46/46). This is a backport of ce047900 from MariaDB Server 10.3.
-
Marko Mäkelä authored
We should not need anywhere near 32 bits of entropy, so we might just limit ourselves to a 32-bit random number generator. Also, it might be cheaper to use exclusive-or, bit shifting and conditional jumps, instead of multiplication and addition. We use relaxed atomic operations on the global random number generator state in order in an attempt to silence any warnings about race conditions. There is an obvious race condition between the load and store in ut_rnd_gen(), but we do not think that it matters much that the state of the random number generator could 'stutter'. This change seems makes the 'uncompress_ops' nondeterministic in innodb_zip.cmp_per_index after the restart. It looks like there is an inherent race condition in the test, because the table could be opened for InnoDB statistics recalculation already before innodb_cmp_per_index_enabled was set. We might end up having uncompress_ops anywhere between 0 and 9, or perhaps even more. Let us remove that part of the test.
-
Marko Mäkelä authored
ut_rnd_interval(): Remove the first parameter, which was mostly passed as 0. Implement as a simple wrapper around ut_rnd_gen(). Trivially return 0 if the size of the interval is smaller than 2. ut_rnd_ulint_counter, ut_rnd_gen_next_ulint(), ut_rnd_gen_ulint(): Remove.
-
Marko Mäkelä authored
ut_rnd_set_seed(): Unused function; remove. ut_rnd_gen(): Renamed from page_cur_lcg_prng(). ut_rnd_current: The internal state of ut_rnd_gen(). page_cur_open_on_rnd_user_rec(): Replace linear search with page_rec_get_nth().
-
Eugene Kosov authored
FreeState(): replace pointer to freed memory with NULL. This actually fixes a crash which is use-after-free as reported by ASAN DbugParse(): unconditionally lock mutex because we're touching shared init_settings.keywords
-
Oleksandr Byelkin authored
When there is a WITH clause we postpone check for tables without database for later stages when tables in WITH will be defined. But we should not try to open such tables as temporary tables because temporary tables always belong to a some database.
-
- 09 Dec, 2019 3 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The InnoDB internal SQL parser, which is used for updating the InnoDB data dictionary tables (to be removed in MDEV-11655), persistent statistics (to be refactored in MDEV-15020) and fulltext indexes, implements some unused keywords and built-in functions: OUT BINARY BLOB INTEGER FLOAT SUM DISTINCT READ COMPACT BLOCK_SIZE TO_CHAR TO_NUMBER BINARY_TO_NUMBER REPLSTR SYSDATE PRINTF ASSERT RND RND_STR ROW_PRINTF UNSIGNED Also, procedures are never declared with parameters. Only one top-level procedure is declared and invoked at a time, and parameters are being passed via pars_info_t.
-
Jan Lindström authored
MDEV-21189: Dropping partition with 'wsrep_OSU_method=RSU' and 'SESSION sql_log_bin = 0' cases the galera node to hang Found two bugs (1) have_committing_connections was missing mutex unlock on one exit case. As this function is called on a loop it caused mutex lock when we already owned the mutex. This could cause hang. (2) wsrep_RSU_begin did set up error code when partition to be dropped could not be MDL-locked because of concurrent operations but wrong error code was propagated to upper layer causing error to be ignored. This could have also caused the hang.
-
- 08 Dec, 2019 3 commits
-
-
Alexey Botchkov authored
Add necessary checks.
-
Vladislav Vaintroub authored
reenable ssl_8k_key on Windows, which was affected by this bug
-
Vladislav Vaintroub authored
Enable CRL checking on Windows. Enable certificate verification testing in client testing.
-
- 04 Dec, 2019 2 commits
-
-
Elena Stepanova authored
-
Jan Lindström authored
In MariaDB 10.2 master could have been configured so that there is extra annotate events. When we peak next event type for CTAS we need to skip annotate events.
-
- 03 Dec, 2019 8 commits
-
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Oleksandr Byelkin authored
-
Eugene Kosov authored
Ensure that pointer to a buffer which is used for both reads and writes is properly aligned. I've intentially put permanent check right before io_submit() call instead of the time of setting iocb date. I think that'll make check better. LinuxAIOHandler::resever_slot(): check arguments alignment in debug builds
-
Jan Lindström authored
Add proper wsrep sync wait.
-
Marko Mäkelä authored
The function get_wkb_of_default_point() should never have been added, and the cleanup in commit 56ff6f1b should have removed it. The unnecessary code was added in mysql/mysql-server@0a27b72171c4449f506ad4e93df8c29fead1ed72 and mostly disabled in mysql/mysql-server@8f11af7734509821b654f2c330dff5374c89073c. In MariaDB, the types DATA_POINT and DATA_VAR_POINT are never used. Instead, DATA_GEOMETRY continues to be used since 10.2.2, introduced by mysql/mysql-server@673bad7c7e17701b69e29d0fbc4e2d68c1a7b613 in MySQL 5.7.1.
-
- 02 Dec, 2019 2 commits
-
-
Anel Husakovic authored
-
Faustin Lammler authored
The lintian Debian tool is complaining about: 'W: mariadb-test: manpage-has-errors-from-man usr/share/man/man1/mysql-test-run.pl.1.gz 246: warning [p 2, 6.0i, div '3tbd1,1', 0.3i]: can't break line' See: https://salsa.debian.org/faust-guest/mariadb-10.3/-/jobs/431900 The following command permits to catch the problematic lines: $ groff -man -Tascii ./mysql-test-run.pl.1 | less Closes #1419
-
- 30 Nov, 2019 2 commits
-
-
Jan Lindström authored
galera_2nodes.cnf did not contain wsrep_on=1 on correct places. Fixed restart options to use correct configuration.
-
Eugene Kosov authored
-