summaryrefslogtreecommitdiff
path: root/mysql-test/suite
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/10.1' into 10.1bb-10.1-vicentiu-galeraVicențiu Ciorbaru2017-01-1626-221/+427
|\ | | | | | | Extra merge due to more extra commits during merge process
| * MDEV-11623 follow-up: Adjust tests.Marko Mäkelä2017-01-163-6/+8
| | | | | | | | | | | | | | | | | | innodb.doublewrite: Similar to what was done to innodb.101_compatibility, add an explicit $_ parameter to the Perl unpack function. Also, fix some diagnostic messages in the Perl code. innodb.innodb-wl5522-debug: Adjust for the changed error codes and messages on fault injection.
| * 101_compatibility test fails on CentOS 5Elena Stepanova2017-01-161-1/+1
| | | | | | | | | | | | Apparently, in older versions of Perl unpack does not have a logic for using $_ as a default value for the second argument. Fixed by specifying it explicitly
| * MDEV-11623 MariaDB 10.1 fails to start datadir created withMarko Mäkelä2017-01-157-7/+219
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MariaDB 10.0/MySQL 5.6 using innodb-page-size!=16K The storage format of FSP_SPACE_FLAGS was accidentally broken already in MariaDB 10.1.0. This fix is bringing the format in line with other MySQL and MariaDB release series. Please refer to the comments that were added to fsp0fsp.h for details. This is an INCOMPATIBLE CHANGE that affects users of page_compression and non-default innodb_page_size. Upgrading to this release will correct the flags in the data files. If you want to downgrade to earlier MariaDB 10.1.x, please refer to the test innodb.101_compatibility how to reset the FSP_SPACE_FLAGS in the files. NOTE: MariaDB 10.1.0 to 10.1.20 can misinterpret uncompressed data files with innodb_page_size=4k or 64k as compressed innodb_page_size=16k files, and then probably fail when trying to access the pages. See the comments in the function fsp_flags_convert_from_101() for detailed analysis. Move PAGE_COMPRESSION to FSP_SPACE_FLAGS bit position 16. In this way, compressed innodb_page_size=16k tablespaces will not be mistaken for uncompressed ones by MariaDB 10.1.0 to 10.1.20. Derive PAGE_COMPRESSION_LEVEL, ATOMIC_WRITES and DATA_DIR from the dict_table_t::flags when the table is available, in fil_space_for_table_exists_in_mem() or fil_open_single_table_tablespace(). During crash recovery, fil_load_single_table_tablespace() will use innodb_compression_level for the PAGE_COMPRESSION_LEVEL. FSP_FLAGS_MEM_MASK: A bitmap of the memory-only fil_space_t::flags that are not to be written to FSP_SPACE_FLAGS. Currently, these will include PAGE_COMPRESSION_LEVEL, ATOMIC_WRITES and DATA_DIR. Introduce the macro FSP_FLAGS_PAGE_SSIZE(). We only support one innodb_page_size for the whole instance. When creating a dummy tablespace for the redo log, use fil_space_t::flags=0. The flags are never written to the redo log files. Remove many FSP_FLAGS_SET_ macros. dict_tf_verify_flags(): Remove. This is basically only duplicating the logic of dict_tf_to_fsp_flags(), used in a debug assertion. fil_space_t::mark: Remove. This flag was not used for anything. fil_space_for_table_exists_in_mem(): Remove the unnecessary parameter mark_space, and add a parameter for table flags. Check that fil_space_t::flags match the table flags, and adjust the (memory-only) flags based on the table flags. fil_node_open_file(): Remove some redundant or unreachable conditions, do not use stderr for output, and avoid unnecessary server aborts. fil_user_tablespace_restore_page(): Convert the flags, so that the correct page_size will be used when restoring a page from the doublewrite buffer. fil_space_get_page_compressed(), fsp_flags_is_page_compressed(): Remove. It suffices to have fil_space_is_page_compressed(). FSP_FLAGS_WIDTH_DATA_DIR, FSP_FLAGS_WIDTH_PAGE_COMPRESSION_LEVEL, FSP_FLAGS_WIDTH_ATOMIC_WRITES: Remove, because these flags do not exist in the FSP_SPACE_FLAGS but only in memory. fsp_flags_try_adjust(): New function, to adjust the FSP_SPACE_FLAGS in page 0. Called by fil_open_single_table_tablespace(), fil_space_for_table_exists_in_mem(), innobase_start_or_create_for_mysql() except if --innodb-read-only is active. fsp_flags_is_valid(ulint): Reimplement from the scratch, with accurate comments. Do not display any details of detected inconsistencies, because the output could be confusing when dealing with MariaDB 10.1.x data files. fsp_flags_convert_from_101(ulint): Convert flags from buggy MariaDB 10.1.x format, or return ULINT_UNDEFINED if the flags cannot be in MariaDB 10.1.x format. fsp_flags_match(): Check the flags when probing files. Implemented based on fsp_flags_is_valid() and fsp_flags_convert_from_101(). dict_check_tablespaces_and_store_max_id(): Do not access the page after committing the mini-transaction. IMPORT TABLESPACE fixes: AbstractCallback::init(): Convert the flags. FetchIndexRootPages::operator(): Check that the tablespace flags match the table flags. Do not attempt to convert tablespace flags to table flags, because the conversion would necessarily be lossy. PageConverter::update_header(): Write back the correct flags. This takes care of the flags in IMPORT TABLESPACE.
| * MDEV-11799 InnoDB can abort if the doublewrite bufferMarko Mäkelä2017-01-1512-40/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | contains a bad and a good copy Clean up the InnoDB doublewrite buffer code. buf_dblwr_init_or_load_pages(): Do not add empty pages to the buffer. buf_dblwr_process(): Do consider changes to pages that are all zero. Do not abort when finding a corrupted copy of a page in the doublewrite buffer, because there could be multiple copies in the doublewrite buffer, and only one of them needs to be good.
| * MDEV-8139: Disable a randomly failing test until the code is fixed.Marko Mäkelä2017-01-151-1/+2
| |
| * max_session_mem_used server variableSergei Golubchik2017-01-154-172/+200
| |
* | Merge remote-tracking branch '10.0-galera' into 10.1Vicențiu Ciorbaru2017-01-163-0/+4
|\ \
| * \ Merge tag 'mariadb-10.0.29' into 10.0-galeraNirbhay Choubey2017-01-1345-157/+518
| |\ \
| * | | MDEV-11636 Extra persistent columns on slave always gets NULL in RBRSachin Setiya2016-12-282-0/+326
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem:- In replication if slave has extra persistent column then these column are not computed while applying write-set from master. Solution:- While applying row events from server, we will generate values for extra persistent columns.
| * | | MDEV-11490 Galera_3nodes test suite does not suppress Warnings.Sachin Setiya2016-12-211-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem:- While running individual tests of Galera_3nodes , We get warnings like '[Warning] WSREP: Could not open state file for reading: '. And because of this individual tests fails. Solution:- We change suite.pm of Galera_3nodes to supress these warnings.
| * | | MDEV-11479 Improved wsrep_dirty_readsSachin Setiya2016-12-144-4/+174
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tasks:- Changes in wsrep_dirty_reads variable 1.) Global + Session scope (Current: session-only) 2.) Can be set using command line. 3.) Allow all commands that do not change data (besides SELECT) 4.) Allow prepared Statements that do not change data 5.) Works with wsrep_sync_wait enabled
| * | | Revert "MDEV-11016 wsrep_node_is_ready() check is too strict"Sachin Setiya2016-12-142-29/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 52ea5ad865b4f6b4b37176296a3be0a716c5109a. # Conflicts: # mysql-test/suite/galera/r/galera_var_dirty_reads.result # mysql-test/suite/galera/t/galera_var_dirty_reads.test # sql/sql_parse.cc
| * | | Fix failing tests.Nirbhay Choubey2016-12-097-84/+60
| | | |
| * | | MDEV-11016 wsrep_node_is_ready() check is too strictSachinSetiya2016-12-012-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem:- The condition that checks for node readiness is too strict as it does not allow SELECTs even if these selects do not access any tables. For example,if we run SELECT 1; OR SELECT @@max_allowed_packet; Solution:- We need not to report this error when all_tables(lex->query_tables) is NULL:
| * | | Disable unstable galera_concurrent_ctas test.mariadb-galera-10.0.28Nirbhay Choubey2016-11-021-0/+1
| | | |
* | | | Merge branch '10.0' into 10.1Vicențiu Ciorbaru2017-01-1612-130/+102
|\ \ \ \ | |_|_|/ |/| | |
| * | | Merge branch '5.5' into 10.0Vicențiu Ciorbaru2017-01-145-3/+40
| |\ \ \ | | |_|/ | |/| |
| | * | MDEV-11527 Virtual columns do not get along well with NO_ZERO_DATESergei Golubchik2017-01-122-0/+18
| | | | | | | | | | | | | | | | don't check defaults for vcols
| | * | MDEV-11706 Assertion `is_stat_field || !table || (!table->write_set || ↵Sergei Golubchik2017-01-113-3/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bitmap_is_set(table->write_set, field_index) || (table->vcol_set && bitmap_is_set(table->vcol_set, field_index)))' failed in Field_time::store_TIME_with_warning vcols and triggers. Revert 094f4cf77890c5a747a57cf2bed149b0b6933507, backport the correct fix (Table_triggers_list::mark_fields_used() not marking vcols) from 10.2.
| * | | Merge branch 'bb-10.0-vicentiu' into 10.0mariadb-10.0.29Vicențiu Ciorbaru2017-01-126-122/+41
| |\ \ \ | | | | | | | | | | | | | | | | | | | | Extra merge commit due to intermediate commits pushed to 10.0 while merge was done.
| | * \ \ Merge remote-tracking branch 'origin/5.5' into 10.0vicentiu2017-01-066-122/+41
| | |\ \ \ | | | |/ /
| | | * | MDEV-11700 funcs_2.innodb_charset fails in buldbot on valgrind builder with ↵Elena Stepanova2017-01-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | timeout When the test is run as a part of the suite with valgrind, only allow it to be executed if --big-test is set. If the test is run by specifying its name explicitly, it will still be executed, even with valgrind without big-test, MTR has special logic for that
| | | * | cleanup: rpl.rpl_row_mysqlbinlogSergei Golubchik2016-12-172-119/+38
| | | | | | | | | | | | | | | | | | | | | | | | | some trivial simplifications. drinking the ocean, one drop at a time
| | | * | Follow-up for 02d153c7b9 (str2decimal: don't return a negative zero)Elena Stepanova2016-12-111-1/+0
| | | | |
* | | | | Improve an MDEV-9011 test of innodb_encrypt_log.Marko Mäkelä2017-01-123-30/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test crash recovery from an encrypted redo log with innodb_encrypt_log=0. Previously, we did a clean shutdown, so only the log checkpoint information would have been read from the redo log. With this change, we will be reading and applying encrypted redo log records. include/start_mysqld.inc: Observe $restart_parameters. encryption.innodb-log-encrypt: Remove some unnecessary statements, and instead of restarting the server and concurrently accessing the files while the server is running, kill the server, check the files, and finally start up the server. innodb.log_data_file_size: Use start_mysqld.inc with $restart_parameters.
* | | | | Merge 10.0 into 10.1Marko Mäkelä2017-01-102-0/+17
|\ \ \ \ \ | |/ / / /
| * | | | MDEV-11317: `! is_set()' or `!is_set() || (m_status == DA_OK_BULK && ↵Monty2017-01-082-0/+17
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | is_bulk_op())' fails in Diagnostics_area::set_ok_status on CREATE OR REPLACE with ARCHIVE table Problem was with deleting non existing .frm file for a storage engine that doesn't have .frm files (yet) Fixed by not giving an error for non existing .frm files for storage engines that are using discovery Fixed also valgrind supression related to the given test case
* | | | Make encryption.innodb_lotoftables more robust.Marko Mäkelä2017-01-092-17/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Perform a slow shutdown at the start of the test, and create all InnoDB tables with STATS_PERSISTENT=0, so that any I/O related to background tasks (change buffer merge, purge, persistent statistics) should be eliminated.
* | | | Minor cleanup of innodb.innodb-change-buffer-recoveryMarko Mäkelä2017-01-092-18/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This should be a non-functional change. I was unable to repeat MDEV-11626 innodb.innodb-change-buffer-recovery fails for xtradb and cannot determine the reason for the failure without having access to the files. The repeatability of MDEV-11626 should not be affected by these changes.
* | | | Post-push fix for MDEV-11556: Make the debug variable UINT.Marko Mäkelä2017-01-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Sometimes innodb_data_file_size_debug was reported as INT UNSIGNED instead of BIGINT UNSIGNED. Make it uint instead of ulong to get a more deterministic result.
* | | | Merge 10.0 into 10.1Marko Mäkelä2017-01-052-4/+41
|\ \ \ \ | |/ / /
| * | | MDEV-8518 rpl.sec_behind_master-5114 fails sporadically in buildbotElena Stepanova2017-01-042-4/+41
| | | | | | | | | | | | | | | | | | | | - fix the test to avoid false-negatives before MDEV-5114 patch; - fix the race condition which made the test fail on slow builders
| * | | MDEV-11636 Extra persistent columns on slave always gets NULL in RBRSachin Setiya2017-01-012-0/+326
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem:- In replication if slave has extra persistent column then these column are not computed while applying write-set from master. Solution:- While applying row events from server, we will generate values for extra persistent columns.
* | | | MDEV-8139 Fix scrubbing testsbb-10.1-mdev-8139Marko Mäkelä2017-01-058-625/+370
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | encryption.innodb_scrub: Clean up. Make it also cover ROW_FORMAT=COMPRESSED, removing the need for encryption.innodb_scrub_compressed. Add a FIXME comment saying that we should create a secondary index, to demonstrate that also undo log pages get scrubbed. Currently that is not working! Also clean up encryption.innodb_scrub_background, but keep it disabled, because the background scrubbing does not work reliably. Fix both tests so that if something is not scrubbed, the test will be aborted, so that the data files will be preserved. Allow the tests to run on Windows as well.
* | | | MDEV-11016 wsrep_node_is_ready() check is too strictSachin Setiya2017-01-034-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem:- The condition that checks for node readiness is too strict as it does not allow SELECTs even if these selects do not access any tables. For example,if we run SELECT 1; OR SELECT @@max_allowed_packet; Solution:- We need not to report this error when all_tables(lex->query_tables) is NULL:
* | | | MDEV-11636 Extra persistent columns on slave always gets NULL in RBRSachin Setiya2017-01-012-0/+326
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem:- In replication if slave has extra persistent column then these column are not computed while applying write-set from master. Solution:- While applying row events from server, we will generate values for extra persistent columns.
* | | | MDEV-11556 InnoDB redo log apply fails to adjust data file sizesMarko Mäkelä2016-12-304-0/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fil_space_t::recv_size: New member: recovered tablespace size in pages; 0 if no size change was read from the redo log, or if the size change was implemented. fil_space_set_recv_size(): New function for setting space->recv_size. innodb_data_file_size_debug: A debug parameter for setting the system tablespace size in recovery even when the redo log does not contain any size changes. It is hard to write a small test case that would cause the system tablespace to be extended at the critical moment. recv_parse_log_rec(): Note those tablespaces whose size is being changed by the redo log, by invoking fil_space_set_recv_size(). innobase_init(): Correct an error message, and do not require a larger innodb_buffer_pool_size when starting up with a smaller innodb_page_size. innobase_start_or_create_for_mysql(): Allow startup with any initial size of the ibdata1 file if the autoextend attribute is set. Require the minimum size of fixed-size system tablespaces to be 640 pages, not 10 megabytes. Implement innodb_data_file_size_debug. open_or_create_data_files(): Round the system tablespace size down to pages, not to full megabytes, (Our test truncates the system tablespace to more than 800 pages with innodb_page_size=4k. InnoDB should not imagine that it was truncated to 768 pages and then overwrite good pages in the tablespace.) fil_flush_low(): Refactored from fil_flush(). fil_space_extend_must_retry(): Refactored from fil_extend_space_to_desired_size(). fil_mutex_enter_and_prepare_for_io(): Extend the tablespace if fil_space_set_recv_size() was called. The test case has been successfully run with all the innodb_page_size values 4k, 8k, 16k, 32k, 64k.
* | | | Make the test work with any innodb_page_size.Marko Mäkelä2016-12-301-4/+4
| | | |
* | | | MDEV-11656: 'Data structure corruption' IMPORT TABLESPACE doesn't work for ↵Jan Lindström2016-12-282-0/+236
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | encrypted InnoDB tables if space_id changed Problem was that for encryption we use temporary scratch area for reading and writing tablespace pages. But if page was not really decrypted the correct updated page was not moved to scratch area that was then written. This can happen e.g. for page 0 as it is newer encrypted even if encryption is enabled and as we write the contents of old page 0 to tablespace it contained naturally incorrect space_id that is then later noted and error message was written. Updated page with correct space_id was lost. If tablespace is encrypted we use additional temporary scratch area where pages are read for decrypting readptr == crypt_io_buffer != io_buffer. Destination for decryption is a buffer pool block block->frame == dst == io_buffer that is updated. Pages that did not require decryption even when tablespace is marked as encrypted are not copied instead block->frame is set to src == readptr. If tablespace was encrypted we copy updated page to writeptr != io_buffer. This fixes above bug. For encryption we again use temporary scratch area writeptr != io_buffer == dst that is then written to the tablespace (1) For normal tables src == dst == writeptr ut_ad(!encrypted && !page_compressed ? src == dst && dst == writeptr + (i * size):1); (2) For page compressed tables src == dst == writeptr ut_ad(page_compressed && !encrypted ? src == dst && dst == writeptr + (i * size):1); (3) For encrypted tables src != dst != writeptr ut_ad(encrypted ? src != dst && dst != writeptr + (i * size):1);
* | | | MDEV-11218: encryption.innodb_encryption_discard_import failed in buildbotJan Lindström2016-12-226-128/+82
| | | | | | | | | | | | | | | | Try to stabilize test cases. These test behave badly when run in certain order.
* | | | MDEV-11490 Galera_3nodes test suite does not suppress Warnings.Sachin Setiya2016-12-211-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem:- While running individual tests of Galera_3nodes , We get warnings like '[Warning] WSREP: Could not open state file for reading: '. And because of this individual tests fails. Solution:- We change suite.pm of Galera_3nodes to supress these warnings.
* | | | Fix failing galera tests.Nirbhay Choubey2016-12-204-86/+34
| | | |
* | | | Port the test innodb.doublewrite from MySQL 5.7.Marko Mäkelä2016-12-204-0/+649
| | | |
* | | | MDEV-11479 Improved wsrep_dirty_readsSachin Setiya2016-12-141-4/+4
| | | | | | | | | | | | | | | | Updated sysvars_wsrep.result file.
* | | | MDEV-11479 Improved wsrep_dirty_readsSachin Setiya2016-12-144-4/+174
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tasks:- Changes in wsrep_dirty_reads variable 1.) Global + Session scope (Current: session-only) 2.) Can be set using command line. 3.) Allow all commands that do not change data (besides SELECT) 4.) Allow prepared Statements that do not change data 5.) Works with wsrep_sync_wait enabled
* | | | Revert "MDEV-11016 wsrep_node_is_ready() check is too strict"Sachin Setiya2016-12-142-20/+0
| | | | | | | | | | | | | | | | This reverts commit 7ed5563bbee301bf8217080dc78ea6a3e78e23a8.
* | | | Merge branch '10.0' into 10.1Sergei Golubchik2016-12-1134-34/+271
|\ \ \ \ | |/ / /
| * | | MDEV-11533: Roles with trailing white spaces are not cleared correctlyVicențiu Ciorbaru2016-12-102-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Role names with trailing whitespaces are truncated in length as of 956e92d90873532fee95581c702f7b76643969ea to fix MDEV-8609. The problem is that the code that creates role mappings expects the string to be null terminated. Add the null terminator to account for that as well. In the future the rest of the code can be cleaned up to never assume c style strings but only LEX_STRINGS.
| * | | Merge branch '5.5' into 10.0Sergei Golubchik2016-12-0916-10/+52
| |\ \ \ | | |/ /