summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch '10.2' into 10.3Sergei Golubchik2020-11-097-16/+144
|\
| * MDEV-23811: With large number of indexes optimizer chooses an inefficient planmariadb-10.2.36Igor Babaev2020-11-095-4/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bug could manifest itself for a query with WHERE condition containing top level OR formula such that each conjunct contained a single-range condition supported by the same index. One of these range conditions must be fully covered by another range condition that is used later in the OR formula. Additionally at least one of these condition should be ANDed with a sargable range condition supported by a different index. There were several attempts to fix related problems for OR conditions after the backport of range optimizer code from MySQL (commit 0e19f3e36f7842583feb6bead2c2600cd620bced). Unfortunately the first of these fixes contained typo remained unnoticed until recently. This typo bug led to rejection of valid range accesses. This patch fixed this typo bug. The fix revealed another two bugs: one in a constructor for SEL_ARG, the other in the function tree_or(). Both are fixed in this patch.
| * MDEV-24117: Memory management problem ...: Add a testcaseSergei Petrunia2020-11-093-0/+112
| | | | | | | | Add a testcase.
| * MDEV-24117: Memory management problem in statistics state for ... INSergei Petrunia2020-11-095-201/+11
| | | | | | | | | | | | | | | | | | | | Part#1: Revert the patch that caused it: commit 291be494744abe90f4bdf6b5a35c4c26ee8ddda5 Author: Igor Babaev <igor@askmonty.org> Date: Thu Sep 24 22:02:00 2020 -0700 MDEV-23811: With large number of indexes optimizer chooses an inefficient plan
| * Bump the versionOleksandr Byelkin2020-11-051-1/+1
| |
| * MDEV-19838: followup to make happy following protocol implementations:Oleksandr Byelkin2020-11-052-6/+22
| | | | | | | | | | | | | | | | | | | | - mysqlnd from PHP < 7.3 - mysql-connector-python any version - mysql-connector-java any version Relaxed check about garbage at the end of the packet in case of no parameters. Added check for array binding. Fixed test according to the new paradigm (allow junk at the end of the packet)
| * List of unstable tests for 10.2.35 releasemariadb-10.2.35Elena Stepanova2020-10-311-384/+352
| |
* | List of unstable tests for 10.3.26 releasemariadb-10.3.26Elena Stepanova2020-11-011-464/+373
| |
* | Merge branch '10.2' into 10.3Oleksandr Byelkin2020-10-3062-146/+1082
|\ \ | |/
| * MDEV-23991 fixup: Initialize the memoryMarko Mäkelä2020-10-301-0/+3
| | | | | | | | | | | | | | This regression was introduced in commit afc9d00c66db946c8240fe1fa6b345a3a8b6fec1. This is a partial backport of commit 199863d72b7cccaa4c75641c50c45a83b568ab8c from 10.4.
| * Update Connector/CMarko Mäkelä2020-10-301-0/+0
| |
| * MDEV-24033: SIGSEGV in __memcmp_avx2_movbe from queue_insert | SIGSEGV in ↵Varun Gupta2020-10-306-1/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | __memcmp_avx2_movbe from native_compare The issue here was the system variable max_sort_length was being applied to decimals and it was truncating the value for decimals to the number of bytes set by max_sort_length. This was leading to a buffer overflow as the values were written to the buffer without truncation and then we moved the offset to the number of bytes(set by max_sort_length), that are needed for comparison. The fix is to not apply max_sort_length for fixed size types like INT, DECIMALS and only apply max_sort_length for CHAR, VARCHARS, TEXT and BLOBS.
| * Fix sporadic test failure on galera_parallel_apply_3nodes.Jan Lindström2020-10-302-5/+23
| | | | | | | | Test itself is not deterministic.
| * MDEV-19838: fix of error messagesOleksandr Byelkin2020-10-291-5/+2
| |
| * MDEV-19838: followup, fix for PS & embeddedOleksandr Byelkin2020-10-291-1/+2
| | | | | | | | Use 9 byte (min length packet)
| * Merge branch '10.1' into 10.2Oleksandr Byelkin2020-10-2916-34/+110
| |\
| | * MDEV-23702 calculating(auto rounding) issueSergei Golubchik2020-10-2912-24/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implement a different fix for "MDEV-19232: Floating point precision / value comparison problem" Instead of truncating decimal values after every division, truncate them for comparison purposes. This reverts commit 62d73df6b270 but keeps the test.
| | * update result files after backportSergei Golubchik2020-10-293-12/+0
| | | | | | | | | | | | followup for 3e807d255e0e and eae10a87ff60
| | * Move result files at the correct place.Oleksandr Byelkin2020-10-293-0/+0
| | |
| | * MDEV-24040 - fix appveyor buildVladislav Vaintroub2020-10-281-0/+5
| | | | | | | | | | | | Old SDK is missing #define SECURITY_MAX_SID_STRING_CHARACTERS
| | * MDEV-24040 Named pipe permission issuebb-10.1-wladVladislav Vaintroub2020-10-271-13/+57
| | | | | | | | | | | | | | | Tighten access control - deny FILE_CREATE_PIPE_INSTANCE permission to everyone except current user (the one that runs mysqld)
| * | remove non-working debug assertSergei Golubchik2020-10-292-5/+1
| | | | | | | | | | | | | | | and restore the test modified in the same commit (the non-replication related deadlock will be reported separately)
| * | MDEV-19838 Wrong direxec param data caused crashLawrin Novitsky2020-10-292-12/+336
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In case of direct execution(stmtid=-1, mariadb_stmt_execute_direct in C API) application is in control of how many parameters client sends to the server. In case this number is not equal to actual query parameters number, the server may start to interprete packet data incorrectly, e.g. starting from the size of null bitmap. And that could cause it to crash at some point. The commit introduces some additional COM_STMT_EXECUTE packet sanity checks: - checking that "types sent" byte is set, and the value is equal to 1. if it's not direct execution, then that value is 0 or 1. - checking that parameter type value is a valid type, and parameter flags value is 0 or only "unsigned" bit is set - added more checks that read does not go beyond the end of the packet
| * | MDEV-24026: InnoDB: Failing assertion: os_total_large_mem_allocated >= size ↵Vlad Lesin2020-10-295-3/+21
| | | | | | | | | | | | | | | | | | | | | | | | upon incremental backup mariabackup deallocated uninitialized write_filt_ctxt.u.wf_incremental_ctxt in xtrabackup_copy_datafile() when some table should be skipped due to parsed DDL redo log record.
| * | new CCOleksandr Byelkin2020-10-291-0/+0
| | |
| * | MDEV-22707 : galera got stuck after flush tablesJan Lindström2020-10-282-1/+2
| | | | | | | | | | | | | | | Remove unnecessary condition and add necessary include for non debug Galera library.
| * | Merge branch '10.1' into 10.2Oleksandr Byelkin2020-10-2823-76/+510
| |\ \ | | |/
| | * test case for BUG#31650096Sergei Golubchik2020-10-272-0/+34
| | |
| | * cleanup: have_static_innodb.incSergei Golubchik2020-10-274-14/+8
| | | | | | | | | | | | and remove unused files
| | * BUG#31650096: MYSQL SERVER HEAP-USE-AFTER-FREE IN TRANS_SAVEPOINTKarthik Kamath2020-10-271-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ANALYSIS: ========= During Bootstrap, while executing the statements from sql file passed to the init-file server option, transaction mem_root was being freed for every statement. This creates an issue with multi statement transactions especially when a statement in the transaction has to access the memory used by the previous statement in the transaction. FIX: ==== Transaction mem_root is freed whenever a transaction is committed or rolled-back. Hence explicitly freeing it is not necessary in the bootstrap implementation. Change-Id: I40f71d49781bf7ad32d474bb176bd6060c9377dc
| | * Bug#31304432 "INSUFFICIENT PRIVILEGE CHECK BY LOCK TABLES"Sergei Golubchik2020-10-273-0/+322
| | | | | | | | | | | | | | | | | | | | | `LOCK TABLES view_name` should require * invoker to have SELECT and LOCK TABLES privileges on the view * either invoker or definer (only if sql security definer) to have SELECT and LOCK TABLES privileges on the used tables/views.
| | * cleanup: PRIV_LOCK_TABLES (10.5 style)Sergei Golubchik2020-10-271-18/+17
| | |
| | * MDEV-14945 possible buffer overflow in stack resolverVicențiu Ciorbaru2020-10-261-9/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to https://stackoverflow.com/questions/22827510/how-to-avoid-bad-fd-set-buffer-overflow-crash it seems that using select instead of poll can cause additional memory allocations. As we are in a crashed state, we must prevent allocating any memory (if possible). Thus, switch select call to poll. Also move some bigger datastructures to global space. The code is not run in a multithreaded context so best we don't use up stack space if it's not needed.
| | * Fix test failure on wsrep/variables test case.Jan Lindström2020-10-242-0/+10
| | |
| | * MDEV-24017: Blackhole : Specified key was too long; max key length is 1000 bytesVlad Lesin2020-10-243-2/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The maximum innodb key length is 3500 what is hardcoded in ha_innobase::max_supported_key_length()). The maximum number of innodb indexes is configured with MAX_INDEXES macro (see also MAX_KEY definition). The same is currently implemented for blackhole storage engine. Cherry picked from percona-server 0d90d81c3c507a6b1476246a405504f6e4ef9d4d Original lp bug 1733049 Reviewed-by: daniel@mariadb.org
| | * Merge remote-tracking branch 'connect/10.1' into 10.1Oleksandr Byelkin2020-10-2417-108/+511
| | |\
| | | * - Fix MDEV-22571 and MDEV-22572. Allow multiple ZIP tableOlivier Bertrand2020-07-1617-108/+511
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and enable using special column in them. modified: storage/connect/tabzip.cpp modified: storage/connect/tabzip.h - Fix some compiler errors modified: storage/connect/tabcmg.cpp
| | * | MDEV-20744 SET GLOBAL `replicate_do_db` = DEFAULT causes crash.bb-10.1-hfAlexey Botchkov2020-10-233-1/+12
| | | | | | | | | | | | | | | | DEFAULT for the replicate_do_db is the "" as our documentation states.
| | * | MDEV-23358 main.upgrade_MDEV-19650 fails with result differenceSergei Golubchik2020-10-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When including a generated file, always use <...>. We need the compiler to find it in the BINDIR, not in the SRCDIR. But when including as "..." SRCDIR is always searched first. The bug can only happen in out-of-source builds, if there was an in-source build before.
| | * | MDEV-10149: sys_vars.rpl_init_slave_func fails sporadically in buildbotSujatha2020-10-222-27/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | problem: ======== mysqltest: In included file "./include/assert.inc": included from mysql-test/suite/sys_vars/t/rpl_init_slave_func.test at line 69: Assertion text: '@@global.max_connections = @start_max_connections' Assertion result: '0' mysqltest: In included file "./include/assert.inc": included from mysql-test/suite/sys_vars/t/rpl_init_slave_func.test at line 86: Assertion text: '@@global.max_connections = @start_max_connections + 1' Assertion result: '0' Analysis: ========= A slave SQL thread sets its Running state to Yes very early in its initialisation, before the majority of initialisation actions, including executing the init_slave command, are done. Thus the testcase has a race condition where the initial replication setup might finish executing later than the testcase SET GLOBAL init_slave, making the testcase see its effect where it checks for its absence. Fix: === Include 'sync_slave_sql_with_master.inc' at the beginning of the test to ensure that slave applier has completed the execution of 'init_slave' command and proceeded to event application. Replace the apparently needless RESET MASTER / RESET SLAVE etc. Patch is based on: https://github.com/percona/percona-server/pull/1464/commits/b91e2e6f90611aa299c302929fb8b068e8ac0dee Author: laurynas-biveinis
* | | | MDEV-23222 SIGSEG in maria_create() because of double freeMonty2020-10-293-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The crash happens because a double free in the case CREATE TABLE fails because there is a conflicting tables on disk. Fixed by ensuring that the double free can't happen.
* | | | Fixed bug in detection of getgrouplist parameters.Monty2020-10-291-2/+2
| | | | | | | | | | | | | | | | | | | | On my system, OpenSuse, I got a compilation error that some arguments to getgrouplist() where not initialized
* | | | MDEV-23159 Assertion `table_share->tmp_table != NO_TMP_TABLE || m_lock_type ↵Monty2020-10-293-8/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | != 2'... The problem was that opt_sum_query() was, as part of MIN/MAX optimization, doing read operations on constant tables that where already closed Fixed by ensuring we don't try to read from tables that are closed.
* | | | MDEV-21201 fixup: GCC 10.2.0 -WparenthesesMarko Mäkelä2020-10-291-1/+2
| | | | | | | | | | | | | | | | | | | | An assertion inadvertently contained an assignment and an implicit comparison to zero. The intention was to test equality.
* | | | After-merge fix: sys_vars.sysvars_innodb,32bitMarko Mäkelä2020-10-281-272/+550
| | | |
* | | | Merge 10.2 into 10.3Marko Mäkelä2020-10-2824-283/+293
|\ \ \ \ | |/ / /
| * | | MDEV-23693 fixup: Remove unused btr_search_t::withdraw_clockMarko Mäkelä2020-10-281-2/+0
| | | |
| * | | MDEV-23163 Merge new release of InnoDB 5.7.32 to 10.2Marko Mäkelä2020-10-281-1/+1
| | | | | | | | | | | | | | | | | | | | All relevant InnoDB changes from MySQL 5.7.32 have been applied in preceding commits.
| * | | MDEV-23991 dict_table_stats_lock() has unnecessarily long scopeEugene Kosov2020-10-2721-280/+289
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch removes dict_index_t::stats_latch. Table/index statistics now protected with dict_sys->mutex. That way statistics computation can happen in parallel in several threads and dict_sys->mutex will be locked only for a short period of time. This patch is a joint work with Marko Mäkelä dict_index_t::lock: make mutable which allows to pass const pointer when only lock is touched in an object btr_height_get() btr_get_size(): make index argument const for better type safety btr_estimate_number_of_different_key_vals(): now returns computed values instead of setting fields in dict_index_t directly remove everything related to dict_index_t::stats_latch dict_stats_index_set_n_diff(): now returns computed values instead of setting fields in dict_index_t directly dict_stats_analyze_index(): now returns computed values instead of setting fields in dict_index_t directly Reviewed by: Marko Mäkelä
* | | | Merge 10.2 into 10.3Marko Mäkelä2020-10-28122-2556/+19101
|\ \ \ \ | |/ / /