summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | Merge 10.2 into 10.3Marko Mäkelä2021-02-252-1/+2
|\ \ | |/
| * Fixed the innodb_ext_key test by adding replace_columnVarun Gupta2021-02-252-1/+2
| |
* | mysys: lf_hash - fix l_search size_t keylenDaniel Black2021-02-251-1/+1
| | | | | | | | Correcting an incorrect merge from 10.2
* | Merge remote-tracking branch 'origin/10.2' into 10.3Daniel Black2021-02-252-15/+16
|\ \ | |/
| * MDEV-24728: Debian include client caching_sha2_password pluginDaniel Black2021-02-251-0/+2
| | | | | | | | | | | | | | Backport of 4bc31a904f22 Include client libraries for auth caching_sha2_password and sha256_password in the libmariadb3 client library package.
| * MDEV-23510: arm64 lf_hash alignment of pointersDaniel Black2021-02-251-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | volatile != atomic. volatile has no memory barrier schemantics, its for mmaped IO so lets allow some optimizer gains and stop pretending it helps with memory atomicity. The MDEV lists a SEGV an assumption is made that an address was partially read. As C packs structs strictly in order and on arm64 the cache line size is 128 bits. A pointer (link - 64 bits), followed by a hashnr (uint32 - 32 bits), leaves the following key (uchar * 64 bits), neither naturally aligned to any pointer and worse, split across a cache line which is the processors view of an atomic reservation of memory. lf_dynarray_lvalue is assumed to return a 64 bit aligned address. As a solution move the 32bit hashnr to the end so we don't get the *key pointer split across two cache lines. Tested by: Krunal Bauskar Reviewer: Marko Mäkelä
* | MDEV-24910 Crash with SELECT that uses table value constructor as a subselectIgor Babaev2021-02-246-31/+231
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bug caused crashes of the server when processing queries with table value constructors (TVC) that contained subqueries and were used itself as subselects. For such TVCs the following transformation is applied at the prepare stage: VALUES (v1), ... (vn) => SELECT * FROM (VALUES (v1), ... (vn)) tvc_x. This transformation allows to reduce the problem of evaluation of TVCs used as subselects to the problem of evaluation of regular subselects. The transformation is implemented in the wrap_tvc(). The code the function to mimic the behaviour of the parser when processing the result of the transformation. However this imitation was not free of some flaws. First the function called the method exclude() that completely destroyed the select tree structures below the transformed TVC. Second the function used the procedure mysql_new_select to create st_select_lex nodes for both wrapping select of the transformation and TVC. This also led to constructing of invalid select tree structures. The patch actually re-engineers the code of wrap_tvc(). Approved by Oleksandr Byelkin <sanja@mariadb.com>
* | Merge branch '10.2' into 10.3Vicențiu Ciorbaru2021-02-231-0/+7
|\ \ | |/
| * Remove race condition during `make dist`Vicențiu Ciorbaru2021-02-231-0/+7
| | | | | | | | | | | | | | Introduced by 85828b8f22e7f4dfa6a5d4b0a1ab9e133e7feea7 This is running 2 git processes in parallel, which, if unlucky can cause either of them to fail with "File already exists" error.
* | Merge 10.2 into 10.3Marko Mäkelä2021-02-231-2/+1
|\ \ | |/
| * MDEV-24913 Assertion !recv_no_log_write in log_write_up_to()Thirunarayanan Balathandayuthapani2021-02-231-2/+1
| | | | | | | | | | | | | | | | - The commit 5fd3c7471e3e0673b50d309567c9747d36f09412(MDEV-24709) resets the recv_no_ibuf_operations in recv_recovery_from_checkpoint_start(), but InnoDB fails to reset the variable recv_no_log_write() during that time and that leads to the assert failure.
* | MDEV-24929 Server crash in thr_multi_unlock or in get_schema_tables_resultMonty2021-02-224-7/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was caused by two different bugs: 1) Information_schema tables where not locked by lock_tables, but get_lock_data() was not filtering these out. This caused a crash when mysql_unlock_some_tables() tried to unlock tables early, including not locked information schema tables. Fixed by not locking SYSTEM_TMP_TABLES 2) In some cases the optimizer will notice that we do not need to read the information_schema tables at all. In this case join_tab->read_record is not set, which caused a crash in get_schema_tables_result() Fixed by ignoring const tables in get_schema_tables_result()
* | Merge branch '10.2' into 10.3Sergei Golubchik2021-02-2262-1296/+1416
|\ \ | |/
| * fix binlog_xa_recover testSergei Golubchik2021-02-223-42/+3
| | | | | | | | | | | | | | 1. wait for the binlog thread to reach the certain state, don't use a debug_sync that's incorrectly placed to detect the state 2. no need to do a (non-deterministic) `show binlog events` to verify what is guaranteed by the directly preceding line
| * cleanup: renames, no need to create a new .inc fileSergei Golubchik2021-02-225-283/+281
| | | | | | | | if it's the whole content of a test anyway.
| * mtr fixes for old (5.10.1) perlSergei Golubchik2021-02-221-4/+5
| |
| * support for mtr --valgdbSergei Golubchik2021-02-221-3/+20
| | | | | | | | | | | | add a new "debugger" to mtr, that runs the executable under valgrind in gdb. valgrind pid is auto-detected, but the delay (sleep) and vgdb path are hard-coded for now
| * unify mtr handling of debuggersSergei Golubchik2021-02-222-750/+276
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "debugger" is anything that wraps execution of a target binary (mysqld or mysqltest). Currently the list includes: gdb, ddd, dbx, lldb, valgrind, strace, ktrace, rr, devenv, windbg, vsjitdebugger. for every debugger xxx, mtr will recognize four options: --xxx, --boot-xxx, --manual-xxx, --client-xxx. They all support an optional "=string" argument. String being a semicolon-separated list of commands (e.g. for gdb) or one (not semicolon-separated) command line of options (e.g. for valgrind). Or both (e.g. --gdb='-quiet -nh;info files' In embedded both --xxx and --client-xxx work. Functionality changed/removed: * --rr-args is gone * --rr-dir is gone * --manual-debug is gone * --debugger={devenv|vc|windbg|vc_express|vsjitdebugger} is gone * --strace-option is gone * --stracer={strace|ktrace} is gone * --valgrind only enables it for the server, not for everything * --valgrind-all is gone * --valgrind-mysqltest is gone * --valgrind-mysqld is gone * --valgrind-options is gone * --valgrind-option is gone * --valgrind-path is gone * --callgrind is gone * one cannot combine --valgrind --gdb anymore * valgrind report doesn't add a fake test line to the output * vc and vcexpress on windows are no longer supported
| * cleanup: remove dead code in mtrSergei Golubchik2021-02-221-13/+1
| |
| * cleanup: stat tablesSergei Golubchik2021-02-221-30/+24
| | | | | | | | | | | | | | don't allocate Column_statistics_collected objects that won't be used. minor style fixes (StringBuffer<>, etc)
| * MDEV-23753: SIGSEGV in Column_stat::store_stat_fieldsSergei Golubchik2021-02-221-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | only collect persistent stats for columns explicitly listed by the user in the ANALYZE TABLE PERSISTENT FOR COLUMNS (...) clause. The engine can extend table->read_set as much as it wants, it should not affect the collected statistics. Test case from the 3b94309a6c applies - it used to crash, because ha_partition extended table->read_set after the loop that initialized some objects based on bits in the read_set but before the loop that used these objects based on bits in the read_set.
| * Revert "MDEV-23753: SIGSEGV in Column_stat::store_stat_fields"Sergei Golubchik2021-02-221-4/+0
| | | | | | | | | | | | | | | | | | This reverts the commit 3b94309a6c but keeps the test Because the fix is a hack that isn't supposed to do anything, and relies on a side-effect of rnd_init inside ha_partition. A different fix is coming up.
| * Merge branch 'bb-10.2-release' into 10.2Sergei Golubchik2021-02-2233-625/+533
| |\
| * | bump the VERSIONDaniel Bartholomew2021-02-221-1/+1
| | |
| * | MDEV-24863 AHI entries mismatch with the index while reloading the evicted ↵Thirunarayanan Balathandayuthapani2021-02-221-14/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tables. - This is caused by commit ad6171b91cac33e70bb28fa6865488b2c65e858c (MDEV-22456). InnoDB reloads the evicted table again from dictionary. In that case, AHI entries and current index object mismatches happens. When index object mismatches then InnoDB should drop the page hash AHI entries for the block. In btr_search_drop_page_hash_index(), InnoDB should take exclusive lock on the AHI latch if index is already freed to avoid the freed memory access during buf_pool_resize()
| * | Suppress warning on galera_ssl_upgrade test.Jan Lindström2021-02-222-0/+9
| | |
| * | MDEV-24873 : galera.galera_as_slave_ctas MTR failed: Assertion ↵Jan Lindström2021-02-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | `(&(&LOCK_thd_data)->m_mutex)->count > 0 && pthread_equal(pthread_self(), (&(&LOCK_thd_data)->m_mutex)->thread)' failed in sql_class.cc on THD::awake(killed_state) Problem was that thd::awake assumes now that you hold THD::LOCK_thd_data so we need to keep it when we call wsrep_thd_awake from wsrep_abort_transaction.
| * | MDEV-24872 : galera.galera_insert_multi MTR failed: crash with SIGABRTJan Lindström2021-02-171-2/+4
| | | | | | | | | | | | | | | Problem was that we tried to lock THD::LOCK_thd_data after we have acquired lock_sys mutex. This is against mutex ordering rules.
| * | MDEV-24867 : wsrep.variables MTR failed: Result length mismatchJan Lindström2021-02-172-14/+2
| | | | | | | | | | | | Stabilize test case.
| * | MDEV-15641 fixup: Make the test fasterMarko Mäkelä2021-02-162-16/+4
| | | | | | | | | | | | | | | | | | Let us avoid the excessive allocation of explicit record locks (a work-around of MDEV-24813) so that the test will execute much faster under AddressSanitizer, MemorySanitizer, Valgrind.
| * | MDEV-23291: SUM column from a derived table returns invalid valuesVarun Gupta2021-02-164-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The issue here was the read_set bitmap was not set for a field which was used as a reference in an inner select. We need to make sure that if we are in an inner select and we have references from outer select then we update the table bitmaps for such references. Introduced a function in the class Item_subselect that would update bitmaps of table for the references within a subquery that are defined in outer selects.
| * | MDEV-24779: main.subselect fails in buildbot with --ps-protocolVarun Gupta2021-02-163-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Follow-up fix to commit 26f5033(MDEV-23449) The GROUP BY clause inside IN/ALL/ANY subquery is removed when there is no aggregate function or HAVING clause in the subquery. When the GROUP BY clause is removed, a subquery can also be removed if it part of the GROUP BY clause. This is done inside the function remove_redundant_subquery_clauses. Here we walk over the GROUP BY list and remove a subselect from its unit via the callback function eliminate_subselect_processor. The issue here was that when the query was being re-executed it was trying to reinitialize the select that was removed as stated above. This is not required, so the fix would be to remove select_lex both from tree lex structure and the global list of nodes so that we don't do the reinitialization again.
| * | MDEV-19474: Histogram statistics are used even with ↵Varun Gupta2021-02-165-4/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | optimizer_use_condition_selectivity=3 The issue here was histogram statistics were being used even when the level of optimizer_use_condition_selectivity doesn't allow usage of statistics from histogram. The histogram statistics are read for a table only when optimizer_use_condition_selectivity > 3. But the TABLE structure can be stored in the internal table cache and be reused for the next query. So in this case the histogram statistics will be available for the next query. The fix would be to make sure to use the histogram statistics only when optimizer_use_condition_selectivity > 3.
| * | Remove useless test innodb.innodb_bug60049Marko Mäkelä2021-02-153-58/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The test innodb.innodb_bug60049 used to check that the record (ID,NAME)=(12,'SYS_FOREIGN_COLS') is the last record in the secondary index of the system table SYS_TABLES. But, ever since commit 233655842374e0723d3191febac7ff2a11470fba or mysql/mysql-server@082d59670f2616f68af37666fac0f23dbeb43099 that record no longer is the last one in the table! The more recent test innodb.purge_secondary covers the purge functionality much better.
| * | MDEV-11862 rpl.rpl_semi_sync_event_after_sync 'fails if there is no ↵Alice Sherepa2021-02-153-0/+3
| | | | | | | | | | | | semisync plugin
| * | MDEV-24763 fixup: Use deterministic ORDER BYMarko Mäkelä2021-02-122-2/+2
| | |
| * | MDEV-24763 ALTER TABLE fails to rename a column in SYS_FIELDSMarko Mäkelä2021-02-123-0/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | innobase_rename_column_try(): When renaming SYS_FIELDS records for secondary indexes, try to use both formats of SYS_FIELDS.POS as keys, in case the PRIMARY KEY includes a column prefix. Without this fix, an ALTER TABLE that renames a column followed by a server restart (or LRU eviction of the table definition from dict_sys) would make the table inaccessible.
| * | MDEV-18468 fixup: Make test case robust w.r.t. deferred DROP TABLEMarko Mäkelä2021-02-122-4/+19
| | |
| * | MDEV-19950: Galera test failure on galera_ssl_upgradeJulius Goryavsky2021-02-116-14/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The test requires adaptation for MariaDB, which is done in this patch. In addition, this patch includes a fix for the SST script startup code that adds escaping for special characters on the command line (in case they are contained in the arguments to mysqld). The fix does not require separate tests, as the required tests are already part of the mtr suite for Galera.
| * | Update Galera disabled.defJan Lindström2021-02-112-0/+3
| | |
| * | MDEV-24790 CAST('0e1111111111' AS DECIMAL(38,0)) returns a wrong resultAlexander Barkov2021-02-085-20/+198
| | |
| * | Make innodb_gis.rtree_purge run fasterMarko Mäkelä2021-02-071-4/+2
| | | | | | | | | | | | | | | | | | | | | A locking SELECT from an InnoDB table is very slow especially in debug builds. Replacing some INSERT...SELECT should not reduce the test coverage, because the test will still do DELETE (which will acquire explicit record locks).
| * | MDEV-22741: *SAN: ERROR: AddressSanitizer: use-after-poison on address in ↵Sujatha2021-02-033-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | instrings/strmake.c:36 from change_master (on optimized builds) Problem: ======== CHANGE MASTER TO MASTER_USER='root', MASTER_SSL=0, MASTER_SSL_CA='', MASTER_SSL_CERT='', MASTER_SSL_KEY='', MASTER_SSL_CRL='', MASTER_SSL_CRLPATH=''; CHANGE MASTER TO MASTER_USER='root', MASTER_PASSWORD='', MASTER_SSL=0; use-after-poison is reported for lex_mi->ssl_crl File: sql_repl.cc if (lex_mi->ssl_crl) strmake_buf(mi->ssl_crl, lex_mi->ssl_crl); Analysis: ======== At the end of CHANGE MASTER statement execution, the LEX_MASTER_INFO parameters are reset so that the next query will have a clean state. But 'ssl_crl' and 'ssl_crl_path' members of LEX_MASTER_INFO object are not cleared during 'LEX_MASTER_INFO::reset'. Hence when a new CHANGE MASTER statement is executed, the stale value of lex_mi->ssl_crl is used, so ASAN reports use-after-poison. Fix: === Clear 'ssl_crl' and 'ssl_crl_path' as part of 'reset'.
| * | MDEV-24762 - HeidiSQL 11.2Vladislav Vaintroub2021-02-021-1/+1
| | |
| * | Updating test results in rocksdb test suite after MDEV-11172 is fixedVarun Gupta2021-02-013-5/+5
| | |
| * | MDEV-23449: alias do not exist and a query do not report an errorVarun Gupta2021-01-313-16/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For an IN/ANY/ALL subquery without an aggregate function and HAVING clause, the GROUP BY clause is removed. Due to the GROUP BY list being removed, the invalid reference in the GROUP BY clause was never resolved. Remove the GROUP BY list only when the all the items in the GROUP BY list are resolved. Also removing the GROUP BY list later would not affect the extension that allows using non-aggregated field in an aggregate function (when ONLY_FULL_GROUP_BY is not set) because the GROUP BY list is removed only when their is NO aggregate function in IN/ALL/ANY subquery.
| * | MDEV-22583: Selectivity for BIT columns in filtered column for EXPLAIN is ↵Varun Gupta2021-01-304-8/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | incorrect For BIT columns when EITS is collected, we store the integral value in text representation in the min and max fields of the statistical table When this value is retrieved from the statistical table to original table field then we try to store the text representation in the original field which is INCORRECT. The value that is retrieved should be converted to integral type and that value should be stored back in the original field. This would get us the correct estimate for selectivity of the predicate.
| * | MDEV-11172: EXPLAIN shows non-sensical value for key_len with type=indexVarun Gupta2021-01-305-4/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The issue happens when the secondary keys are extended with primary key parts. Inside the function TABLE_SHARE::init_from_binary_frm_image() adds the length bytes for the primary key key parts to the length of the secondary key. This is not needed because when the extended keys are used we recalculate the length for the used key parts. Also removed TABLE_SHARE::total_key_length as it is not used in the code Apporved-by: Monty <monty@mariadb.org>
| * | Skip TokuDB within autobake-deb.shVicențiu Ciorbaru2021-01-292-5/+6
| | | | | | | | | | | | | | | | | | Skipping the package within debian/rules won't work because starting with Debian 10, the helper scripts read the control file before the recipe.
| * | List of unstable tests for 10.2.37 releaseElena Stepanova2021-01-291-183/+111
| | | | | | | | | | | | | | | | | | Test code modifications and new failures from buildbot only registered for the main suite. The rest was updated partially, based on the status of existing JIRA items