- 14 Jul, 2020 10 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The only InnoDB change between MySQL 5.7.30 and MySQL 5.7.31 that is applicable to MariaDB Server was applied in commit 8d061996 (MDEV-23161).
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The only InnoDB changes between Percona XtraDB Server 5.6.47-87.0 and 5.6.48-88.0 are related to InnoDB changes between MySQL 5.6.47 and MySQL 5.6.48, which we had already applied.
-
Marko Mäkelä authored
There were no InnoDB changes between MySQL 5.6.48 and MySQL 5.6.49.
-
Marko Mäkelä authored
This issue was originally reported by Fungo Wang, along with a fix, as MySQL Bug #98990. His suggested fix was applied as part of mysql/mysql-server@a003fc373d1adb3ccea353b5d7d83f6c4c552383 and released in MySQL 5.7.31. i_s_metrics_fill(): Add the missing call to Field::set_notnull(), and simplify some code.
-
Thirunarayanan Balathandayuthapani authored
- i_s_fts_index_cache_fill() should take shared lock of fts cache before accessing index cache to avoid reading stale data.
-
-
Thirunarayanan Balathandayuthapani authored
- Problem is that test case creates iblogfile* files. So existing ibdata pages could point to future LSN. Fix is that taking the backup of data before iblogfile* creation and apply it before exiting the test case.
-
Thirunarayanan Balathandayuthapani authored
MDEV-22890 DEADLOCK of threads detected: row0sel.cc S-LOCK / btr0cur.cc S-LOCK / row0quiesce.cc X-LOCK Problem: ======= - Read operations are always allowed to hold a secondary index leaf latch and then look up the corresponding clustered index record. Flush table operation acquires secondary index latch while holding a clustered index latch. It leads to deadlock violation. Fix: ==== - Flush table operation should acquire secondary index before taking clustered index to avoid deadlock violation with select operation.
-
- 13 Jul, 2020 2 commits
-
-
Vicențiu Ciorbaru authored
Only install wsrep scripts and links if WSREP_ON is actually set
-
Varun Gupta authored
MDEV-22463: Element_type &Bounds_checked_array<Item *>::operator[](size_t) [Element_type = Item *]: Assertion `n < m_size' failed. Allocate space for fields inside the window function (arguments, PARTITION BY and ORDER BY clause) in the ref pointer array. All fields inside the window function are part of the temporary table that is required for the window function computation.
-
- 12 Jul, 2020 1 commit
-
-
Rucha Deodhar authored
MDEV-22058: Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())' failed in Diagnostics_area::set_ok_status Error state is not stored in check_and_do_in_subquery_rewrites() when there is illegal combination of optimizer switches. So all the functions eventually return false. Thus the assetion failure.
-
- 10 Jul, 2020 1 commit
-
-
Rucha Deodhar authored
The client can only find out if the server has disconnected when it tries to read or send something. If the server gets disconnected before send_client_reply_packet(), the client will try sending authentication information but it will fail. But, if the client is fast enough to send autentication information before disconnecting, it will notice that when reading the ok packet. So the client can fail on read or on write. It is unpredictable because, the process are unsynchronized and this could happen in any order.
-
- 09 Jul, 2020 2 commits
-
-
Varun Gupta authored
Reject queries that have aggregate functions with UNION as these are not allowed by standard.
-
Oleksandr Byelkin authored
-
- 07 Jul, 2020 2 commits
-
-
Vicențiu Ciorbaru authored
When setting the PLUGIN_AUTH_PAM variable, mark it as a "CACHE" variable so it can be overridden by the user.
-
Varun Gupta authored
Pass the unsigned flag from the Item_sum to the window function
-
- 06 Jul, 2020 4 commits
-
-
Rucha Deodhar authored
failed in Diagnostics_area::set_ok_status on FUNCTION replace When there is REPLACE in the statement, sp_drop_routine_internal() returns 0 (SP_OK) on success which is then assigned to ret. So ret becomes false and the error state is lost. The expression inside DBUG_ASSERT() evaluates to false and thus the assertion failure.
-
Vladislav Vaintroub authored
While trying to detect datadir, take into account that one can use Windows service name as section name in options file, for Windows service. The historical obscurity is being used by WAMP installations.
-
Varun Gupta authored
MDEV-22390: Assertion `m_next_rec_ptr >= m_rawmem' failed in Filesort_buffer::spaceleft | SIGSEGV in __memmove_avx_unaligned_erms from my_b_write Make sure that the sort_buffer that is allocated has atleast space for MERGEBUFF2 keys. The issue here was that the record length is quite high and sort buffer size is very small, due to which we end up with zero number of keys in the sort buffer. The Sort_param::max_keys_per_buffer was zero in such a case, due to which we were flushing empty sort_buffer to the disk.
-
Daniel Black authored
accept might return an error, including SOCKET_EAGAIN/ SOCKET_EINTR. The caller, usually handle_connections_sockets can these however and invalid file descriptor isn't something to call fcntl on. Thanks to Etienne Guesnet (ATOS) for diagnosis, sample patch description and testing.
-
- 05 Jul, 2020 1 commit
-
-
Marko Mäkelä authored
commit 48493132 included a workaround for a 10.5 merge issue that should now be properly addressed in commit ab406990. buf_chunk_init(): Remove an unnecessary MEM_MAKE_ADDRESSABLE(). We might invoke MEM_UNDEFINED() here, but actually the allocated memory ought to be guaranteed to be zero-initialized.
-
- 04 Jul, 2020 1 commit
-
-
Marko Mäkelä authored
commit 48493132 was a necessary fix for the buffer pool resizing tests in 10.5 in AddressSanitizer. However, that change would break the tests innodb.innodb_buffer_pool_resize and innodb.innodb_buffer_pool_resize_with_chunks when run in MemorySanitizer, or presumably in Valgrind as well. (Those tests run "forever" in Valgrind.) buf_pool_resize(): Cancel the effect of MEM_NOACCESS() in Valgrind and ASAN. In MSAN, MEM_NOACCESS() is a no-op, and hence we must do nothing special here. MEM_MAKE_ADDRESSABLE() would declare the memory contents undefined. In this particular case, we must actually declare the contents defined for Valgrind.
-
- 03 Jul, 2020 1 commit
-
-
Monty authored
-
- 02 Jul, 2020 11 commits
-
-
Monty authored
-
Monty authored
-
Marko Mäkelä authored
In AddressSanitizer, we only want memory poisoning to happen in connection with custom memory allocation or freeing. The primary use of MEM_UNDEFINED is for declaring memory uninitialized in Valgrind or MemorySanitizer. We do not want MEM_UNDEFINED to have the unwanted side effect that AddressSanitizer would no longer be able to complain about accessing unallocated memory. MEM_UNDEFINED(): Define as no-op for AddressSanitizer. MEM_MAKE_ADDRESSABLE(): Define as MEM_UNDEFINED() or ASAN_UNPOISON_MEMORY_REGION(). MEM_CHECK_ADDRESSABLE(): Wrap also __asan_region_is_poisoned().
-
Monty authored
- Some of the bug fixes are backports from 10.5! - The fix in innobase/fil/fil0fil.cc is just a backport to get less error messages in mysqld.1.err when running with valgrind. - Renamed HAVE_valgrind_or_MSAN to HAVE_valgrind
-
Monty authored
When using field_conv(), which is called in case of field1=field2 copy in fill_records(), full varstring's was copied, including unitialized bytes. This caused valgrind to compilain about usage of unitialized bytes when using Aria static length records. Fixed by not using memcpy when copying varstrings but instead just copy the real bytes.
-
Monty authored
- Removed not needed bzero in void TABLE::initialize_quick_structures(). - Replaced bzero with TRASH_ALLOC() to have this change verfied with memory checkers - Added missing table->quick_keys.is_set in table_cond_selectivity()
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
This reverts commit e0793d38. In idiomatic C++, accessor functions should not discard qualifiers.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 01 Jul, 2020 4 commits
-
-
Marko Mäkelä authored
-
Vladislav Vaintroub authored
- service not using "--defaults-file" can have any name not just "MySQL" - service with "--defaults-file", without datadir in them use default datadir (install_root\data)
-
Marko Mäkelä authored
-
Marko Mäkelä authored
MemorySanitizer (clang -fsanitize=memory) requires that all code be compiled with instrumentation enabled. The only exception is the C runtime library. Failure to use instrumented libraries will cause bogus messages about memory being uninitialized. In WITH_MSAN builds, we must avoid calling getservbyname(), because even though it is a standard library function, it is not instrumented, not even in clang 10. Note: Before MariaDB Server 10.5, ./mtr will typically fail due to the old PCRE library, which was updated in MDEV-14024. The following cmake options were tested on 10.5 in commit 94d0bb4d: cmake \ -DCMAKE_C_FLAGS='-march=native -O2' \ -DCMAKE_CXX_FLAGS='-stdlib=libc++ -march=native -O2' \ -DWITH_EMBEDDED_SERVER=OFF -DWITH_UNIT_TESTS=OFF -DCMAKE_BUILD_TYPE=Debug \ -DWITH_INNODB_{BZIP2,LZ4,LZMA,LZO,SNAPPY}=OFF \ -DPLUGIN_{ARCHIVE,TOKUDB,MROONGA,OQGRAPH,ROCKSDB,CONNECT,SPIDER}=NO \ -DWITH_SAFEMALLOC=OFF \ -DWITH_{ZLIB,SSL,PCRE}=bundled \ -DHAVE_LIBAIO_H=0 \ -DWITH_MSAN=ON MEM_MAKE_DEFINED(): An alias for VALGRIND_MAKE_MEM_DEFINED() and __msan_unpoison(). MEM_GET_VBITS(), MEM_SET_VBITS(): Aliases for VALGRIND_GET_VBITS(), VALGRIND_SET_VBITS(), __msan_copy_shadow(). InnoDB: Replace the UNIV_MEM_ macros with corresponding MEM_ macros. ut_crc32_8_hw(), ut_crc32_64_low_hw(): Use the compiler built-in functions instead of inline assembler when building WITH_MSAN. This will require at least -msse4.2 when building for IA-32 or AMD64. The inline assembler would not be instrumented, and would thus cause bogus failures.
-