%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : www.kowitt.ac.th / Your IP : 216.73.216.118 Web Server : Microsoft-IIS/7.5 System : Windows NT SERVER02 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.6.31 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Program Files/MySQL/MySQL Server 5.7/docs/ |
Upload File : |
commit b5b62f8bc6e8b662b5c7c669dd4ad2b3c10a2155 Author: Lukasz Kotula <lukasz.kotula@oracle.com> Date: Fri Mar 25 08:42:36 2016 +0100 Bug#22972595 - FAILING ASSERTION: NODE_START != (OS_OFFSET_T) -1 WITH DDL+DML USING XCONNECTION Description: Mysqlx was closing same file desriptor two times. First from xpl::Client::~Clinet -> Connection_vio::close, second from first from xpl::Client::~Clinet -> Connection_vio::close. After first call the same descriptor id could be allocated at another open, socket call (from antoher thread). Second call to close was invalidating the just allocated socket. Reviewed-by: Jakub Nowakowski <jakub.nowakowski@oracle.com> Reviewed-by: Andrzej Religa <andrzej.religa@oracle.com> RB: 12247 (cherry picked from commit 3100556f08d85d7bbd18cfef2840760e84549483) commit 013e845e44091d53ac7fff3768ed02210580341b Author: Allen Lai <zheng.lai@oracle.com> Date: Tue Mar 22 17:44:31 2016 +0800 Bug#22912582 ERROR IN ACCESSING TDE TABLES IN A REPLICATION SLAVE Previously, we use server uuid to compose the master key name, and we didn't store the server uuid to data file of tablespace. So, if server uuid is changed or slave server need to use a different uuid, the encrypted tablespace will not get the correct master key, since the key name in key file is still composed by old server uuid. The solution is: we need to store the uuid into page 0 of tablespace data file. And we need to keep it to Encryption object. Reviewed-by: Jimmy Yang<jimmy.yang@oracle.com> Kevin<kevin.lewis@oracle.com> Maheehar<maheedhar.panchalamarri.venka@oracle.com> RB:12145 (cherry picked from commit 6a27b5e2db422e682f6a5bfb4903dfe7a2d1e323) commit 819ec3b547bcbd8499163c004a9582dfce22a4ff Author: Andrzej Religa <andrzej.religa@oracle.com> Date: Fri Mar 11 16:47:13 2016 +0100 BUG#22915003 - JOINING TERMINATING THREADS SHOULD NOT BE DONE IN NEW THREAD CREATION. Description: In the current implementation, the terminating worker threads are being joined in a function that get's called also when new threads are being created. This function blocks on a list mutex, which can cause a bottleneck for threads (connections) creation. Solution: Removed joining the threads from create_thread and shorten the timeout for sweeping timer. RB: 12092 Reviewed by: Jan Kneschke <jan.kneschke@oracle.com> Reviewed by: Alfredo Kojima <alfredo.kengi.kojima@oracle.com> (cherry picked from commit c4b069bbebab8be624cebd759b2ebfdabcdad4fa) commit 33ed5fc494033fdf1d4ff4c61443fb113b01ec9d Author: Tor Didriksen <tor.didriksen@oracle.com> Date: Thu Mar 10 12:51:19 2016 +0100 Bug #22884187 RTRIM GETS EXPONENTIALLY SLOWER ON LARGE STRINGS regression source: Bug#18315770 BUG#12368495 FIX IS INCOMPLETE Fix: special handling of single-byte trimming. (cherry picked from commit 906ff8f5aea26675b5e03e95b5f92dc3d6b16fd3) commit 5316f4a979ae4f8c51596a99d205ae6ef9dab678 Author: Lukasz Kotula <lukasz.kotula@oracle.com> Date: Thu Mar 10 15:56:29 2016 +0100 Bug#22908760 - MYSQLX UNINSTALL PLUGIN HANGS WHEN PLUGIN START FUNCTION FAILS Description: If mysqlx will fail in entry point, the exit point of plugin will fail because of missing invalid server state or not existing thread Solution: At failure set correct server state Reviewed-by: Andrzej Religa <andrzej.religa@oracle.com> Reviewed-by: Rafal Szwarc <rafal.szwarc@oracle.com> RB: 12085 (cherry picked from commit 1969b3bca7e3a55dc11d078c0489ed000725e45a) commit f4b9751b4648bfe0480e65593c30b2e8e1af3fe5 Author: Robert Golebiowski <robert.golebiowski@oracle.com> Date: Thu Mar 10 14:37:21 2016 +0100 Bug #22908232 A TYPO IN MYSQL_KEYRING_FILE_SERVICE (cherry picked from commit a8a90724a0dbfe07d78cc4b20747b9317b0c9217) commit ab8e7380be1afdadf94bc53f801342f2cadd1dc6 Author: Andrzej Religa <andrzej.religa@oracle.com> Date: Thu Mar 10 14:17:56 2016 +0100 BUG#22866873 - X PLUGIN MEMORY LEAK ON MYSQL-5.7.12-RELEASE 21569FA Description: 2 issues addressed: 1) decreased the stack size for the threads created in the plugin from default 2) value (which is 8-10MB on the machines I've checked) to 256kB RB: 12015 Reviewed by: Grzegorz Szwarc <grzegorz.szwarc@oracle.com> Reviewed by: Lukasz Kotula <lukasz.kotula@oracle.com> (cherry picked from commit 22d89715b8ff190bf936c0425965c54a01d44ac5) commit faacae14f009fb9e83c3b1584b65229b71899af5 Author: Grzegorz Szwarc <grzegorz.szwarc@oracle.com> Date: Wed Mar 9 12:52:23 2016 +0100 Bug#22894429 Unable to uninstall mysqlx plugin Issue: Unable to uninstall mysqlx plugin when the limit of available threads has been achived. Reviewed-by: Lukasz Kotula <lukasz.kotula@oracle.com> Reviewed-by: Andrzej Religa <andrzej.religa@oracle.com> RB: 12072 (cherry picked from commit 41f85a0c5478e327f37cafa63ef1bb195d218671) commit f9af1790314149dadec6028734f4a01a3f370be4 Author: Andrzej Religa <andrzej.religa@oracle.com> Date: Wed Mar 9 14:08:35 2016 +0100 BUG 22900099 - MAX VALUE FOR IDLE_WORKER_THREAD_TIMEOUT SHOULD BE 1 HOUR. Description: The max value for the idle_worker_thread_timeout system variable was value of maximum unsigned int. This was changed to more reasonable 1h value. RB: 12070 Reviewed by: Grzegorz Szwarc <grzegorz.szwarc@oracle.com> Reviewed by: Lukasz Kotula <lukasz.kotula@oracle.com> (cherry picked from commit 583d58d2f8589081fa0b6104a0e5b015ba3ee87c) commit d496c3b277d1f0abafc1c7ad0b1aa405ec5442b3 Author: Robert Golebiowski <robert.golebiowski@oracle.com> Date: Tue Mar 8 14:00:46 2016 +0100 Bug #22892901 KEYRING_OKV PLUGIN NOT WORKING ON SOLARIS SPARC PLATFORM (cherry picked from commit ee6ef909a7f792942d4f6cca00352967e940d32b) commit 94073313e7f9704b387768000ed92cc012998370 Author: Tor Didriksen <tor.didriksen@oracle.com> Date: Thu Mar 3 12:42:46 2016 +0100 Bug#22865257 WITH_RAPID BUILD FAILURE IF RAPID DIRECTORY IS REMOVED The 'rapid' directory is optional. It should be possible to remove it, and then do a default build. This currently fails: CMake Error at CMakeLists.txt:597 (ADD_SUBDIRECTORY): add_subdirectory given source "rapid/unittest/gunit" which is not an existing directory. -- Configuring incomplete, errors occurred! Fix: Check that rapid/unittest/gunit EXISTS. (cherry picked from commit 8fd7ca44a2fef1506307711cec1a26708c765414) commit 04f678a23b1dc2691061d2056d31f7bcfbc941d9 Author: Lukasz Kotula <lukasz.kotula@oracle.com> Date: Thu Mar 3 13:20:25 2016 +0100 Bug#22857652 SOME XPLUGIN TESTS FAILS ON SOLARIS SPARC (32 BITS BUILD) Description: SPARC has big endianness, which causes wrong interpretation of data when using shorter type in formatter than data pushed on stack. Less significant bits at the end of data. RB: 11989 Reviewed by: Grzegorz Szwarc <grzegorz.szwarc@oracle.com> Reviewed by: Jakub Nowakowski <jakub.nowakowski@oracle.com> Reviewed by: Alfredo Kojima <alfredo.kengi.kojima@oracle.com> (cherry picked from commit e8921401d7d75fa2cb9e21cb2f7efdcae3e45341) commit 7974b884ee9a31f676c3269a8c4eccbeebcf1b08 Author: Lukasz Kotula <lukasz.kotula@oracle.com> Date: Tue Mar 1 19:02:55 2016 +0100 Bug#22841977 X PLUGIN BREAKS BUILD ON ARM64 (AARCH64) Description: On arm64 there are multiple definitions for syscalls deprecated Solution: Application instead using deprecated __NR_epoll_wait will use __NR_epoll_pwait (if its defined in unistd.h). Reviewed-by: Andrzej Religa <andrzej.religa@oracle.org> Reviewed-by: Tor Didriksen <tor.didriksen@oracle.com> RB: 11970 (cherry picked from commit ef7246394c97ede92c19a06ea14fd605d43c1ec2) commit f33791dcf288f211654e360c9a9f96f33029e3b9 Author: Marek Szymczak <marek.szymczak@oracle.com> Date: Tue Mar 1 11:29:03 2016 +0100 Bug#22142209 MY_MESSAGE FAILS TO ABORT MYSQL_AUDIT_SERVER_STARTUP_CLASS EVENT Post push. MTR crashed when run with the --debug switch. THD, used during event generation, created with different paramenters. (cherry picked from commit 4a5d5ca4c8441e8b3e46147b42b8f5d0957738cb) commit 16440bfe98bb6c87cb2141b96f11435016b518dd Author: Alfredo Kojima <alfredo.kengi.kojima@oracle.com> Date: Mon Feb 29 11:34:19 2016 -0800 Various xplugin fixes - Fix for crash in connection accept code Was missing a mutex in timer for X connection timeout - Updated tests that print version numbers so that they don't get printed and break diffs - Fixed some warnings in Windows - Removed outdated/obsolete documentation for plugin - Fix for protobuf memleak (cherry picked from commit c82f0aa9454ff7799371567c9a6ee5f223383e8c) Conflicts: rapid/plugin/x/protocol/conf.py commit 387ab0345833bdebe6800e56f203e9cb91316b16 Author: Aditya A <aditya.a@oracle.com> Date: Thu Mar 3 17:03:51 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 (cherry picked from commit aa7321167f10b02f0251f17037f1e3f4dc7ec8e1) commit 04711823c7f17c21f7550fd1dea7dcb541637781 Author: Robert Golebiowski <robert.golebiowski@oracle.com> Date: Wed Mar 2 12:28:40 2016 +0100 WL#8041 Use Oracle Key Vault for keyring storage in MySQL Post push fixes for development branch. (cherry picked from commit 7e04ccdb2fc98b8565e1da375d77e22d46b0e146) commit 16940e3ca92f83ca912070f14805b5260233f99b Author: Robert Golebiowski <robert.golebiowski@oracle.com> Date: Tue Mar 1 12:36:56 2016 +0100 Bug #22849991 FIX CLANG WARNINGS AFTER WL#8041 PUSH (USE ORACLE KEY VAULT FOR KEYRING STORAGE) (cherry picked from commit 3957b74548c31f6d88c79badc538a2180bdefd1c) commit 6d6a4d3c59ecc857a3c984f7dfe69e128f120fda Author: Robert Golebiowski <robert.golebiowski@oracle.com> Date: Tue Mar 1 10:53:38 2016 +0100 Bug #22849732 TAKING POINTER FROM TEMPORARY VARIABLE. (cherry picked from commit 3d16dad2b9a0e7b6681d1234fa10782dfb27f517) commit 57960231a9277e29bfa75c977b080a3f419e1560 Author: Allen Lai <zheng.lai@oracle.com> Date: Tue Mar 1 11:04:40 2016 +0800 WL#8548 InnoDB: Transparent data encryption Fixed bug#22846854 AFTER UPGRADE FROM 5.7.11 TO 5.7.12 CANNOT CREATE ENCRYPTED (TDE) TABLES (cherry picked from commit b4b54a055450862c3c604bd11617b005438c4827) commit 41a7857b712593290c95f2eef9a92c61bc20c7f7 Author: Andrzej Religa <andrzej.religa@oracle.com> Date: Mon Feb 29 14:59:55 2016 +0100 BUG 22842324 - X PLUGIN NOT LOADABLE WHEN SERVER BUILT WITH -DWITH_LIBEVENT=SYSTEM The X plugin did not get linked with proper library in case of -DWITH_LIBEVENT=SYSTEM. Other cmake variable gets set in that case, the fix adds that variable for pluging linking. Reviewed-by: Tor Didriksen <tor.didriksen@oracle.com> Reviewed-by: Lukasz Kotula <lukasz.kotula@oracle.com> RB: 11955 (cherry picked from commit 6cd04018e317f8b8b3889bcf6a7c294672b8d5f4) commit 54b67b2ccd2d8bab2b3222ba0f69b3ef46bf7009 Author: Alfredo Kojima <alfredo.kengi.kojima@oracle.com> Date: Wed Mar 2 16:47:00 2016 -0800 Removed internal doc files, protocol documentation to be handled by docs team Closes bug #22844393 (cherry picked from commit 10cbf907becc5faeb4e22b61e768cda2a1b65bcf) Conflicts: rapid/plugin/x/protocol/conf.py commit 07ea37ce7fdce102961068555e553773b7e7c7ef Author: Bjorn Munch <bjorn.munch@oracle.com> Date: Wed Mar 2 12:51:11 2016 +0100 Add mysqlxtest to tools removed from docker image (cherry picked from commit 14d2f7c04a7f10e45b1f0a9674178ebb6e386983) commit 21569fa73d5bbd8451972fcac476199f9dcb05b2 Author: Robert Golebiowski <robert.golebiowski@oracle.com> Date: Mon Feb 29 13:12:42 2016 +0100 Bug 22842590 - PB2 VALGRIND FAILURES FOR ENCRYPTION AND KEYRING TESTS - bug fix commit 745f2b162b60c56a4b24137c5c2707f7c5ddf17f Author: Lalit Choudhary <lalit.choudhary@oracle.com> Date: Mon Feb 29 16:20:13 2016 +0530 WL#8338: Post push fix. Issue: audit_log_mysqlx.test test was failing due to result mismatch. Fixed audit_log_mysqlx.test result mismatch issue. commit 8b8e63d0a4e6f74dd456b1d87c536329fcc8af3d Author: Allen Lai <zheng.lai@oracle.com> Date: Mon Feb 29 18:33:29 2016 +0800 WL#8548 InnoDB: Transparent data encryption Fixed bug#22842093 ENCRYPTED TABLES BECOME INACCESSIBLE AFTER UPGRADE TO MYSQL 5.7.12 commit e2078a6d97397a165e10c1d63a8d57801ae6b0b2 Author: Harin Vadodaria <harin.vadodaria@oracle.com> Date: Mon Feb 29 12:24:35 2016 +0530 WL#5789: Post push fix Fixing table_encrypt_2 failure. commit 2eaf896e34f78a9914a011d224e0edbe0ace1860 Author: Alfredo Kojima <alfredo.kengi.kojima@oracle.com> Date: Sat Feb 27 04:02:11 2016 -0800 Fixed memory leaks reported by ASan WL#8338 Memory allocated for Unit-test was not being released. Global data kept by ProtoBuf was not being released if plugin was uninstalled before server shutdown. commit 10d08de20ceb96d98b36a2f37a2f8f62c3e20312 Merge: 9f5b888 c9d5e58 Author: Robert Golebiowski <robert.golebiowski@oracle.com> Date: Sat Feb 27 04:45:33 2016 +0100 Merge branch 'mysql-5.7-keyring-okv' into mysql-5.7 Conflicts: sql/mysqld.cc storage/innobase/os/os0file.cc commit c9d5e58a5f77b496cb33bb61a7de0069ce0e462a Author: Robert Golebiowski <robert.golebiowski@oracle.com> Date: Wed Jan 20 17:00:51 2016 +0100 WL#8041: Use Oracle KeyVault for keyring storage in MySQL - Added OKV server based keyring plugin : keyring_okv commit 9f5b8882b1d4561a137fa39582af7838d42c23e7 Author: Lukasz Kotula <lukasz.kotula@oracle.com> Date: Fri Feb 26 21:06:59 2016 +0100 Follow up fix for testcase for wl#8338 description: 1) Fixed copy paste error in doxygen documentation 2) Changed name of UT executable for mysqlx plugin. Name was colliding with other optional target. commit 90a29da3fc37bdb174e4cc74086197841a76636c Author: Lukasz Kotula <lukasz.kotula@oracle.com> Date: Fri Feb 26 16:49:30 2016 +0100 wl#8338 MySQLng Plugin wl#8639 X Protocol Approved by Vinay Fisrekar <vinay.fisrekar@oracle.com> Approved by Prabeen Pradhan <prabeen.pradhan@oracle.com> commit d58556e7ca06f5697940ce75f955921a1d09177b Merge: 50eb3a5 bafbd56 Author: Chaithra Gopalareddy <chaithra.gopalareddy@oracle.com> Date: Fri Feb 26 15:59:52 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit bafbd56a682a290ed26b56c6aad6fde8530a214c Author: Chaithra Gopalareddy <chaithra.gopalareddy@oracle.com> Date: Fri Feb 26 15:58:43 2016 +0530 Bug #18899860: EXPLAIN .. SELECT .. FOR UPDATE TAKES LOCKS Problem: Explain for a statement with "For update" takes locks. Flags to take the lock are set while parsing itself for a "SELECT ..FOR UPDATE" statement. Solution: Do not set the flag for explain in parser. We do this by checking the lex->describe flag. commit 50eb3a56541f421f11253dd902f0b0b405cb371a Merge: 2222340 0879db6 Author: Yashwant Sahu <yashwant.sahu@oracle.com> Date: Fri Feb 26 13:33:49 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 0879db6aa7dc4ddd9a4a5f8e2e2f719f616c3b27 Merge: b4622b2 6065dbb Author: Yashwant Sahu <yashwant.sahu@oracle.com> Date: Fri Feb 26 13:18:43 2016 +0530 Merge branch 'mysql-5.5' into mysql-5.6 Conflicts: extra/yassl/include/yassl_int.hpp extra/yassl/src/cert_wrapper.cpp extra/yassl/src/yassl_int.cpp extra/yassl/taocrypt/include/asn.hpp commit 6065dbb1f05edef59a52cdad0a7be6b61a1d73b0 Author: Yashwant Sahu <yashwant.sahu@oracle.com> Date: Fri Feb 26 11:53:56 2016 +0530 Bug #22738607: YASSL FUNCTION X509_NAME_GET_INDEX_BY_NID IS NOT WORKING AS EXPECTED. commit 22223407cec0f3e1181480fc6d73c426a2188871 Merge: 417cc56 b4622b2 Author: Chaithra Gopalareddy <chaithra.gopalareddy@oracle.com> Date: Fri Feb 26 10:11:13 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit b4622b2f6e78608453dedd659c940f5445678b89 Author: Chaithra Gopalareddy <chaithra.gopalareddy@oracle.com> Date: Fri Feb 26 10:09:30 2016 +0530 Bug#21178196 : UPDATE MAY USE INDEX MERGE WITHOUT ANY REASON (INCREASING CHANCES FOR DEADLOCK) Post push fix for opt_trace.range_ps_prot commit 417cc5631f996eac8042d1de627de5f94d0f2637 Merge: 080ef6d 5c0f822 Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com> Date: Fri Feb 26 09:02:33 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 5c0f822678263b15601578d728826bd46ad74e30 Merge: e968bd6 3229dd7 Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com> Date: Fri Feb 26 09:02:11 2016 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 3229dd74a55ec75883677d8c70f36a62c9248ec1 Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com> Date: Fri Feb 26 09:01:49 2016 +0530 BUG#20574550 MAIN.MERGE TEST CASE FAILS IF BINLOG_FORMAT=ROW The main.merge test case was failing when tested using row based binlog format. While analyzing the issue it was found the following issues: a) The server is calling binlog related code even when a statement will not be binlogged; b) The child table list was not present into table structure by the time to generate the create table statement; c) The tables in the child table list will not be opened yet when generating table create info using row based replication; d) CREATE TABLE LIKE TEMP_TABLE does not preserve original table storage engine when using row based replication; This patch addressed all above issues. @ sql/sql_class.h Added a function to determine if the binary log is disabled to the current session. This is related with issue (a) above. @ sql/sql_table.cc Added code to skip binary logging related code if the statement will not be binlogged. This is related with issue (a) above. Added code to add the children to the query list of the table that will have its CREATE TABLE generated. This is related with issue (b) above. Added code to force the storage engine to be generated into the CREATE TABLE. This is related with issue (d) above. @ storage/myisammrg/ha_myisammrg.cc Added a test to skip a table getting info about a child table if the child table is not opened. This is related to issue (c) above. commit 080ef6d75eda15444c589ed17eb09032bbcb04e0 Author: Jimmy Yang <jimmy.yang@oracle.com> Date: Thu Feb 25 18:54:08 2016 +0800 Bug#22444530 - GCOLS + PARTITIONED TABLE, CRASH IN ROW_SEL_FIELD_STORE_IN_MYSQL_FORMAT_FUNC Reviewed-by: Sunny Bains <sunny.bains@oracle.com> commit 93ad08b18edf65ff47a4d4d42bf6fe036704a99c Author: Aakanksha Verma <aakanksha.verma@oracle.com> Date: Thu Feb 25 18:47:14 2016 +0530 Bug#22685001: MISLEADING MESSAGE ABOUT OPEN FILES LIMIT Post push to fix innodb_file_limit_check testcase failure on 5.7 daily commit c1f2c2c23d84a4315bab6eb8278eb5a9774fab4b Author: Jon Olav Hauglid <jon.hauglid@oracle.com> Date: Thu Feb 25 10:13:46 2016 +0100 Bug#22824957: MERGING OF INNODB AND KEYRING UNIT TESTS DOES NOT WORK PROPERLY Merging of Innodb and Keyring unit tests did not work properly because ADD_SUBDIRECTORY for these two directories was done before the MERGE_UNITTESTS CMake option was declared. This mean that on these unit tests were not merged properly on the initial build. That meant individual build and linking for each unit tests - which takes time and disk space. This patch fixes the problem by moving ADD_SUBDIRECTORY after MERGE_UNITTESTS has been defined. commit 39f41167a9e5e1bc32f3843aba19e0aac9078fd6 Author: Manish Kumar <manish.4.kumar@oracle.com> Date: Thu Feb 25 17:09:04 2016 +0530 BUG#22815932 - WL-9017 - GROUP REPLICATION: SECURE DISTRIBUTED RECOVERY CREDENTIALS Group Replication provides a distributed recovery process to synchronize new member with the group, WL#6837. This process is triggered on the new member, joiner, by establishing a asynchronous replication connection to one online member of the group and fetching all missing data until the point that the joiner joined the group. This asynchronous replication connection needs to be allowed to be established using credentials, more precisely a username - password tuple. Currently these credentials are stored on MySQL server configuration file and/or set by SET GLOBAL VARIABLE command, which causes a issue: persistence: the password is stored in plain text on a configuration file. To fix this persistence issue, this bug will will implement the following changes: 1. The user will always need to create the recovery channel using the CHANGE MASTER command. The plugin will not set any default value for the user and password field in CHANGE MASTER. 2. Restrict the addition of only MASTER_USER and MASTER_PASSWORD for the recovery channel on the server side. All other settings for the change master are added on the plugin side, as it is done today. commit 67f43ea2eefb6c550bc3387da019c73cb90513aa Author: Georgi Kodinov <georgi.kodinov@oracle.com> Date: Tue Feb 23 16:35:45 2016 +0200 Bug #21783798 NO MYSQL_AUDIT_GLOBAL_VARIABLE_GET EVENTS WHEN SHOW_COMPATIBILITY_56=OFF When show_compatibility_56 is off performance_schema converts "SHOW GLOBAL VARIABLES LIKE 'var_name'" into a SELECT statement over the performance_schema table. And since performance_schema does always produce the full content of the table and allows the optimizer to filter it out we have no other choice but produce MYSQL_AUDIT_GLOBAL_VARIABLE_GET events for all of the global variables. Note that this is different from the case when show_compatibility_56 is off since the INFORMATION_SCHEMA does pass down the condition on the I_S tables and the other variables are not queried. Updated the test case to test SHOW GLOBAL VARIABLES LIKE 'gizmo' for both on and off values of show_compatibility_56. commit 87214335dd63519dcf0e482610425e3ac5207402 Author: Marc Alff <marc.alff@oracle.com> Date: Wed Feb 24 13:48:20 2016 +0100 Bug#22782197 ACCESSING UNINITIALIZED MEMORY INSIDE MYSYS/MY_MALLOC.C MY_FREE() LINE ~129 Before this fix, when compiling the server with tools like Valgrind, the tool could report that calls to memory_free_noop() use uninitialized memory for the last parameter (struct PSI_thread * owner) The report is technically correct, but the issue has no consequence, as the parameter (even with a random value) is not used. With this fix, - memory_alloc_noop() - memory_realloc_noop() now cleanly return a properly initialized NULL value for the output 'owner' parameter, which is what is eventually passed to memory_free_noop(). commit 624e023ce376417b76e85fed413d807bb22789e5 Merge: 093d5a8 e968bd6 Author: Chaithra Gopalareddy <chaithra.gopalareddy@oracle.com> Date: Thu Feb 25 10:24:37 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit e968bd673fd047437259e52aca5771959bdb657d Author: Chaithra Gopalareddy <chaithra.gopalareddy@oracle.com> Date: Thu Feb 25 10:21:36 2016 +0530 Bug#21178196 : UPDATE MAY USE INDEX MERGE WITHOUT ANY REASON (INCREASING CHANCES FOR DEADLOCK) Problem: Index merge access plan is choosen over range scan when the cost for doing range scan would be same/less. Analysis: W.r.t the query presented in the bugpage, index merge access plan is choosen because it is covering. However, while calculating the cost for doing index merge scan, the current cost model thinks doing a sequential scan is more costly than doing a random scan. For the given case, while calculating the cost for disk sweep, we calculate cost for reading the blocks having the qualifying rows and the cost for skipping the other blocks. There is a minimal cost for skipping blocks too. And given that in this case, we are looking at one qualifying row and rejecting 1590000 rows, we would end up skipping a lot of blocks. As a result the total cost for doing sequential scan becomes larger than doing a random scan. This in turn makes optimizer think doing index merge is better than the other access plans. Solution: If it is calculated that sequential scan cost is more than random scan cost, set the cost to random scan cost. Also, set is_interrupted to true before calling get_sweep_read_cost when the plan is not single table. This will make both single table select and single table update choose the same code path. This is in line with other calls made to get_sweep_read_cost. Test case is not added as large amount of data is needed to get a repeatable scenario. commit 093d5a8f52fb8cc693847162cd67bd34eccbd9af Author: Marek Szymczak <marek.szymczak@oracle.com> Date: Wed Feb 24 17:08:29 2016 +0100 Bug#22142209 MY_MESSAGE FAILS TO ABORT MYSQL_AUDIT_SERVER_STARTUP_CLASS EVENT Problem: ======== my_message function called from within a plugin was not capable of aborting MYSQL_AUDIT_SERVER_STARTUP_STARTUP event. my_message function sets error state of the THD associated with the generated event, but THD was not available (NULL) during MYSQL_AUDIT_SERVER_STARTUP_STARTUP event generation. Fix: ==== THD is created during MYSQL_AUDIT_SERVER_STARTUP_STARTUP event generation. It holds information whether the event generation ends with the error state as a result of calling my_message function. Additionally the message is added to the error log, which covers this bug: Bug #22142166 MYSQL_AUDIT_SERVER_STARTUP_CLASS EVENT TERMINATION SHOULD IMPROVE DIAGNOSTICS Reviewed-by: ============ Georgi Kodinov <georgi.kodinov@oracle.com> Ramil Kalimullin <ramil.kalimullin@oracle.com> commit a58c958c6376786d5881be4680474823a94c9874 Author: Erlend Dahl <erlend.dahl@oracle.com> Date: Wed Feb 24 15:41:29 2016 +0100 Revert "Bug#22136709 INFINITE RECURSION BY CALLING MY_MESSAGE FROM MYSQL_AUDIT_GENERAL_CLASS HANDLER" Patch broke compilation. commit 01247d93b3aba0071fe8d33f8372ba9a41be8752 Author: Marek Szymczak <marek.szymczak@oracle.com> Date: Wed Feb 24 14:10:15 2016 +0100 Bug#22136709 INFINITE RECURSION BY CALLING MY_MESSAGE FROM MYSQL_AUDIT_GENERAL_CLASS HANDLER Problem: ======== Calling my_message from within an audit plugin during handling MYSQL_AUDIT_GENERAL_ERROR event causes the audit error event generating mechanism to fall into infinite recursion, which ends with the server crash. Fix: ==== A condition has been embedded into event generating mechanism that stops infinite recursion, when the stack size shrinks to a certain value. This fix does not prevent infinite recursion but stops it instead. The server does not crash and the ER_STACK_OVERRUN_NEED_MORE error is generated. null_audit_event_order_check_consume_ignore_count global variable was introduced that prevents clearing null_audit_event_order_check variable certain number of times. This allows to simulate infinite and non-infinite recursion during testing. Reviewed-by: ============ Georgi Kodinov <georgi.kodinov@oracle.com> Ramil Kalimullin <ramil.kalimullin@oracle.com> commit a0b2e32751f794d8102a5fff128bd78f91ad2921 Author: Olav Sandstaa <olav.sandstaa@oracle.com> Date: Wed Nov 4 13:21:10 2015 +0100 Bug#21062842 COSTMODEL_PLANCHANGE FAILS WITH EXPLAIN DIFFERENCE Adjust several queries in the costmodel_planchange test. The cause for these queries starting to produce a different query plan was the changes introduced by the fix for Bug#19821087 "UPDATES TO INDEXED COLUMN MUCH SLOWER IN 5.7.5". These changes caused records to be inserted differently in InnoDB tables. This resulted in minor changes to records in range estimates for large ranges. commit cd8a1c0e057f5d56d266a77799e43d0b9f1c4586 Author: Jimmy Yang <jimmy.yang@oracle.com> Date: Wed Feb 24 06:49:14 2016 +0100 update virtual_index.test to not to create compress table for Bug#22650296. commit 3fc87579e22efb0d9e0e3b2007c44417bfc8e3a4 Author: Harin Vadodaria <harin.vadodaria@oracle.com> Date: Wed Feb 24 10:49:15 2016 +0530 Bug#22748738 : --EARLY-PLUGIN-LOAD SHOULD HAVE EMTPY DEFAULT VALUE Description : 1. Changed --early-plugin-load default to empty. 2. Remove certain CMAKE code which is no longer required. commit 2a5c5ff037875d6887f53e6a6532243a21705870 Merge: 0d1e165 f95f191 Author: Shaohua Wang <shaohua.wang@oracle.com> Date: Wed Feb 24 03:43:43 2016 +0100 Merge branch 'mysql-5.6' into mysql-5.7 commit 0d1e1658ccad3bb629d04b200c466199319c12ea Author: Jimmy Yang <jimmy.yang@oracle.com> Date: Wed Feb 24 10:20:01 2016 +0800 Bug#22650296 - ASSERTION IN INNOBASE_BUILD_COL_MAP, ALTER Reviewed-by: Sunny Bains <sunny.bains@oracle.com> commit f95f1915d1944deec7119a1e0f47d3f42fe6026e Author: Shaohua Wang <shaohua.wang@oracle.com> Date: Wed Feb 24 03:20:21 2016 +0100 Followup: BUG#22516559 MYSQL INSTANCE STALLS WHEN SYNCING FTS INDEX Fix sync and sync_block test and doxygen build failures on pb2. commit e40d63e8cbf98e658d9d319bc0fa18eac34706f3 Merge: e3e289f 6f9b36a Author: Joao Gramacho <joao.gramacho@oracle.com> Date: Tue Feb 23 17:50:40 2016 +0000 Merge branch 'mysql-5.6' into mysql-5.7 commit 6f9b36a685aeda88db991c4a0dcc6b144a11026b Author: Joao Gramacho <joao.gramacho@oracle.com> Date: Wed Feb 10 14:16:44 2016 +0000 Bug#21616632 RPL.RPL_BUG33931 HAS OCCASIONAL FAILURES ON PB2 Problem and Analysis: The test case is failing because it forces the two replication threads to error out once asked to start, but it is only waiting for the SQL thread to stop reporting the error before trying to apply an "RESET SLAVE" statement. When a not so fast server didn't stopped the I/O thread before the "RESET SLAVE" statement be applied, the test case fails as reported. Fix: In order to fix the issue, the test case must also wait for the I/O thread to be stopped before trying to reset the slave. commit e3e289f64f4a31f69894aa0ca666d920be41e6e8 Merge: 5cc54a0 edf25c8 Author: Shaohua Wang <shaohua.wang@oracle.com> Date: Tue Feb 23 16:32:45 2016 +0800 Merge branch 'mysql-5.6' into mysql-5.7 commit edf25c80abd7cac129ee1177c882951b9b67d184 Author: Shaohua Wang <shaohua.wang@oracle.com> Date: Tue Feb 23 15:13:07 2016 +0800 Followup: BUG#22516559 MYSQL INSTANCE STALLS WHEN SYNCING FTS INDEX Fix sync and sync_block test failures on pb2. commit 5cc54a075dd736278fd582a3c76bf7c47f95f963 Author: Tor Didriksen <tor.didriksen@oracle.com> Date: Mon Feb 22 10:44:05 2016 +0100 Bug#22763880 INITIALIZATION OF TRANSACTION DELEGATES FAILED. PLEASE REPORT A BUG. Problem: MySQL will not start if built with -m32 on Solaris/Sparc. Fix: use proper alignment for static data in init_delegates() commit 7477622993961894f11cd81e43da06e8f0e48c88 Merge: fa73480 2d1a2e8 Author: Arun Kuruvila <arun.kuruvila@oracle.com> Date: Tue Feb 23 12:13:08 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 2d1a2e8b6e9149725d633a731081c2b744b50d6a Merge: 3a10d65 316cfd9 Author: Arun Kuruvila <arun.kuruvila@oracle.com> Date: Tue Feb 23 12:11:59 2016 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 316cfd9da88bcbe17a24fa2b74500dd30290b3dd Author: Arun Kuruvila <arun.kuruvila@oracle.com> Date: Tue Feb 23 12:10:41 2016 +0530 Bug#21918190: FEDERATED TABLES CORRUPT TABLE CACHE WHEN CONNECTIONS EXPIRE Description:- Server crashes with SEGSIGV because of accessing invalid memory while executing SELECT, FLUSH TABLE and KILL CONNECTION statements on a federated table concurrently. Analysis:- Server gets SEGSIGV in "ha_federated::close()" while accessing the members of "net->vio". This happens because of a small timing window existing in "cli_safe_read()" where mysql connection is present while "net->vio" structure gets freed. The following sequence will reproduce the issue:- * Connection 1:- SELECT * FROM t1; It establishes connection to the remote server using "CLI_MYSQL_REAL_CONNECT()" which in turn calls "cli_safe_read()". In "cli_safe_read()", connection receives CR_SERVER_LOST error because of the KILL CONNECTION queries executed in parallel from another connection. * Connection 2:- FLUSH TABLE t1; Meanwhile, after freeing the vio object as a part of "end_server()" in "cli_safe_read()", connection 2 executes "FLUSH TABLE t1" which uses mysql connection used by connection 1 and gets SEGSIGV in "ha_federated::close()" while accessing vio object. Other than this issue, there exists one more crash which is also reproducible with the same repeat steps, but only in debug mode. This crash occurs because of the function "clear_error()" which is called inside "ha_federated::close()". "clear_error()" resets the diagnostic area regardless of which query triggers "ha_federated::close()". SQLCOM_FLUSH queries expects diagnostic area status to be "DA_EMPTY" after closing the table. While queries like SQL_COM_SELECT expects diagnostic area status to be "DA_OK" in case of success and "DA_ERROR" in case of failure after closing the federated table. Fix:- A condition is added to check whether "net->vio" structure is present before accessing its members. For fixing the other crash, the following fix approach is taken:- (1)"clear_error()" is called for all queries if the current thd and the "table->in_use" thd are different. I.e, error from mysql_close() are ignored while closing the table in case the the client executing the query was not issued against the FEDERATED table. (2)"clear_error()" is called for SQLCOM_FLUSH queries if the close table request comes from the current thd. Its clever to silently ignore errors from mysql_close() while closing the federated table on flush table request. commit fa73480ceacb0bd57afe7e8dea0766b342aa893f Merge: fa5632d 3a10d65 Author: Arun Kuruvila <arun.kuruvila@oracle.com> Date: Tue Feb 23 11:59:01 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 3a10d657b2f77956a510739054b0c714db711260 Merge: f6a2f40 c97d958 Author: Arun Kuruvila <arun.kuruvila@oracle.com> Date: Tue Feb 23 11:57:25 2016 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit c97d958a5a25f0c04dfe89df8fe4ce77ecd94599 Author: Arun Kuruvila <arun.kuruvila@oracle.com> Date: Tue Feb 23 11:54:59 2016 +0530 Bug #21699037: HANDLE_FATAL_SIGNAL (SIG=11) IN WILD_CASE_COMPARE SQL/SQL_ACL.CC:8744 Description:- Executing GRANT PROXY command after altering the user table definition results in a server crash. Analysis :- Altering mysql user table definition and trying to execute GRANT PROXY command results in a server crash due to double freeing of ACL structures(acl_users, acl_dbs, acl_proxy_users). Even two consecutive FLUSH PRIVILEGES will reproduce this issue. Executing FLUSH PRIVILEGES for the first time after altering user table will return an error, "ERROR 1105 (HY000): Unknown error", while trying to reload the ACL structures. Error is caught while trying to check the "password_length" inside "acl_load()". At this point of execution, only "global_acl_memory" and "acl_users" are newly allocated for storing new ACL information. Since "acl_load()" fails here, "acl_reload()" tries to revert the ACL structures to old ones. "acl_free()" is called to free all the newly created ACL structures. But since "acl_load()" failed just after allocating "global_acl_memory" and "acl_users" structures, its wrong to call "acl_free()" blindly which will free all the acl structures. Allocating ACL structures before calling "acl_load()" will solve the issue. Fix:- ACL structures are allocated before calling "acl_load()". Similar approach has been done in mysql-trunk. commit fa5632d4af50d3bb9b81a4fb8f5d5343e40cc421 Merge: 26ab3e4 f6a2f40 Author: Arun Kuruvila <arun.kuruvila@oracle.com> Date: Tue Feb 23 11:45:59 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit f6a2f407c6c77bdbd369e97b9b1c0a2a217fc59b Merge: 88fb695 99210e3 Author: Arun Kuruvila <arun.kuruvila@oracle.com> Date: Tue Feb 23 11:43:43 2016 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 99210e3604659020f65185de894384fc204a8419 Author: Arun Kuruvila <arun.kuruvila@oracle.com> Date: Tue Feb 23 11:41:03 2016 +0530 Bug#22176795 : MYSQL SEGFAULTS WHEN PERFORMING FULL TEXT SEARCH IN BOOLEAN MODE Description:- MySQL crashes when doing full-text search in Boolean mode on a MYISAM table. Analysis:- Buffer overflow is happening while copying the newly found key to the ftbw word buffer in "_ft2_search_no_lock()" (line: storage/myisam/ft_boolean_search.c:462). Memory for word buffer is allocated in "ftb_query_add_word()" (line: storage/myisam/ft_boolean_search.c:1064) which is of size, (word_len * ftb_param->ftb->charset->mbmaxlen + HA_FT_WLEN + ftb_param->ftb->info->s->rec_reflength). The word buffer format is explained in line: storage/myisam/ft_boolean_search.c:341. Because of the presence of some special characters in the column used for Boolean full text search, size of the buffer to get copied becomes larger than the actual memory allocated which causes buffer overflow. This lead to the memory corruption of the members of 'ftb' structure which in turn results in server crash. Fix:- A check is introduced to confirm that the size of the buffer to get copied should be less than or equal to the expected size. Also the memory allocated for the the ftbw word should be "(word_len + 1) * ... , i.e, the word length + the binary operator length which is used with the word. "word_len" only gives the length of the word without operator. commit 26ab3e409f781b560d7f20025a35d05cd368a4b4 Merge: ff6062a 88fb695 Author: Shaohua Wang <shaohua.wang@oracle.com> Date: Tue Feb 23 11:24:46 2016 +0800 Merge branch 'mysql-5.6' into mysql-5.7 commit 88fb6951f9f973468778cd75b63f88e517d23f1f Author: Shaohua Wang <shaohua.wang@oracle.com> Date: Tue Feb 23 09:43:44 2016 +0800 BUG#22516559 MYSQL INSTANCE STALLS WHEN SYNCING FTS INDEX Problem: Fts sync x-lock cach->lock for a long time, but it blocks DML on the same table, and it blocks all DML on the server, when global binlog_order_commits = 1. Solution: Release cache lock when sync a entry(fts_write_node), and move fts sync into fts optimise thread. Reviewed-by: Jimmy Yang <jimmy.yang@oracle.com> RB: 11562 commit ff6062a88c6dc55c5b1eed7f651399d680d47873 Merge: 40327d9 68d7206 Author: Aakanksha Verma <aakanksha.verma@oracle.com> Date: Mon Feb 22 13:45:11 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 Post push to fix main.mysql_not_windows failure on Solaris and osx machines commit 68d7206888a02d4f212f55b2d4e690a111630b87 Author: Aakanksha Verma <aakanksha.verma@oracle.com> Date: Mon Feb 22 12:52:06 2016 +0530 Bug#22685001: MISLEADING MESSAGE ABOUT OPEN FILES LIMIT Post push to fix innodb_file_limit_check testcase failure on freeBSD machines commit 40327d97b868b1e7ddce5cd5920b8b872a0c213b Author: Nuno Carvalho <nuno.carvalho@oracle.com> Date: Sat Feb 20 15:00:37 2016 +0100 BUG#22734285: LIMIT/REMOVE THE APPLIER RECEIVED GTID SET On Group Replication we have two types of transactions: local: committed by the local member; remote: committed by other group members. The local transactions follow the same flow like if this server was a single master on a asynchronous replication. The remote transactions are delivered by the communication layer and queued for conflict detection and apply. These transactions, after being accepted to commit (no conflicts detected) are queued to a relay log and eventually applied. These transactions are tracked on group_replication_applier channel. DBA can check them by consulting column received_transaction_set on performance_schema.replication_connection_status table. Since it only contains remote transactions, if this member does commit transactions there will be gaps, example: Three members group: M1, M2 and M3. M1 does commit UUID:1 and UUID:3 M2 does commit UUID:2 M2 received_transaction_set will be: UUID:1,3. UUID:2 will not be there. On the long term, the number of gaps may increase, and this may have impact on the performance. To solve the above issue, periodically, we update the received set with the full set of transactions committed on the group, closing the gaps. This update is done on the same moment that all members do exchange their committed transactions set and garbage collect the certification info. Changes ======= To implement the solution for this bug, the following changes were required: Server side ----------- 1. Add functionality to copy GTID_EXECUTED to replication channel received transaction set. Files: rpl_channel_service_interface.h, rpl_channel_service_interface.cc, rpl_rli.h, rpl_rli.cc Validation and testing is done on BUG 22671747, on Group Replication plugin. commit b38bdb0ac5a441490f03179f7a7ffd6d9d462967 Author: Bharathy Satish <bharathy.x.satish@oracle.com> Date: Sat Feb 20 11:15:15 2016 +0530 Bug #21382184 MYSQLDUMP TEST FAILS OCCASIONALLY DUE TO NON AGGREGATED COLUMN Problem: mysqldump fails due to inconsistency in cardinality being displayed in result file. Fix: Filtered out the cardinality output to make it consistent. commit fc8ca3fba4fba4c178b3729f4aa518d8de68c68e Merge: f272831 dd3a887 Author: Ramil Kalimullin <ramil.kalimullin@oracle.com> Date: Fri Feb 19 23:36:44 2016 +0400 Null merge branch 'mysql-5.6' into mysql-5.7 Conflicts: client/client_priv.h client/mysql.cc client/mysql_upgrade.c client/mysqlcheck.c client/mysqlslap.c include/sslopt-case.h include/sslopt-longopts.h include/sslopt-vars.h commit dd3a88763019b8713837b119e91a6e7e5054daba Author: Ramil Kalimullin <ramil.kalimullin@oracle.com> Date: Fri Feb 19 23:35:38 2016 +0400 WL#9072: Backport WL#8785 to 5.5 commit f27283160bc8c621ee11c4e191f141c3537511fc Merge: 6089118 e89d9bf Author: Ramil Kalimullin <ramil.kalimullin@oracle.com> Date: Fri Feb 19 23:32:24 2016 +0400 Merge branch 'mysql-5.6' into mysql-5.7 commit e89d9bf39aaf2437331866e42b28111ec9f8ebec Merge: f5e6fb4 fbcc66b Author: Ramil Kalimullin <ramil.kalimullin@oracle.com> Date: Fri Feb 19 23:31:56 2016 +0400 Null merge branch 'mysql-5.5' into mysql-5.6 commit fbcc66b358994792613c08bf4cb8cb64668a0a60 Author: Ramil Kalimullin <ramil.kalimullin@oracle.com> Date: Fri Feb 19 23:31:10 2016 +0400 WL#9072: Backport WL#8785 to 5.5 commit 6089118fbfb47b1390132afc8b66dda31c95a447 Author: Erlend Dahl <erlend.dahl@oracle.com> Date: Fri Feb 19 05:45:04 2016 +0100 Bug#22760145 INNODB.TABLE_ENCRYPT_DEBUG TIMES OUT IN VALGRIND Disable test in valgrind to avoid problems in the weekly run. Approved by Jon Olav Hauglid <jon.hauglid@oracle.com> commit 7ee3b67d183282ecf6db4f4529b1e44637281448 Author: Gleb Shchepa <gleb.shchepa@oracle.com> Date: Fri Feb 19 10:12:17 2016 +0400 bug#21306646 follow up patch for the test file to stabilize test results commit 7fd9b10d469fcc3a8bc45e781bdce8900e505aef Merge: 07d1ef7 f5e6fb4 Author: Aditya A <aditya.a@oracle.com> Date: Fri Feb 19 11:07:10 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit f5e6fb4d673004d5ecebd41683a3cd2864454106 Author: Aditya A <aditya.a@oracle.com> Date: Fri Feb 19 11:05:31 2016 +0530 Bug #22721993 PB2 FAILURE OF MEMCACHED.MEMC284_MISC Perl memcached module interface not seeing correct return values. To validate if the rows are inserted or not we will use the get method. commit 07d1ef7502eaf2d006290fd6dec1ea0a8122ea75 Author: Erlend Dahl <erlend.dahl@oracle.com> Date: Thu Feb 18 14:57:46 2016 +0100 Bug#22755816 INNODB.ANALYZE_TABLE TIMES OUT IN VALGRIND Disable test in valgrind to avoid problems in the weekly run. Approved by Jon Olav Hauglid <jon.hauglid@oracle.com> commit 705b638255ee9c541f708ef4d2381496dd3da224 Author: Tor Didriksen <tor.didriksen@oracle.com> Date: Thu Feb 18 12:33:17 2016 +0100 Bug#14744160 LIMIT PARSER MEMORY USAGE This is a followup patch. Problem: check-testcase by mtr may fail. It does SELECT * FROM INFORMATION_SCHEMA.VIEWS which will invoke the parser recursively, and will need more than 400kbytes Solution: raise the minimum value of parser_max_mem_size to 10MB commit cab419ce9d96180057cf785009b89922ec044515 Author: Aakanksha Verma <aakanksha.verma@oracle.com> Date: Thu Feb 18 16:44:34 2016 +0530 Test main.mysql_not_windows fails on Solaris and osx platforms due to push of bug#22685001. commit b8ed910491ce93d170674e12ebab526aa5700e6d Author: Karthik Kamath <karthik.kamath@oracle.com> Date: Thu Feb 18 12:20:18 2016 +0530 BUG#21877062: MIN/MAX IN VIEW ON TIMESTAMDIFF IN VIEW CONFUSES OPTIMIZER TO THROW SYNTAX ERROR ANALYSIS: ========= CREATE VIEW operation using timestampdiff() function with MICROSECOND as the unit results in an incorrect view definition. 'Item_func_timestamp_diff::print()' is used to generate view definition when it involves a timestampdiff operation. The function generated an incorrect view definition since it translated the 'MICROSECOND' unit to an invalid string 'SECOND_FRAC'. Operations on such an invalid view resulted in a syntax error. FIX: ==== The fix involves appending the string 'MICROSECOND' while generating the view definition when the unit specified is 'MICROSECOND'. commit 4bdff5057d516dd72ca6fef8ebc69000f9fcd29e Author: Tor Didriksen <tor.didriksen@oracle.com> Date: Tue Feb 16 16:34:29 2016 +0100 Bug#22255732 DEBUGPRINTDEATHTEST.PRINTEVAL UNIT TEST FAILS UNDER MAC, IF BUILT WITH ASAN Disable dbug death tests when running ASAN. Not supported. commit f796a86f380ef0e0b8327ae57b2d4dbad013a140 Author: Tor Didriksen <tor.didriksen@oracle.com> Date: Tue Feb 16 13:11:11 2016 +0100 Bug#14744160 LIMIT PARSER MEMORY USAGE This is a followup patch. Problem: There is no call on Sys_var_integer::do_check() for 'set xxx=default'; The predefined default for parser_max_mem_size is "infinite". This means that clients could simply do "set parser_max_mem_size=DEFAULT" and get an "infinite" limit, even if the server was started with the option --maximum-parser-max-mem-size=<some number> This patch looks at max_system_variables.parser_max_mem_size after all This is a followup patch. Problem: There is no call on Sys_var_integer::do_check() for 'set xxx=default'; The predefined default for parser_max_mem_size is "infinite". This means that clients could simply do "set parser_max_mem_size=DEFAULT" and get an "infinite" limit, even if the server was started with the option --maximum-parser-max-mem-size=<some number> This patch looks at max_system_variables.parser_max_mem_size after all options have been parsed, and updates default value for parser_max_mem_size accordingly. Also update global_system_variables, so 'SELECT parser_max_mem_size' reports correct data. commit d4b370ac48f6182f94ab2383775e23c3d5341e0e Author: Marko Mäkelä <marko.makela@oracle.com> Date: Wed Feb 17 13:36:09 2016 +0100 Follow-up cleanup for Bug#22709463 LATCHING ORDER VIOLATION IN BUF_BLOCK_ALIGN() DEBUG CALLS buf_chunk_map_latch, ChunkMapLatch: Remove. buf_block_from_ahi(): Assert that no buffer pool resizing is in progress. Reviewed-by: Annamalai Gurusami <annamalai.gurusami@oracle.com> commit 0c948d4a2877a9a74d5234184f04b7f47a2414b7 Author: Chaithra Gopalareddy <chaithra.gopalareddy@oracle.com> Date: Wed Feb 17 16:17:43 2016 +0530 Bug#22734050 : MAIN.RANGE_ALL AND ALL THE RANGE TESTS FAIL ON SOLARIS Problem: The test for checking if range optimizer bails out when too many SEL_ARG's were created takes a long time now to complete. This is within the timeframe set by mtr for some machines and not so for slower machines. Analysis: Before the fix for Bug#17769777, the test in range.inc used to pass because there was a check for the MAX_SEL_ARGS (16000) before calling test_use_count in a debug build. Reason being it takes too much time to traverse a big range tree. This was removed when fix for Bug#17769777 was made. For the default value set for range_optimizer_max_mem_size, the test used to pass because it exceeds the default value for less number of SEL_ARGS. However with the fix for Bug#22283790, the default value is now raised from 1.5MB to 8MB. This results in creating more SEL_ARGS than earlier which in turn creates a large range tree. Hence the failure. Solution: Introduce the check back. The value for checking is now based on the amount of memory, not on the number of SEL_ARGS. Value is set to 2MB because it would ideally take ~1.6MB for 16000 SEL_ARGS. For an OR condition we will be taking double the amount of memory for the same SEL_ARGS. But if we set the value to 4MB for the check, in case of AND conditions, it might create 35000 SEL_ARGS. This might again, take time to traverse. commit a55db412f1a8b58d7810975c7d7f6c1ca71ca6da Author: Jimmy Yang <jimmy.yang@oracle.com> Date: Wed Feb 17 10:11:26 2016 +0800 Bug#22162200 - MEMORY LEAK IN HA_INNOPART_SHARE::SET_V_TEMPL PARTITIONED ON VIRTUAL COLUMN Reviewed-by: Debarun Banerjee <debarun.banerjee@oracle.com> commit 44955f9b0525075f146baff26d5919b349a5e005 Merge: 67b13f5 afa239a Author: Georgi Kodinov <georgi.kodinov@oracle.com> Date: Tue Feb 16 15:21:52 2016 +0200 Merge branch 'mysql-5.6' into mysql-5.7 commit afa239a30424e42747dd3d92be3fbd6458340b30 Author: Georgi Kodinov <georgi.kodinov@oracle.com> Date: Tue Feb 16 15:07:30 2016 +0200 Addendum to bug #22722946: moved the test into a separate file and added checks for deubg code. commit 67b13f50b7a3ca4d703fda36b657ea2e17dd7158 Author: Chaithra Gopalareddy <chaithra.gopalareddy@oracle.com> Date: Tue Feb 16 17:50:58 2016 +0530 Bug#22283790 RANGE OPTIMIZER UTILIZES TOO MUCH MEMORY WITH MANY OR CONDITIONS Post push fix for failure on mysql-trunk: main.transactional_acl_tables commit 1f1dfdd74afeaf20ba0900722094ae6460963368 Author: Daniel Blanchard <daniel.blanchard@oracle.com> Date: Tue Feb 16 10:32:05 2016 +0000 Follow up fix for testcase for BUG#22646779 The shm_server_restart test is not applicable in embedded or non-Windows platforms. commit e926dd2878d704b0c298f197b1d2479939b86c53 Author: Jimmy Yang <jimmy.yang@oracle.com> Date: Tue Feb 16 12:57:20 2016 +0800 Follow up fix for Bug#22572997 - GCOL:INNODB: FAILING ASSERTION: N < REC_OFFS_N_FIELDS(OFFSETS) commit 6edf57e6342eb6426cfb185cbbfacf862ab704db Author: Manish Kumar <manish.4.kumar@oracle.com> Date: Tue Feb 16 11:05:40 2016 +0530 BUG#22699395 - SQL_THREAD OF BINLOG-LESS SLAVE FAILS WITHOUT ANY MESSAGE FOR VIEW_CHANGE EVENT Problem : The problem with this bug is that when the binlogless slave is trying to read from an active member of the group, the view_change event is not applied on the slave and therefore it errors out. The error happens in the view_change_event::do_apply_event when the view_change event is being written to the binary log which is disables as the slave is started with skip-log-bin option ON. Solution : The problem is fixed by skipping applying the event for the case the binary log is disabled on the slave which is replicating from the group. This is achieved by checking the binlog server option. commit ed66a7f314267fe92c0147f91bcc37f85cf41b4b Author: Kevin Lewis <kevin.lewis@oracle.com> Date: Thu Feb 11 11:13:48 2016 -0600 Bug #22713094 INNODB.CREATE_TABLESPACE.TEST CRASHES SPORADICALLY These three tests create a 'test' folder under $MYSQL_TMP_DIR when they specify CREATE TABLE ... DATA DIRECTORY='$MYSQL_TMP_DIR'; But did not remove it at the end with --rmdir $MYSQL_TMP_DIR/test When these tests happen to run just before innodb.create_tablespace.test it will fail at line 248 which is; --mkdir $MYSQL_TMP_DIR/test commit 74b1ab2807b599749e3850f85ea6acb4439a0be1 Author: Daniel Blanchard <daniel.blanchard@oracle.com> Date: Mon Feb 15 16:04:53 2016 +0000 BUG#22646779: CLIENT LIBRARY FAILS TO CLOSE HANDLE ON MUTEX USED BY SHARED MEMORY CONNECTIONS The connect_named_mutex used in the create_shared_memory function to serialize the creation of shared memory connections on Windows was not being released with CloseHandle. Reviewed-by: Georgi Kodinov <georgi.kodinov@oracle.com> RB: 11680 commit f5d864451216e11c1038d81af86d2018bb6fb34f Author: Horst Hunger <horst.hunger@oracle.com> Date: Mon Feb 15 12:56:10 2016 +0100 Fixed a test failing in hudson jobs commit 9969cec0ff4af6e094f344a43d256059cab21ed6 Author: Jimmy Yang <jimmy.yang@oracle.com> Date: Mon Feb 15 18:44:17 2016 +0800 Bug#22572997 - GCOL:INNODB: FAILING ASSERTION: N < REC_OFFS_N_FIELDS(OFFSETS) Reviewed-by: Sunny Bains <sunny.bains@oracle.com> commit 2796527dee9f82d803885daba9e76186736cb20b Author: Erlend Dahl <erlend.dahl@oracle.com> Date: Mon Feb 15 08:40:19 2016 +0100 Bug#21840420 MTR CHECK FOR I_MAIN.BUG14826854 FAILS BECAUSE MYSQL.SYS USER HAS CHANGED Approved by Jon Olav Hauglid <jon.hauglid@oracle.com> commit 408dc568fd162a73792a03e626c749616afa9304 Author: Chaithra Gopalareddy <chaithra.gopalareddy@oracle.com> Date: Sun Feb 14 22:54:57 2016 +0530 Bug#22283790: RANGE OPTIMIZER UTILIZES TOO MUCH MEMORY WITH MANY OR CONDITIONS Post push fix. Fix testcase sys_vars.range_optimizer_max_mem_size_basic commit 0a200e0091cc0d1a5177e5ee58592e3aebf4a164 Merge: 4cdb516 3856a3b Author: Chaithra Gopalareddy <chaithra.gopalareddy@oracle.com> Date: Sun Feb 14 20:39:04 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 3856a3b14e25b9343887f08156b2c5cddeb67e0d Author: Chaithra Gopalareddy <chaithra.gopalareddy@oracle.com> Date: Sun Feb 14 20:37:05 2016 +0530 Bug #18109609: LOOSE INDEX SCAN IS NOT USED WHEN IT SHOULD Problem: Loose index scan is not chosen if a query has a equality condition. Analysis: Optimizer indeed chooses loose index scan as the cheapest possible access plan for the given query before it checks for ref access. However optimizer chooses ref access without calculating the cost because of the heuristic "ref scan is always cheaper compared to range scan if it is utilizing the same or more keyparts ". However in case of loose index scan, it is not always guranteed that ref scan will be looking at same/less number of qualifying rows. Solution: Do not consider the above heuristic when the chosen access plan is loose index scan. Instead calculated the cost for doing ref access before choosing it. commit 4cdb516fe1261b601d48d8d30916299c1e68e37a Author: Chaithra Gopalareddy <chaithra.gopalareddy@oracle.com> Date: Sun Feb 14 19:34:54 2016 +0530 Bug#22283790: RANGE OPTIMIZER UTILIZES TOO MUCH MEMORY WITH MANY OR CONDITIONS Problem: The default value for range_optimizer_max_mem_size exceeds if too many OR conditions are there. Analysis: For every OR condition, range optimizer creates a SEL_TREE object. Although it keeps merging the SEL_TREE objects if it can be done, it cannot delete the SEL_TREE objects memory.As a result, when there are many OR conditions, we see that the default value of range_optimizer_max_mem_size exceed very quickly. range_optimizer_max_mem_size is actually given that default keeping a SEL_ARG object's memory in mind. Memory take for a SEL_ARG object is 105 bytes, while the memory taken for a SEL_TREE object is close to 600 bytes. Hence the memory allocated gets exhausted very easily when too many SEL_TREE's are created. Solution: A SEL_TREE object has an array of 64 SEL_ARG pointers. This is based on the fact that a table can have a max of 64 Keys. However, it is not needed for every SEL_TREE object to have those many pointers. RANGE_OPT_PARAM has a member called "keys" which defines the number of keys that are considered for optimization. Using this we make SEL_ARG **keys[MAX_KEY] to Mem_root_array<SEL_ARG *,true> keys; And reserve the memory required for the array using RANGE_OPT_PARAM's "keys" member. With this improvement we have reduced the memory usage down for range optimizer. As a result, the new default for range_optimizer_max_mem_size is 8388608 bytes. commit 0d8da0211829a29943d829007b588c092e62ae4d Author: Marko Mäkelä <marko.makela@oracle.com> Date: Sat Feb 13 08:21:30 2016 +0200 Bug#22709463 LATCHING ORDER VIOLATION IN BUF_BLOCK_ALIGN() DEBUG CALLS Bug#21321238 ASSERT MISMATCHED PAGE, BUF_BLOCK_ALIGN <- IBUF_BITMAP_PAGE_GET_BITS_LOW Bug#22228629 ASSERTION COUNTER < 10 IN BUF0BUF.CC:3939 BUF_BLOCK_ALIGN() Some debug code in InnoDB mini-transactions invoked buf_block_align(), which may acquire buf_block_t::mutex. If we are already holding fil_space_t::latch, that would be a latching order violation, possibly causing a deadlock of threads in debug builds. buf_block_align(): Rename to buf_block_from_ahi(). Only call it from the adaptive hash index, and do not acquire the block mutex in debug code. Remove the retry loop that got stuck in Bug#22228629 and was enclosed in #ifdef UNIV_DEBUG in the Bug#22179317 fix. mtr_t::modify_page(): Note that a latched page is being modified. mtr_t::memo_contains_page(): Remove. mtr_t::release_page(): Release a page latch based on a pointer. FindPage: A visitor that looks for a pointers into block->frame. ibuf_insert_to_index_page(): Remove an unnecessary call to buf_block_align(). This fixes Bug#21321238. buf_frame_get_page_zip(), PAGE_ZIP_MATCH(): Remove. When I developed ROW_FORMAT=COMPRESSED for the InnoDB Plugin of MySQL 5.1, it was useful to ensure that the two pointers belong together. This check never failed after the feature was completed, and probably since MySQL 5.7.5, it causes latching order violations in the tests of WL#6117 InnoDB: Resize the InnoDB Buffer Pool Online. RB: 11769 Reviewed-by: Annamalai Gurusami <annamalai.gurusami@oracle.com> commit fdd028c4870610ae7f8df7aca241974e740fad04 Author: Kevin Lewis <kevin.lewis@oracle.com> Date: Wed Jan 13 15:37:46 2016 -0600 Bug #22542547 INNODB: FIX COMPILER WARNINGS FOUND WITH MSVS 2015 commit 0fa7bc47f717202fef8ed0db3f727344aaf0a753 Merge: b893c64 aa85102 Author: Georgi Kodinov <georgi.kodinov@oracle.com> Date: Fri Feb 12 16:37:51 2016 +0200 Merge branch 'mysql-5.6' into mysql-5.7 commit aa85102dd89b004f0b86d9146cfd133793a922f9 Author: Georgi Kodinov <georgi.kodinov@oracle.com> Date: Fri Feb 12 13:51:52 2016 +0200 Bug #22722946: integer overflow may lead to wrong results in get_56_lenc_string commit b893c64da41a0535469931282c8e7d8ec79dcef9 Merge: c1659f5 af467b3 Author: Aakanksha Verma <aakanksha.verma@oracle.com> Date: Fri Feb 12 15:49:05 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit af467b38db9983dd040606d0796d6cf9b76312f6 Author: Aakanksha Verma <aakanksha.verma@oracle.com> Date: Fri Feb 12 15:37:25 2016 +0530 PROBLEM The patch from bug#22111472 causing message getting issued pretty much irrespective of the actual value of either parameter. FIX Have rearranged the patch so that warning is printed only after innodb_open_files>open_files_limit is reached. Reviewed-by: Annamalai Gurusami<annamalai.gurusami@oracle.com> RB: 11784 commit c1659f5a3b2de5c7053d06f34c6ed575e7d8ca04 Author: Joao Gramacho <joao.gramacho@oracle.com> Date: Tue Feb 9 19:26:23 2016 +0000 Bug#21953132 RELAY LOG INFO CURRENTLY_EXECUTING_GTID IS NOT PROPERLY INITIALIZED OR PROTECTED Problem: When replication is configured but not started on a slave, the relay log info variable "currently_executing_gtid" is not properly initialized and would be used if performance_schema table replication_applier_status_by_worker be queried. A valgrind test confirmed that the variable can be used uninitialized. Fix: Initialized the variable properly on relay log info constructor. commit 5e62007ae1723b956ee811f4090efe46aa2c8817 Merge: 917551f 085c205 Author: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com> Date: Thu Feb 11 16:32:33 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 085c2058b88e36fe85dd3be0fcaa96aadea23e6f Merge: 86a1cb8 fe63fa6 Author: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com> Date: Thu Feb 11 16:29:28 2016 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 917551f972cf7e81841be77e7da5df1fdd67bdb7 Author: Tatiana Azundris Nuernberg <tatjana.nuernberg@oracle.com> Date: Thu Feb 11 09:07:54 2016 +0000 Bug#20642505: HENRY SPENCER REGULAR EXPRESSIONS (REGEX) LIBRARY CONTAINS A HEAP removing test func_regexp-bug20642505 as it is too resource intensive and on some equipment fails outside the code it verifies commit fe63fa668f7cf177f62175c360e52591ee1dce67 Author: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com> Date: Wed Feb 10 19:57:17 2016 +0530 BUG#22037930: INSERT IGNORE FAILS TO IGNORE FOREIGN KEY CONSTRAINT. Analysis ======= INSERT and UPDATE operations using the IGNORE keyword which causes FOREIGN KEY constraint violations reports an error despite using the IGNORE keyword. Foreign key violation errors were not ignored and reported as errors instead of warnings even when IGNORE was set. Fix === Added code to ignore the foreign key violation errors and report them as warnings when the IGNORE keyword is used. commit de77432442ab472d3c80dfe4f2505610de912a67 Author: Nuno Carvalho <nuno.carvalho@oracle.com> Date: Wed Feb 10 13:15:54 2016 +0100 BUG#22628341: GTID HOLES WITH MULTIPLE WRITERS AND REDUCED PERFORMANCE Scenario ======== Group Replication with two members, both committing conflicting transactions. To be more exact, all transactions do conflict, this it is the worst case scenario. Example: M1 M2 T1: W(A) T2: W(A) T3: W(B) T4: W(B) On each round, one of the transactions will rollback, and clients move to the next round. There is no synchronization between servers. Analysis ======== After running dozens of rounds the value of GTID_EXECUTED on both members is: M1: UUID:1-56:58:61-62:64:66:69-70:72:74:76:78:80:82:84:86:88:90 M2: UUID:1-55:57:59-60:63:65:67-68:71:73:75:77:79:81:83:85:87:89:91 The question it is: what did happen to GNO 55 and/or 56 that caused GTID_EXECUTED to be different from that point on the two members. Also looking to error logs on both servers, we see "Duplicate entry '53' for key 'PRIMARY'" errors. Appliers did error out on both members. Looking to certification information we see: GNO: 55; write_set: '3614141148'; snapshot_version: 'UUID:1-54' GNO: 56; write_set: '2045756991'; snapshot_version: 'UUID:1-54'; source: M1 GNO: 57; write_set: '2045756991'; snapshot_version: 'UUID:1-55'; source: M2 We can see that the same write-set, 2045756991, it is certified with two different snapshot_version (current GTID_EXECUTED when the transaction was instructed to commit). GNO 56 belongs to M1 and GNO 57 belongs to M2, both insert value 53. On this scenario, M1 is, due to natural reasons, not able to commit anything, all its transactions are rollback, until finally it is able to send its broadcast to the group first than M2 and make transaction with GNO 56 pass. Until this moment it has received 55 transactions but it is still applying one, the one with GNO 55. So when it does broadcast transaction that will GNO 56, its GTID_EXECUTED it is UUID:1-54, GNO 55 it is not yet applied. Since this transaction does not conflict with any other on that snapshot_version, it is accept to commit. Meanwhile on M2, the same data it is broadcast for certification, but since this server so far did only had local transactions, its GTID_EXECUTED it is UUID:1-55. So this transaction will be accepted to commit, since its version supersedes UID:1-54. It is better to write a table: M1: T1: ws=53; sv=UUID:1-54 M2: T2: ws=53; sv=UUID:1-55 Since snapshot_version from T2 is bigger than the one from T1, this is not a conflict. Legend: ws: writ-set sv: snapshot_version Thought, indeed there is a problem here, because now we have two transactions with the same data that will error out on apply, since applier is slower than local transactions, applier threads will error out. Solution ======== When a transaction is accepted to commit (no conflicts found), we need to include its own global identifier on its snapshot version, so that all transactions that touch the same data but did not yet seen the current transaction are rollback. The correct trace of this scenario conflict detection it is: M1: T1: ws=53; sv_in=UUID:1-54, sv=UUID:1-55 <- accepted to commit M2: T2: ws=53; sv_in=UUID:1-55 <- conflicts with T1, rollback Since T2 snapshot version it not bigger than the one from T1, the conflict it is correctly detected and T2 is rollback Legend: ws: writ-set sv_in: snapshot_version sent together with the transaction sv: snapshot_version persisted after transaction it is accepted to commit. Changes ======= To implement the solution for this bug, the following changes were required: Server side ----------- 1. Add functionality to copy a Sid_map, this will avoid that all operations on top of snapshot version do require global_sid_lock to be acquired. Files: log_event.cc, log_event.h, rpl_gtid.h, rpl_gtid_sid_map.cc Validation and testing is done on BUG 21616303, on Group Replication plugin. commit a56fd83914d787d0eb5d460bb7d9f625e98fa737 Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> Date: Tue Feb 9 20:41:14 2016 +0530 BUG#20537615 POSTFIX INSTALL FAILING AFTER EL7 REPO PACKAGES INSTALLED Follow up fix: This is needed for Fedora. Missing obsolete prevented postfix to be installed when libs was already installed. commit 66ca6bde338b42186ea069c960943ed25503f801 Merge: 883dbdc 86a1cb8 Author: Joao Gramacho <joao.gramacho@oracle.com> Date: Mon Feb 8 16:21:01 2016 +0000 Merge branch 'mysql-5.6' into mysql-5.7 commit 86a1cb8c92b14d77be1e34cfb2e704472503c213 Author: Joao Gramacho <joao.gramacho@oracle.com> Date: Wed Feb 3 15:54:23 2016 +0000 Bug#22558874 I_RPL.RPL_SHOW_SLAVE_STATUS_HANG TEST FAILS IN TEST ASSERTION Problem: The test case was failing an assertion used to ensure the slave's GTID_EXECUTED set was equal to master's GTID_EXECUTED set. Analysis: The test case expected that the slave server had received two transactions before restarting it, but didn't added verification or sync routines to ensure the I/O thread had actually received the two transactions before restarting the server. Fix: Added a line to wait for the slave's I/O thread to be in sync with the master before restarting it. Added a line to wait for the slave's SQL thread to be in sync with its I/O thread just after restarting. commit 883dbdc3f36a7fe92e94bc013cf0b687256fabaa Author: Andrei Elkin <andrei.elkin@oracle.com> Date: Fri Jan 29 23:03:54 2016 +0200 Bug#20988291 XA+MTS: SQL_THREAD FAILS WITH ER1756 'ERROR WRITING SLAVE WORKER CONFIGURATION' The reported in the bug error occurs at XA PREPARE handling by the parallel slave applier. Its reason is quite similar to one of Bug #21618727 and is in that the prepared XA transaction state does not allow to add up any new statement to the transaction. This time the statement attempts to update 'mysql.slave_worker_info'. Notice that the bug does **not** happen in the single-threaded applier because of System_table_access::open_table() is invoked from Log_event::update_pos() **after** the XA transaction gets prepared. At the end of XA-prepare the slave applier always reset the transaction state to NOTR (non-existing transaction), so the system table updating is permitted. **Fixed** with shifting commit_positions() invocation to after do_commit(), which effectively reproduces the STS execution pattern. **Note** Remaining crash-safety issues, like a crash in between do_commit() and flush_info(), are to be covered by a separate BUG20672719. commit 13b91da89f70c2c684adf48868a301ca8025ee7b Author: Olav Sandstaa <olav.sandstaa@oracle.com> Date: Mon Feb 8 14:07:50 2016 +0100 Bug#21872184 CONDITIONAL JUMP AT JOIN_CACHE::WRITE_RECORD_DATA IN SQL_JOIN_BUFFER.CC Follow-up patch: Add ANALYZE TABLE to test case in order to stabilize rows estimates in explain output. commit 9b8293a91ab89d1b6ebdb1511ba553caf9094907 Merge: 2f7bea5 b543869 Author: Jon Olav Hauglid <jon.hauglid@oracle.com> Date: Mon Feb 8 13:09:49 2016 +0100 Merge branch 'mysql-5.6' into mysql-5.7 commit b54386924b03ecdc5026966a54167a4fe98d9c9b Merge: 6eb2107 9f63394 Author: Jon Olav Hauglid <jon.hauglid@oracle.com> Date: Mon Feb 8 13:09:32 2016 +0100 Merge branch 'mysql-5.5' into mysql-5.6 commit 9f6339412368e9054df6af6ec3911206630e3720 Author: Jon Olav Hauglid <jon.hauglid@oracle.com> Date: Mon Feb 8 11:28:20 2016 +0100 Bug#22680706: 5.5 DOES NOT BUILD WITH GCC5 Fix the following two build warnings so that 5.5 can be compiled with GCC5. storage/innobase/dict/dict0crea.c:1143:21: error: logical not is only applied to the left hand side of comparison [-Werror=logical-not-parentheses] ut_a(!node->index == (err != DB_SUCCESS)); ^ storage/innobase/log/log0recv.c:1770:20: error: logical not is only applied to the left hand side of comparison [-Werror=logical-not-parentheses] ut_ad(!allow_ibuf == mutex_own(&log_sys->mutex)); ^ commit 2f7bea58bf3e27e0db311d73fe28d06c5168fa2e Author: Sayantan Dutta <sayantan.dutta@oracle.com> Date: Mon Feb 8 11:32:20 2016 +0530 Bug #22644581 MTR DOESN'T ALLOW TO RUN SSL TESTS ON SSL ENABLED RUNNING SERVER mtr did not check for 'have_ssl' before but only for 'ssl' , added check for 'have_ssl' as well. commit 665598332cee759284b3f72baa31b13f3f64a31e Merge: da3e5a2 6eb2107 Author: Gipson Pulla <gipson.pulla@oracle.com> Date: Fri Feb 5 20:52:00 2016 +0100 Upmerge of the 5.5.48 build commit 6eb21070d4f47aa410cefd0eed5b7c880dc55560 Merge: 3d70eb7 48b8bf3 Author: Gipson Pulla <gipson.pulla@oracle.com> Date: Fri Feb 5 20:50:08 2016 +0100 Upmerge of the 5.5.48 build commit 48b8bf3c70531c83b1aedd9a8598737a55d35d63 Merge: 91ebb2b b776367 Author: Gipson Pulla <gipson.pulla@oracle.com> Date: Fri Feb 5 20:43:18 2016 +0100 Merge branch 'mysql-5.5.48-release' into mysql-5.5 commit da3e5a26fd5af6c743634c5dff96413691784ac9 Merge: 9845e4c 3d70eb7 Author: Hery Ramilison <hery.ramilison@oracle.com> Date: Fri Feb 5 19:31:14 2016 +0100 Merge branch Upmerge of the 5.6.29 build commit 3d70eb759a8434188a8c83d3153233be675c8798 Merge: f0fbac3 772309f Author: Hery Ramilison <hery.ramilison@oracle.com> Date: Fri Feb 5 19:24:42 2016 +0100 Merge branch 'mysql-5.6.29-release' into mysql-5.6 commit 9845e4cbbb0be3eb1033bae088085444cc8f934b Author: Bjorn Munch <bjorn.munch@oracle.com> Date: Fri Feb 5 11:26:44 2016 +0100 Wrong comment syntax used for keyring-test.cc commit e9a04a76a6a9b5801b2d132577c066863a8d9bb0 Merge: dcaf4dc e568562 Author: Bjorn Munch <bjorn.munch@oracle.com> Date: Fri Feb 5 09:48:28 2016 +0100 Merge branch 'mysql-5.7.11-release' into mysql-5.7 commit dcaf4dc8c2410637105063785eba3472d1881efe Author: Allen Lai <zheng.lai@oracle.com> Date: Fri Feb 5 16:02:59 2016 +0800 Fixed bug#22645816 COMPILER WARNINGS IN ADDED TDE/KEYRING FEATURE It's caused by an unnecessary comparision in TDE code, we just removed it. Reviewed-by: Jimmy Yang<jimmy.yang@oracle.com> RB: 11708 commit 20ff63ac5f6a161115ea39d3272693f5f8b80c89 Author: Kevin Lewis <kevin.lewis@oracle.com> Date: Thu Feb 4 11:56:39 2016 -0600 Bug #22590095 Follow-up A signed/unsigned mismatch broke the Linux build. commit 664f986f5f8662eaa65dd3a5308b1bade508d500 Author: Kevin Lewis <kevin.lewis@oracle.com> Date: Wed Feb 3 10:37:10 2016 -0600 Bug #22590095 ALLOCATED_SIZE AND FILE_SIZE DIFFER IF CREATE GENERAL TABLESPACE OUTSIDE DATADIR The wrong file_size and allocated_size reported could occur if the filepath is incorrect. The function i_s_dict_fill_sys_tablespaces() did not generate the correct remote filepath, so the call to os_file_get_size() returned an error. commit 681987764fe7fe027327cb47c53c3a01d6e835e2 Merge: d465b1a f0fbac3 Author: Aakanksha Verma <aakanksha.verma@oracle.com> Date: Thu Feb 4 18:12:42 2016 +0530 Bug #22111472 IT'S POSSIBLE TO HAVE INNODB_OPEN_FILES>OPEN_FILES_LIMIT AND IT CAN CRASH MYSQL. PROBLEM ======== open_files_limit is a server variable which restricts the number of files which can be opened by the mysqld process.This can be set by the user.(The value is directly passed to setrlimit().) When Innodb opens a file we increment the variable fil_system->n_open.We limit the max files which can be opened by fil_system->max_n_open which can be set by the user using innodb_open_files. If we cross this limit innodb tries to close some files using fil_try_to_close_file_in_LRU() to accomdate opening of new files. Now when the user gives innodb_open_files > open_files_limit and tries to open large number of files (> open_files_limit) ,innodb has no way of knowing that open_files_limit has been reached. When file open operation fails for certain operations in buf_page_get_gen() ,the server is crashed. FIX === Fix is for version mysql-5.7+ : At the time of startup of innodb,fix tries to set value of the variable innobase_open_files(innodb_open_files) to table_cache_size if the condition innodb_open_files > open_files_limit is reached.Apart from that fix also tries to handle a situation where if server tries to open many files then open_files_limit would be saturated and since innodb would think that its limit is not yet reached , it doesn't initiate the closing process of its files in LRU list and the server would ultimately crash. So for that , the fix would initiate the closing process as and when the os error EMFILE(too many resources used) is returned while we try to open an innodb file. Reviewed-by: Annamalai Gurusami <annamalai.gurusami@oracle.com> RB: 11341 commit f0fbac3efae9439a801e3f9787bf40c7e3b9e19a Author: Aakanksha Verma <aakanksha.verma@oracle.com> Date: Thu Feb 4 18:09:48 2016 +0530 Bug #22111472 IT'S POSSIBLE TO HAVE INNODB_OPEN_FILES>OPEN_FILES_LIMIT AND IT CAN CRASH MYSQL. PROBLEM open_files_limit is a server variable which restricts the number of files which can be opened by the mysqld process.This can be set by the user.(The value is directly passed to setrlimit().) When Innodb opens a file we increment the variable fil_system->n_open. We limit the max files which can be opened by fil_system->max_n_open which can be set by the user using innodb_open_files. If we cross this limit innodb tries to close some files using in the LRU list to accomdate opening of new files. Now when the user gives innodb_open_files > open_files_limit and tries to open large number of files (> open_files_limit) ,innodb has no way of knowing that open_files_limit has been reached. When file open operation fails for certain operations in buf_page_get_gen() ,the server is crashed. FIX Fix for version mysql -5.7 in rb#11341 Fix is for version mysql-5.6 : At the time of startup of innodb,fix tries to set value of the variable innobase_open_files(innodb_open_files) to table_cache_size if the condition innodb_open_files > open_files_limit is reached. Reviewed-by: Annamalai Gurusami <annamalai.gurusami@oracle.com> Reviewed-by: Jimmy Yang <Jimmy.Yang@oracle.com> RB: 11338 commit d465b1ac08fdb37e44ff057ffcee1da593267ea1 Author: Harin Vadodaria <harin.vadodaria@oracle.com> Date: Thu Feb 4 17:16:02 2016 +0530 WL#5769 Post push fix : 1. memory leak in asan build 2. compilation issue for keyring-test commit 85805e3ffdb6c80f244eaf7defe1eea0b798f4ce Author: Olav Sandstaa <olav.sandstaa@oracle.com> Date: Tue Jan 26 10:55:28 2016 +0100 Bug#21872184 CONDITIONAL JUMP AT JOIN_CACHE::WRITE_RECORD_DATA IN SQL_JOIN_BUFFER.CC When a query using join buffering and one of the tables inserted into the join buffer was accessed using "dynamic range scan" on an index containing a virtual column, a valgrind error occurred when writing columns to the join buffer. Using the query from the added test case as example: SELECT t1.c1, t2.i1 FROM t1 STRAIGHT_JOIN t3 STRAIGHT_JOIN t2 WHERE ( t3.pk IN ( SELECT t4.i1 FROM t4 WHERE t4.c1 < 'o' ) ) AND t1.i1 <= t3.i2_key; This query joins three tables in the following order: t1 -> t3 -> t2 The access methods used are: t1: table scan t3: dynamic range scan t2: join buffering The table t3 is defined as follows: CREATE TABLE t3 ( pk INTEGER NOT NULL, i1 INTEGER, i2_key INTEGER GENERATED ALWAYS AS (i1 + i1) VIRTUAL NOT NULL, PRIMARY KEY (pk), KEY (i2_key) ); The issue arises when we write the (t1, t3) rows into the join buffer. The join buffer has been configured to include all columns marked in the read_set for t1 and t3. For the table t3, the read set contains (pk, i1, i2_key). Out of these, pk and i2_key are included in the read set due to they are needed for evaluating query conditions. i1 is included in the read set since it is needed for computing the value for the virtual column i2_key. This works fine when t3 is accessed using a table scan but for the rows where we switch to use "dynamic range scan", a valgrind error is reported. The valgrind error occurs when we want to copy the i1 field from the record buffer into the join cache buffer. Since this is a range scan on the i2_key index, the value for i1 has not been read into the record buffer (it is not needed). But it is still copied into the join buffer and the valgrind error happens when the code checks the null value for this field. The underlying cause for this problem, is that in order to support reading the table t3 from the storage engine as a table scan, we add the i1 field to the TABLE::read_set. When setting up join buffering for the query, we analyze which fields to include in the join buffer. This is done in JOIN_CACHE::filter_virtual_gcol_base_cols(). For table scans, all fields included in TABLE::read_set is copied to the join buffer. For access methods that read an index, only the fields included in the index is copied to the join buffer. When "dynamic range scan" is used, we do not know at the time when setting up the join buffer whether a table scan or an index read will be used (or which index that will be used). So in this case, all fields in the TABLE::read_set is set up to be copied to the join buffer. This patch extends JOIN_CACHE::filter_virtual_gcol_base_cols() to handle dynamic range scan. If any of the indexes that are candidates for the dynamic range scan is covering, then the table's read set is adjusted to only contain the columns that can be read by the alternative covering indexes. commit 762514ffec210d93f87e8270c581c333ae733386 Merge: 89298b8 f64b246 Author: Georgi Kodinov <georgi.kodinov@oracle.com> Date: Thu Feb 4 11:41:17 2016 +0200 Null Merge branch 'mysql-5.6' into mysql-5.7 commit 89298b8f48d4cc7a3aca84eb1f2cf58d3ca9df6a Author: Harin Vadodaria <harin.vadodaria@oracle.com> Date: Thu Feb 4 14:45:38 2016 +0530 Bug#22233503: SUPER_READ_ONLY BROKEN AS A SERVER OPTION Problem : At server startup, value of --super-read-only was not processed. This may lead to a situation where a user with SUPER privilege can modify database object. Solution : At server startup, 1. Set value of --read-only to 1 if --super-read-only is set to 1. 2. Process --super-read-only and set required variables. 3. Added testcases. commit f64b2466a171b30a5eafac0549e37782007f49f1 Author: Georgi Kodinov <georgi.kodinov@oracle.com> Date: Wed Feb 3 16:27:07 2016 +0200 Addendum to bug #19509471: normalized plugin names in audit log. commit 2bf9017f67e5abae06eacbe9cac11319846af205 Author: Andrei Elkin <andrei.elkin@oracle.com> Date: Wed Feb 3 10:28:39 2016 +0200 bug21618727 2nd post-push fixes a similar to rb11667 valgrind report (jump with not inited value). The warning was extracautious, yet suggests to initialize a variable explicitly. commit 0a792091ff247656f20cfcf1e59413d3f1e5a071 Merge: 55982f1 aa72249 Author: Karthik Kamath <karthik.kamath@oracle.com> Date: Wed Feb 3 12:14:47 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit aa722493ed9ea21c0875e2e1753a079fe95a5134 Author: Karthik Kamath <karthik.kamath@oracle.com> Date: Wed Feb 3 11:54:58 2016 +0530 BUG#22216779: 5.6 CRASHES ON A 5.7 DATADIR ANALYSIS: ========= Server startup on 5.6 with the 5.7 data directory results in server crash. This is basically an attempt to downgrade, which is unsupported. The system table 'plugin' uses the InnoDB storage engine in 5.7 whereas it uses MyISAM in 5.6. So during 5.6 server startup, the 'plugin' table cannot be opened which results in the 'hton' pointer set to NULL. Access to this pointer results in the server crash. FIX: ==== A check has been introduced to verify if the 'hton' pointer contains a non NULL value. If not, safe server shutdown is ensured. commit 55982f1a273cf67a12855cfcea06c36461b93c6e Merge: d9158ac af5860f Author: Pavan Naik <pavan.naik@oracle.com> Date: Tue Feb 2 14:28:16 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 Conflicts: mysql-test/r/mysqltest.result mysql-test/t/mysqltest.test commit af5860faad80f6b4794d2ba81a067b0c6e931441 Author: Pavan Naik <pavan.naik@oracle.com> Date: Tue Feb 2 14:25:43 2016 +0530 BUG#13687542 : MTR BEHAVES WRONG WHEN EXECUTING 'ERROR $VAR' IN A LOOP Description : ============= MTR's 'error' command can be used when a statement is expected to fail. It is possible to give the error code either hard-coded or as an mtr variable, like: --error $variable. However, if an 'error $variable' statement is inside a loop, it evaluates to the same value every iteration. Issue : ======= 'expected_errors' array was not getting updated with the 'error' command value after the first iteration. Fix : ===== Check for 'error' command and update the 'expected_errors' array for each iteration of the loop. Reviewed-by: Sayantan Dutta <sayantan.dutta@oracle.com> RB: 11463 commit d9158ac140c68174c5ba1fd63bd92bd1dc817d2a Author: Sreedhar Sreedhargadda <sreedhar.sreedhargadda@oracle.com> Date: Mon Feb 1 11:38:43 2016 +0100 Fix for post WL#5769(removal of keyring directory for Windows) commit 1cae52635625293a2cec3e1f65c8842219798879 Author: Andrei Elkin <andrei.elkin@oracle.com> Date: Mon Feb 1 10:22:30 2016 +0200 bug21618727 post-push fixes a valgrind report (jump with not inited value). The warning was extra-cautious. Two variables in question are defacto always initialized, just one of them implicitly inside an always invoked function. Fixed with make formal initialization to please valgrind. commit 84e93ab12070be3e23c31ba64d57b3aaed22b52f Author: Sergey Glukhov <sergey.glukhov@oracle.com> Date: Mon Feb 1 08:34:10 2016 +0300 Bug#19143243 CRASH IN ITEM_FUNC_IN::VAL_INT WITH NULLIFIED ARGUMENT TO NAME_CONST NAME_CONST item can return NULL_ITEM type in case of incorrect arguments. NULL_ITEM has special processing in Item_func_in function. In Item_func_in::fix_length_and_dec an array of possible comparators is created. Since NAME_CONST function has NULL_ITEM type, corresponding array element is empty. Then NAME_CONST is wrapped to ITEM_CACHE. ITEM_CACHE can not return proper type(NULL_ITEM) in Item_func_in::val_int(), so the NULL_ITEM is attempted compared with an empty comparator. The fix is to disable the caching of Item_name_const item. commit 69ab310a216c6efd59eaf2647d0641319933f848 Author: Evgeny Potemkin <evgeny.potemkin@oracle.com> Date: Fri Jan 29 21:26:19 2016 +0400 Bug#22131343: WITH ROLLUP ASSERTION FAILED: N < M_SIZE JOIN::optimize_rollup() initializes ref pointer arrays for ROLLUP based on size of all_fields list. Later, substitute_gc() adds new elements to it. This causes assertion, as ROLLUP's arrays don't fit all elements of all_fields. Now JOIN::optimize_rollup() allocates additional space for send_group_parts elements. This is maximum size the all_fields could be grown by substitute_gc(). commit 31cb3c53d2f1b08de5dd35e798b58e06d03aadea Merge: 27a60f1 c81c31a Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com> Date: Fri Jan 29 08:32:29 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit c81c31a4a48a842c61224d9dd10f84c983d713ff Merge: 1261f41 91ebb2b Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com> Date: Fri Jan 29 08:30:38 2016 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 91ebb2bc66f46a7ef2efee7485fd1dcfed4b6914 Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com> Date: Fri Jan 29 08:29:06 2016 +0530 Bug #18823979: PS: UCS2 + CASE WHEN THEN ELSE CRASH IN ITEM_PARAM::SAFE_CHARSET_CONVERTER ISSUE: ------ Charset conversion on a null parameter is not handled correctly. SOLUTION: --------- Item_param's charset converter does not handle the case where it might have to deal with a null value. This is fine for other charset converters since the value is not supplied to them at runtime. The fix is to check if the parameter is now set to null and return an Item_null object. Also, there is no need to initialize Item_param's cnvitem in the constructor to a string. This can be done in ITEM_PARAM::SAFE_CHARSET_CONVERTER itself. Members of Item_param, cnvbuf and cnvstr, have been removed and cnvitem has been made a local variable in ITEM_PARAM::SAFE_CHARSET_CONVERTER. commit 27a60f1a95ab70270d0681ac8f28be818e0e3273 Author: Christopher Powers <chris.powers@oracle.com> Date: Thu Jan 28 19:47:36 2016 +0100 Bug#14111584 PB2: PERFSCHEMA.AGGREGATE FAILS ON PB2 SPORADICALLY Addresses PB2 instability with perfschema.aggregate, where a prepared statement event appears sporadically in test output. The issue will likely clear up with the no-protocol option. commit 8de09762684577f4a891bba3344c79666d185006 Author: Andrei Elkin <andrei.elkin@oracle.com> Date: Sun Sep 6 15:12:06 2015 +0300 Bug #21618727 XA TRX DOES NOT WORK WITH SPECIFIED GTID WHEN BINLOG IS DISABLED **Problem description** XA is not handled correctly in combination of GTID_MODE=ON and --skip-log-bin on the server. There are two errors whose common reason is a missed out gtid_state's save() and not performed gtid ownership cleanup. The server can be in either the master or the slave role that affects which of execution paths is taken in XA commit and rollback. The two missed invocations are present in either branch. **High-level description of fixes** The missed invocations are added up in the cases when the XA transaction gets prepared, committed or rolled back. To remind about the prepared case, the prepared XA is a sort of a transaction on its own from perspectives of the binary logging and the gtid_executed table (as instances of the gtid persistency layer). Therefore while the XA gets merely prepared a statement to gtid_executed table needs to be fully committed, that is as a separate transaction. The patch copes with this task that was actually diagnosed in bug21452916 report. In order to separate the gtid record off the prepared XA the patch designs Attachable_trx_rw a read-write version of THD::Attachable_trx. **Low-level details** of the changes include: modified: sql/handler.cc A common through-out sources computation to call gtid_state::save() is factored out as a commit_owned_gtids(); The new function is introduced to ha_prepare() to cover XA PREPARE time updating of mysql.gtid_executed. modified: sql/rpl_gtid_persist.cc Attachable_trx_rw is registered and deactivated (committed). XA state is saved, reset for the following execution of a statement on 'gtid_executed' table, and restored. modified: sql/sql_base.cc An assert guarding access to system tables in open_and_lock_tables() is relaxed to allow opening specified tables for Attachable_trx_rw modified: sql/sql_class.cc modified: sql/sql_class.h Definition of Attachable_trx_rw and associated interfaces. Attachable_trx_rw is defined to base on THD::Attachable_trx. modified: sql/xa.cc commit_owned_gtids() gtid_state->update_on_*() are deployed in few functions to cover all cases of XA COMMIT and ROLLBACK, incl errors, one phase. A common rule for choosing which of update_on_{commit,rollback}() to pick goes as the following: Whenever commit_owned_gtids() succeeds that indicates on mysql.gtid_executed table successful insertion. And since @@global.gtid_executed must be consistent with the table, update_on_commit() is chosen in this case. Conversely, update_on_rollback() runs only to match a failing invocation of commit_owned_gtids(). When at committing or preparing there's an RM error (e.g Innodb unilateral failure) commit_owned_gtids()is not invoked at all. Presence of RM error does not block commit_owned_gtids() invocation in the XA-rollback case, because the rollback intent does not change. **Testing** The patch extends the existing testing base for XA and manual GTID combination, specifically: suite/binlog/t/binlog_gtid_next_xa.test The above test is augmented with coverage of all affected commit-rollback execution branches in xa.cc and ha_prepare(), and also made to run in --skip-log-bin environment. new: suite/rpl/t/rpl_xa_survive_disconnect_lsu_off.test The slave logics is not directly affected, but still the changes fix an assert in Diagnostics_area::set_ok_status, when rpl_xa_survive_disconnect.test is run on slave having --log-slave-updates=off to face an expected (cos of no resetting of XA state) error: ER_RMFAIL: The command cannot be executed when global transaction is in the IDLE state. The new test is the old one's version requiring the above slave server option. **NOTE**: This work does not cover to crash-safety leaving this matter out for earlier reported BUG#20672719. commit 344b6e86fe86bc02a1859cec5ddf0bdd87cf9374 Merge: 4b26634 1261f41 Author: Ajo Robert <ajo.robert@oracle.com> Date: Thu Jan 28 18:41:19 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 1261f41c7722bbc6e64982a7218c47a97820a92b Merge: c9fb715 cd2afc3 Author: Ajo Robert <ajo.robert@oracle.com> Date: Thu Jan 28 17:52:16 2016 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit cd2afc34ab1051a01430885795177b759b7062a3 Author: Ajo Robert <ajo.robert@oracle.com> Date: Thu Jan 28 17:40:17 2016 +0530 Bug #16912362 LOAD DATA INFILE CLAIMS TO BE HOLDING 'SYSTEM LOCK' IN PROCESSLIST Analysis ========= Show processlist shows 'System Lock' in 'State' field while LOAD DATA INFILE is running. thd->proc_info update is missing in LOAD DATA INFILE path. Thus any request will get last unpdated status from lock_table() during open_table(). Fix: ======= Update state information from LOAD DATA INFILE path. commit 4b26634c9fa9992a13af0897fbee3dadf88f7ca7 Author: Sayantan Dutta <sayantan.dutta@oracle.com> Date: Thu Jan 28 15:06:46 2016 +0530 Bug #18964545 ADD MTR SUPPORT FOR DEBUGGING WITH LLDB Added client-lldb and lldb option to mtr Usage : ./mtr <test_name> --client-lldb ./mtr <test_name> --lldb Invokes lldb debugger for debugging commit 4255c9602fcafd8bd7f1eb654287ce17e436347a Author: Tor Didriksen <tor.didriksen@oracle.com> Date: Thu Jan 28 08:41:53 2016 +0100 Bug#14744160 LIMIT PARSER MEMORY USAGE Skip test in embedded mode, since the -master.opt file is ignored. commit bdd9c0eeb875c1de673197e3b9ca4ab29ea05897 Author: Marc Alff <marc.alff@oracle.com> Date: Thu Jan 28 09:48:29 2016 +0100 Test cleanup commit 176baee44c3ed4bcf3b1f931f020d1b3ebd550a3 Author: Sayantan Dutta <sayantan.dutta@oracle.com> Date: Thu Jan 28 11:38:02 2016 +0530 Bug #22517381 : IT IS NOT POSSIBLE TO LOAD A PLUGIN ON A ENTIRE MTR SUITE A new option suite-opt is added in mtr that overrides the default suite.opt usage : ./mtr --suite-opt=<opt file name> If --suite-opt is used, the file name passed will be the suite.opt for the suite for that particular run replacing the default suite.opt for the suite commit 59386afd38e904e741881261ab91b8cf99d9ab7b Author: Christopher Powers <chris.powers@oracle.com> Date: Wed Nov 4 03:10:15 2015 +0100 Bug#21789221 SHOW STATUS FAILS WITH LOCK TABLES AND SHOW_COMPATIBILITY_56=OFF Special case handling of P_S tables inside of LOCK TABLE mode. Performance Schema tables must be accessible independently of the LOCK TABLE mode. For example, with SHOW_COMPATIBILITY_56=OFF, SHOW STATUS and SHOW VARIABLES require implicit access to the corresponding tables in the Performance Schema, regardless of the LOCK TABLE mode. Explicit LOCK TABLE is not supported in the Performance Schema, except for the setup and threads tables. commit 4edd0a26a030bccdfb0e3fd898871a84e0ad064b Author: Tor Didriksen <tor.didriksen@oracle.com> Date: Mon Jan 25 11:59:07 2016 +0100 Bug#22573117 VALGRIND: CONDITIONAL JUMP OR MOVE DEPENDS ON UNINITIALISED VALUE(S) Problem was missing initializers in Query_plan CTOR. commit e95ecd60856b01e4b45bf3b70c9d4032e7ee6dfc Author: Tor Didriksen <tor.didriksen@oracle.com> Date: Mon Jan 11 16:17:51 2016 +0100 Bug#14744160 LIMIT PARSER MEMORY USAGE Problem: We currently have no way of limiting memory consumption when parsing SQL queries. With a large value for max_allowed_packet it is easy to construct queries which require several gigabytes of memory during parsing. Solution: We build on the MEM_ROOT extensions developed for bug Bug#17769777 : EXCESSIVE MEMORY CONSUMPTION WITH MANY AND / BETWEEN ITEMS Introduce a maximum capacity for the MEM_ROOT used by the parser, and raise an error if this capacity is exceeded during parsing. If the lexer sees a ER_CAPACITY_EXCEEDED error, it returns ABORT_SYM and parsing of the current query is terminated. The memory capacity can be set with the new system variable 'parser_max_mem_size'. By default there is no limit, i.e. the variable is set to 4294967295 bytes on 32bit systems, 18446744073709551615ULL on 64bit systems. The database administrator may set @@global.parser_max_mem_size to a lower value, in order to protect against out-of-memory situations caused by parsing long/complex SQL queries. commit 090afde0c1b9356c116ccf07119da5b9d99b3511 Author: Robert Golebiowski <robert.golebiowski@oracle.com> Date: Fri Jan 22 16:39:52 2016 +0100 Bug #22520464 TDE: TEST CASES GET HANG ON FREEBSD TDE test cases keep hanging on FreeBSD. commit 0fe41fe79983a8bae89c630adc2ed7dd4fe43607 Merge: 79b4cea c9fb715 Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> Date: Wed Jan 27 18:46:40 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit c9fb7150c1c89ff8bfe29b731431caac22db01dd Merge: c0480c5 ba8be50 Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> Date: Wed Jan 27 18:45:16 2016 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit ba8be508b6aa7fe4df4444fd9502ebb1e3fd814b Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> Date: Wed Jan 27 18:42:52 2016 +0530 BUG#22600974 - SYSV INITSCRIPT FOR RHEL DON'T ENABLE MYSQLD SERVICE BY DEFAULT Enable mysqld service by default in sysv initscrips commit 79b4cea5217810dea110329d4dc7107304ef43dc Author: Annamalai Gurusami <annamalai.gurusami@oracle.com> Date: Wed Jan 27 09:36:57 2016 +0530 Bug #22179317 AGAIN, SIGNAL 11 IN INNODB.INNODB_BUFFER_POOL_RESIZE_DEBUG Problem: In the function buf_block_align(), there is a check to wait for the completion of buffer pool resize. But after this check, there is nothing to stop the buffer pool resize to happen. This resulted in SIGSEGV fault. Solution: The variable buf_pool_resizing, must be protected in some way so that buf_block_align() can prevent a buffer pool resize from happening during its execution. The buf_chunk_map_latch read-write lock can be used for this purpose. rb#11449 approved by Marko. commit 056d6d4f0ee2d125847e32fd9b2936bbd8ce15c1 Author: Parveez Baig <parveez.baig@oracle.com> Date: Wed Jan 27 11:43:59 2016 +0530 Bug#22475280:BINLOG.BINLOG_XA_PREPARED_DISCONNECT FAILS REGULARLY ON PB2(TEST ASSERTION FAIL) Post push fix. updated the result file of xa_prepared_binlog_off test commit a7ff877aecea9e562df1d50b9babb7fca63804b4 Author: Christopher Powers <chris.powers@oracle.com> Date: Mon Jan 18 17:36:55 2016 -0600 Bug#21105475 DROP TABLE DOESN'T DROP TABLE ENTRIES STARTING WITH # FROM P_S TABLE The Performance Schema identifies temporary tables by assuming that all tables named with the "#sql" prefix are temporaryand can be ignored. However, non-temporary tables having the "#sql" prefix are incorrectly identified as temporary. To avoid this ambiguity, the Performance Schema will identify temporary tables using attributes other than the table name, depending on the state: 1) table_share->tmp_table if the share is available and complete, e.g. get_table_share() 2) CREATE: (ha_create_table) Create info flags or explicit boolean for truncated MyISAM temp tables 3) DROP: The filename, guaranteed to have a #sql prefix. Table share not available. Regardless of the table name, the filenames for temporary and intermediate tables always have the "#sql" prefix, e.g. "#sql-1234". For non-temporary tables, a "#" prefix is encoded to @0023 in the filename, e.g. table "#sql_foo" has the filename "@0023sql_foo." commit 3c5564d5abe49289cdd12d5c65d763b09c22eca2 Author: Bharathy Satish <bharathy.x.satish@oracle.com> Date: Wed Jan 27 09:30:22 2016 +0530 Bug #22108567 ASSERTION `TABLE != 0' FAILED Problem: During PREPARE derived table (since it has no name) is given a temporary table. After prepare the data structure which holds this temporary table name is set to NULL. During EXECUTE there is a call to fill_effective_table_privileges() in which we check for this table name. If NULL then assert. Fix: Fix is basically skipping the call to fill_effective_table_privileges() which is not needed for derived tables. commit a3d1dcaa57e338a902b1c0f4143a9d88b12f35b9 Merge: d31d039 c0480c5 Author: Christopher Powers <chris.powers@oracle.com> Date: Wed Jan 27 04:59:28 2016 +0100 Merge branch 'mysql-5.6' into mysql-5.7 Conflicts: sql/handler.cc sql/sql_base.cc commit c0480c5fc072e9962e41fb8e5e2189494b8d0421 Author: Christopher Powers <chris.powers@oracle.com> Date: Tue Jan 26 17:37:38 2016 -0600 Bug#21105475 DROP TABLE DOESN'T DROP TABLE ENTRIES STARTING WITH # FROM P_S TABLE The Performance Schema identifies temporary tables by assuming that all tables named with the "#sql" prefix are temporaryand can be ignored. However, non-temporary tables having the "#sql" prefix are incorrectly identified as temporary. To avoid this ambiguity, the Performance Schema will identify temporary tables using attributes other than the table name, depending on the state: 1) table_share->tmp_table if the share is available and complete, e.g. get_table_share() 2) CREATE: (ha_create_table) Create info flags or explicit boolean for truncated MyISAM temp tables 3) DROP: The filename, guaranteed to have a #sql prefix. Table share not available. Regardless of the table name, the filenames for temporary and intermediate tables always have the "#sql" prefix, e.g. "#sql-1234". For non-temporary tables, a "#" prefix is encoded to @0023 in the filename, e.g. table "#sql_foo" has the filename "@0023sql_foo." commit d31d0397aa1492726194971ec0d577982d26b5ca Merge: 958c4cb a850983 Author: Shaohua Wang <shaohua.wang@oracle.com> Date: Wed Jan 27 09:58:43 2016 +0800 Null merge branch 'mysql-5.6' into mysql-5.7 commit a85098397747afd05f139243f923a90a00b23cae Merge: a662aef 2a38baf Author: Shaohua Wang <shaohua.wang@oracle.com> Date: Wed Jan 27 09:53:09 2016 +0800 Merge branch 'mysql-5.5' into mysql-5.6 commit 2a38bafd514731172b79398df8ff035929ec810a Author: Shaohua Wang <shaohua.wang@oracle.com> Date: Wed Jan 27 09:40:02 2016 +0800 Followup:BUG#22530768 Innodb freeze running REPLACE statements Go back to __sync_* operations in TAS on x86. Patch is reviewed by Sunny over IM. commit 958c4cbeffe7966bfc8bfb87c67d35b6310d21d5 Author: Lars Tangvald <lars.tangvald@oracle.com> Date: Tue Jan 26 11:11:52 2016 +0100 Fix copyright header for postinst scripts commit d4f84d489761a90bd925811616dc9c34c4517c12 Merge: 2c8d36a a662aef Author: Jon Olav Hauglid <jon.hauglid@oracle.com> Date: Tue Jan 26 10:02:18 2016 +0100 Merge branch 'mysql-5.6' into mysql-5.7 Conflicts: mysys/my_wincond.c commit a662aef6921afe62994a15243649e468a7b4000d Merge: bde2fc8 423dcdb Author: Jon Olav Hauglid <jon.hauglid@oracle.com> Date: Tue Jan 26 09:20:35 2016 +0100 Merge branch 'mysql-5.5' into mysql-5.6 commit 423dcdb0c4db20f0fea37fb81dde7d5277492ac4 Author: Jon Olav Hauglid <jon.hauglid@oracle.com> Date: Tue Jan 26 09:18:10 2016 +0100 Bug#21770366 backport bug#21657078 to 5.5 and 5.6 Post-push fix: The problem was that condition variable timeouts could in some cases (slow machines and/or short timeouts) be infinite. When the number of milliseconds to wait is computed, the end time is computed before the now() time. This can result in the now() time being later than the end time, leading to negative timeout. Which after conversion to unsigned becomes ~infinite. This patch fixes the problem by explicitly checking if we get negative timeout and then using 0 if this is the case. commit 2c8d36a19a2b1a2c6c2a614078222248066153f9 Author: Lars Tangvald <lars.tangvald@oracle.com> Date: Mon Jan 25 11:49:44 2016 +0100 Bug#22594846 ROOT USER CREATED WITH AUTH_SOCK PLUGIN EVEN ROOT PWD IS NOT BLANK Configuration script was storing password in commercial-labelled variable, but trying to fetch it from community-labelled. Caused it to think password was empty regardless of user input, and install user with auth_sock commit 85933f9448116dc78c5d32fc82902b2dfaf0afc5 Author: Tatiana Azundris Nuernberg <tatjana.nuernberg@oracle.com> Date: Mon Jan 25 08:11:32 2016 +0000 disabling func_regexp-bug20642505 as the test is resource intensive and fails on some equipment commit 9cd92de06204d3d0ff1b674b3717a0e8d2acb79d Author: Parveez Baig <parveez.baig@oracle.com> Date: Mon Jan 25 11:41:19 2016 +0530 Bug#22475280:BINLOG.BINLOG_XA_PREPARED_DISCONNECT FAILS REGULARLY ON PB2(TEST ASSERTION FAIL) The test is getting failed after the recent changes. The change involved addition of mtr suppression which adds additional group of events in the binlog. The assertion checks the number of events in binlog. The assertion didnt took into account the new mtr suppression. Hence the test assertion failed. Fix: There is a variable $not_xa_trans_committed in test which is used in assertion. The variable value is increased for every mtr suppression. Incremented the value of that variable before the new mtr suppression. commit 190317e5b048267ba3042c12df7f22d9f7d57544 Merge: 5fe0348 bde2fc8 Author: Marek Szymczak <marek.szymczak@oracle.com> Date: Fri Jan 22 14:06:57 2016 +0100 Merge branch 'mysql-5.6' into mysql-5.7 commit bde2fc8c6ff5fb309e7d1f6a1aedc8a52970b769 Author: Marek Szymczak <marek.szymczak@oracle.com> Date: Fri Jan 22 11:09:26 2016 +0100 Bug #19509471 ACCOUNT FILTERING SHOULD USE AUTHENTICATED ACCOUNT FOR MATCHING == Problem == Audit log user inclusion/exclusion bases on USER() user and host information, which is not very reliable way of defining user/host pairs. == Fix == Audit log verifies inclusion/exclusion based on CURRENT_USER() user and host, which is more reliable now. Usage of wildcards in the host part is allowed and it should follow account creation rules (CREATE USER). Audit log file output policy has not been changed. Reviewed-by: Georgi Kodinov <georgi.kodinov@oracle.com> Reviewed-by: Kristofer Pettersson <kristofer.pettersson@oracle.com> RB: 11424 commit 5fe034881ec4d0681e1df21a591ef29a376866b1 Merge: 5bef52e 7ab403a Author: Marek Szymczak <marek.szymczak@oracle.com> Date: Fri Jan 22 12:51:19 2016 +0100 Bug #19509471 ACCOUNT FILTERING SHOULD USE AUTHENTICATED ACCOUNT FOR MATCHING == Problem == Audit log user inclusion/exclusion bases on USER() user and host information, which is not very reliable way of defining user/host pairs. == Fix == Audit log verifies inclusion/exclusion based on CURRENT_USER() user and host, which is more reliable now. Usage of wildcards in the host part is allowed and it should follow account creation rules (CREATE USER). Sec context service has been used for retrieving user/host data. Audit log file output policy has not been changed. Reviewed-by: Georgi Kodinov <georgi.kodinov@oracle.com> Reviewed-by: Kristofer Pettersson <kristofer.pettersson@oracle.com> RB: 11424 commit 5bef52e4c82ec8658117b8f8200a2bd11d12ddd2 Merge: fc3e3d2 c256a51 Author: Deepthi Eranti_Sreenivas <deepthi.e.s@oracle.com> Date: Fri Jan 22 17:10:38 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 Null merge commit fc3e3d23729763a024e6473e72444357b8f899d4 Author: Harin Vadodaria <harin.vadodaria@oracle.com> Date: Fri Jan 22 16:54:27 2016 +0530 Bug#22573767: MYSQLD --VERBOSE --HELP TRIES TO INITIALIZE KEYRING FILE Problem: If a plugin is provided through --early-plugin-load, server tries to initialize it even if --help is specified. Solution: Skip plugin initialization if --help is used. Reviewed-By: Georgi Kodinov <georgi.kodinov@oracle.com> commit c256a51a2c564179037c57fd1dcaa664f2dccac4 Merge: 9c4588d 716b5ab Author: Deepthi Eranti_Sreenivas <deepthi.e.s@oracle.com> Date: Fri Jan 22 16:53:58 2016 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 716b5abfe112d0505eb1c9f116f75dfc40724fd7 Author: Deepthi Eranti_Sreenivas <deepthi.e.s@oracle.com> Date: Fri Jan 22 16:51:21 2016 +0530 Bug#22086528: TEST CODE DISABLED THOUGH THE HISTORIC REASONS - BUGS - ARE FIXED Post push fix for 5.5 and 5.6.Disabled the test code due to Bug#22587377 commit 1954bd4470aa45f7933a175a263d810c53fea550 Author: Thirunarayanan Balathandayuthapani <thirunarayanan.balathandayuth@oracle.com> Date: Fri Jan 22 16:18:45 2016 +0530 Revert "Bug#21113036 - MYSQL/INNODB MIX BUFFERED AND DIRECT IO" This reverts commit b17166634ea0ecc3fb0a0e0d9c9cf9fc44565c70 because n-test framework failing because of this patch. commit 7ab403a45d0db646bde2fb1e632e33003128702e Author: Marek Szymczak <marek.szymczak@oracle.com> Date: Fri Jan 22 11:09:26 2016 +0100 Bug #19509471 ACCOUNT FILTERING SHOULD USE AUTHENTICATED ACCOUNT FOR MATCHING == Problem == Audit log user inclusion/exclusion bases on USER() user and host information, which is not very reliable way of defining user/host pairs. == Fix == Audit log verifies inclusion/exclusion based on CURRENT_USER() user and host, which is more reliable now. Usage of wildcards in the host part is allowed and it should follow account creation rules (CREATE USER). Audit log file output policy has not been changed. Reviewed-by: Georgi Kodinov <georgi.kodinov@oracle.com> Reviewed-by: Kristofer Pettersson <kristofer.pettersson@oracle.com> RB: 11424 commit d07c47f014e0c01f3d564509e68aaa7e7db026bc Merge: b171666 9c4588d Author: Aakanksha Verma <aakanksha.verma@oracle.com> Date: Thu Jan 21 17:22:35 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 9c4588ded2317734f5b11bb3ebd6652425ce5d27 Author: Aakanksha Verma <aakanksha.verma@oracle.com> Date: Thu Jan 21 17:09:17 2016 +0530 INNODB: "DATA DIRECTORY" OPTION OF CREATE TABLE FAILS WITH PWRITE() OS ERROR 22 Fix for version mysql-5.6 PROBLEM ======== For version mysql-5.6.27 onwards InnoDB fails to create a table with explicit 'data directory' option when Innodb_flush_method is set to O_DIRECT.While creating link file we get a a pwrite error 22 due to the alignment restrictions imposed by O_DIRECT flag which is being set for the link file created. FIX === Fixed the above issue by making use of file IO functions while creating the link file that wouldn't let the O_DIRECT flag restrictions arise. Reviewed-by: Kevin Lewis <kevin.lewis@oracle.com> Reviewed-by: Shaohua Wang <shaohua.wang@oracle.com> RB: 11387 commit b17166634ea0ecc3fb0a0e0d9c9cf9fc44565c70 Author: Aakanksha Verma <aakanksha.verma@oracle.com> Date: Thu Jan 21 15:29:35 2016 +0530 Bug#21113036 - MYSQL/INNODB MIX BUFFERED AND DIRECT IO PROBLEM ======= Bug#21113036 was not fixed for 5.7+ . To achieve synchronous setting of O_DIRECT flag in case of mix buffered IO scenario this bug has arised. FIX === Fix is coming from the patch in rb#8981 which tries to set O_DIRECT flag for both open() system calls. Reviewed-by: Bin Su <bin.x.su@oracle.com> RB: 11559 commit 77e0d796546caad4783fe0d553665b7b3acfdf81 Author: Ramil Kalimullin <ramil.kalimullin@oracle.com> Date: Thu Jan 21 09:11:46 2016 +0400 Bug #22565023: RPL.RPL_ROW_BASIC_ALLOW_BATCHING FAILS DURING CHANGE MASTER POSITION COMMAND Test adjusted to wait for slave start completed after disallowing batching to reduce the risk of a failure during include/rpl_end.inc. commit 41963629f957bd6cce00f36f7243793395e2fc3c Merge: 530c5bb df8923c Author: Deepthi Eranti_Sreenivas <deepthi.e.s@oracle.com> Date: Wed Jan 20 18:38:18 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit df8923c8f3ecc94c855183cee15503e0d6d4e864 Merge: 612a42a 71c98f3 Author: Deepthi Eranti_Sreenivas <deepthi.e.s@oracle.com> Date: Wed Jan 20 18:28:47 2016 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 71c98f38ba9e2be3c1e8c94c989f801c8edc3d16 Author: Deepthi Eranti_Sreenivas <deepthi.e.s@oracle.com> Date: Wed Jan 20 18:23:16 2016 +0530 Bug#22086528 : TEST CODE DISABLED THOUGH THE HISTORIC REASONS - BUGS - ARE FIXED Problem: mysql-test/suite/rpl/t/rpl_killed_ddl.test This test contains code which was disabled because of certain bugs. BUG#44041 declared to be a duplicate of Bug#45516 which was fixed 2010 BUG#43353 fixed 2012 BUG#44171 fixed 2010 Fix: Enabled the test code related to the above mentioned bugs. commit 530c5bb1dd2139751b0da75f54c705ca394572b8 Author: Erlend Dahl <erlend.dahl@oracle.com> Date: Wed Jan 20 11:17:29 2016 +0100 Silence Valgrind warnings from rpl.rpl_semi_sync_wait_slave_count Approved by Ramil Kalimullin <ramil.kalimullin@oracle.com> commit 1f426541ca5002472c496ba6e88cab708ecf0cf7 Merge: ce835d6 612a42a Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com> Date: Wed Jan 20 14:41:09 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit ce835d673ad205c9c0ea72cfe295c728dee181e5 Author: Pavan Naik <pavan.naik@oracle.com> Date: Wed Jan 20 17:29:44 2016 +0530 BUG#22150016 : "CHANGE_USER" COMMAND SHOULD BE AWARE OF PRECEDING "ERROR" COMMAND Issue : ======= "change_user" MTR command does not handle preceding "error". Some testcases could use it, and there is at least one testcase that tries to depend on it, failing silently (audit_plugin_2.test). Fix : ===== Modified do_change_user() to call handle_error() instead of die() when change_user command fails. Reviewed-by: Marek Szymczak <marek.szymczak@oracle.com> Reviewed-by: Sayantan Dutta <sayantan.dutta@oracle.com> RB: 11450 commit 612a42a9c51f22bd8902abbf68b31eb13ad5d331 Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com> Date: Wed Jan 20 14:40:49 2016 +0530 BUG#20836250 MYSQLBINLOG --VERBOSE FOR BINARY DATATYPE NOT SKIPPING ' (QUOTE) & \ (BACKSLASH) BUG#22305605 STOP SLAVE IO THREAD PRINTS WRONG LOST CONNECTION MESSAGE IN ERROR LOG FILE Fixing post push pb2 failures commit 0e0e87a4a47a14bdf94c35cb0835ff3d6801dae8 Author: Thirunarayanan Balathandayuthapani <thirunarayanan.balathandayuth@oracle.com> Date: Wed Jan 20 11:52:43 2016 +0530 Bug #22384503 BLOCK MEMCACHED FROM MODIFYING TABLES THAT CONTAIN INDEXED VIRTUAL COLUMNS - Post push fix to avoid result content mismatch, because memcached.memc216_5_utf8 and memcached.memcached_virtual_block uses the same port to communicate with server. Insert in memcached_virtual_block tries to insert in memcached.memc216_5_utf8 test case when both test case are running parallely. commit 35f7e54acd54c740b184637105e2cb641929f61f Author: Daogang Qu <bill.qu@oracle.com> Date: Wed Jan 20 09:25:36 2016 +0800 Bug#22130929 GTID_NEXT AND BEGIN BEHAVIOR IS DIFFERENT B/W BINLOG AND BINLOG-LESS SERVER Problem ======= When binlog is enabled, we do not save the gtid specified by GTID_NEXT into GLOBAL@gtid_executed when committing an empty transaction caused by a 'BEGIN' command. But we save the gtid into GLOBAL@gtid_executed in the case when binlog is disabled. Fix === When @@SESSION.GTID_NEXT == 'UUID:NUMBER', the command 'BEGIN' causes an error 'ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET' inside an empty/a non-empty transaction regardless of being binlogless or not, since it causes an implicit commit like other DDLs. And we do not save the gtid specified by GTID_NEXT into GLOBAL@gtid_executed in the case. commit beb3b849fd82d5188dca21aa11853ec6ed4591dd Author: Daogang Qu <bill.qu@oracle.com> Date: Wed Jan 20 09:02:12 2016 +0800 Bug#22097534 SUPER_READ_ONLY ABORTS STOP SLAVE IF RELAY_LOG_INFO_REPOSITORY=TABLE, DBG CRASH If relay_log_info_repository=TABLE, STOP SLAVE results in 'STOP SLAVE' failed: 1290: The MySQL server is running with the --super-read-only option, so it can not execute this statement. The problem is caused due to updating slave info tables when executing command 'STOP SLAVE'. The problem is also caused due to updating slave info tables (and updating slave_worker_info table if MTS is enabled) when executing command "CHANGE MASTER TO". To fix the problem, permit replication operations regardless of the settings of read_only and super_read_only. commit 81ce76018c5246bb23a20f9c80ab0159d0ed2300 Author: Catalin Besleaga <catalin.besleaga@oracle.com> Date: Mon Jan 18 16:53:13 2016 +0100 BUG#21959409: SRV_SESSION CODE DOES NOT ALLOW THE USE OF THREADS WITH NO VIO Since it is possible to have a physical thread, with no session attached to it but with cached vio type, then the call to PSI_THREAD_CALL(set_connection_type)(vio_type) will be avoided when vio_type is NO_VIO_TYPE. This can only happen in a spawned thread initialized by Srv_session service. (see the comment inside Srv_session::detach). commit 5e8e4c3ee0fc61ab7f1d1d889c3a72e9cf82c0fa Author: Catalin Besleaga <catalin.besleaga@oracle.com> Date: Tue Jan 19 15:39:27 2016 +0100 Bug#19642015 UNHEX() RUNTIME ERROR: LEFT SHIFT OF NEGATIVE VALUE -1 Problem: Left shift may be executed using negative value -1 Solution: Checked the argument value and executed the left shift only for valid arguments commit b44ed8abedfd3e0c9e44d53f4bd20c6a30c0f0cc Author: Catalin Besleaga <catalin.besleaga@oracle.com> Date: Mon Jan 18 12:23:18 2016 +0100 Bug#22358933: UNHEX WITH INVALID ARGUMENT LEAD TO VALGRIND ERROR Problem: "res->ptr()" is not 0-terminated, but push_warning uses %s which needs 0-terminated; Solution: use err.ptr() instead commit 9c1ceb6a3d848f10b7a6b0c3f98a7fb0e99154d1 Merge: e2f9422 c1cc22e Author: Tor Didriksen <tor.didriksen@oracle.com> Date: Tue Jan 19 13:30:51 2016 +0100 Merge branch 'mysql-5.6' into mysql-5.7 Conflicts: mysql-test/r/xml.result mysql-test/t/xml.test sql/item_xmlfunc.cc commit c1cc22e38ee7b24bfd0856bb3a09de286d2ebf56 Author: Tor Didriksen <tor.didriksen@oracle.com> Date: Mon Jan 18 15:11:41 2016 +0100 Bug#22552615 EXTRACTVALUE RETURNS NULL WHEN NO MATCHING TEXT NODE IS FOUND FOR THE EXPRESSION This is a backport of the patch for Bug #13358486 WEIGHT_STRING = MY_STRNXFRM_UNICODE: ASSERTION `SRC' FAILED. commit e2f94223adee69dac3f063afdab140f086375a68 Merge: 4fbd071 e7c07a7 Author: Sujatha Sivakumar <sujatha.sivakumar@oracle.com> Date: Tue Jan 19 15:42:40 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit e7c07a7d40b056f71c284d6ee9baae45b8794760 Author: Sujatha Sivakumar <sujatha.sivakumar@oracle.com> Date: Tue Jan 19 15:40:27 2016 +0530 Bug#21198611: MULTI-THREADED SLAVE LOG SPAMMING ON FAILURE Problem: ======= When a multi-threaded slave stops with an error, the same error message is printed three times. Analysis: ========= "sql_slave_killed" function is called frequently to check if SQL thread is alive or got killed. This function doesn't preserve SQL thread's kill command acceptance status. This causes the whole function to be re-executed each time. i.e even though the kill command got accepted during previous execution, since it is not preserved the function is re-executed. As part of this function's execution when SQL thread accepts kill status it prints few error messages to let the user know the current status. Because of these re-executions these error messages are also printed once again in the error log. Fix: === Added a new variable which stores the SQL thread's kill acceptance status. If kill is accepted it is set to true and the error messages are printed only once at this point. During further invocations of this function, since kill is already accepted, nothing will be done by this function it simply returns the kill acceptance status. commit 4fbd07124168ef24eba5b55a0e3d90a5478aa1fe Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> Date: Tue Jan 19 15:34:22 2016 +0530 Follow-up fix for Bug#22559624 KEYRING_FILE INITIALIZATION FAILURE WHEN SELINUX ENABLED FROM DISABLED STATE commit 9aa0aa50a3359521794194b770d2264afbe999cd Author: Marc Alff <marc.alff@oracle.com> Date: Mon Jan 18 15:46:25 2016 +0100 Bug#22517278 UPDATE SETUP_INSTRUMENTS DO NOT AFFECT THE GLOBAL MUTEX/RWLOCK/COND Contribution by zhang yingqiang. Before this fix, some objects in the server could be in one of 3 states, for the performance schema instrumentation: - (1) not instrumented at all, - (2) instrumented with instrumentation disabled - (3) instrumented with instrumentation enabled. Changing between states (2) and (3) can be done using UPDATE performance_schema.setup_instruments set ENABLED = ... and is the desired behavior. Some ojects, global to the server, could end up in state (1) if the instrumentation is disabled when the server starts. State (1) is not desirable, as enabling / disabling the instruments once state (1) is reached has no effect. With this fix, code that leads to state (1) has been removed, so that an object is always instrumented when initialized. The instruments affected by this fix are: - mutex instances, - rwlock instances, - cond instances, - socket instances. Affected instances are the global mutexes / rwlocks / conditions and the socket listening point, that are global to the server, and initialized very early during the server start. commit 2170bc6aed708c74f185aa8f56a2ca4476a719c9 Author: Thirunarayanan Balathandayuthapani <thirunarayanan.balathandayuth@oracle.com> Date: Tue Jan 19 14:47:40 2016 +0530 Bug #22384503 BLOCK MEMCACHED FROM MODIFYING TABLES THAT CONTAIN INDEXED VIRTUAL COLUMNS - Post push fix to avoid result content mismatch, because memcached.memc212_2_cols and memcached.memcached_virtual_block uses the same port to communicate with server. Insert in memcached_virtual_block tries to insert in memcached.memc212_2_cols test case when both test case are running parallely. Reviewed-by: Jimmy Yang <jimmy.yang@oracle.com> RB: Via IM commit a0cfdd27308222940f3e7d2dba98a2dd21cd109a Author: Georgi Kodinov <georgi.kodinov@oracle.com> Date: Tue Dec 15 18:53:56 2015 +0200 Bug #21796658: SERVER HANG DURING UNINSTALL AND INSTALL AUDIT_LOG PLUGIN Reporting errors to the client can result in logging audit events. So if this is done while holding the LOCK_plugin mutex the thread is going to hang since logging audit events may result in trying to acquire LOCK_plugin. Fixed by making sure that LOCK_plugin is not held when errors are reported. commit 0cd69333e699a826333d4235113bbac9bb6b84c4 Author: Andrei Elkin <andrei.elkin@oracle.com> Date: Fri Dec 11 17:14:06 2015 +0200 Bug#21697461 MEMORY LEAK IN MYSQLBINLOG **Problem description** At running mtr with a recently introduced --valgrind-clients instances of not deallocated memory were revealed along the following execution path: Rotate_log_event::Rotate_log_event() -> ... inary_log::Rotate_event::Rotate_event() -> bapi_strndup() -> ... my_raw_malloc The reason is turned down to be missed 'delete' for fake (as defined by ev->when == 0) Rotate event in case binlog is read from a running server (remote dumping). **Fixed** with calling the delete operator in proper places where the fake Rotate event becomes out of interest at once after its reading, that is its handling skips process_event(). That's done with care to clear the event's temp_buf. commit c0b7c8aa1897d96254d13d45483f020eae6e68da Author: Magnus Blåudd <magnus.blaudd@oracle.com> Date: Tue Jan 12 14:45:32 2016 +0100 Bug#22526262 DEFAULT MASTER_INFO RECRATED WITHOUT UPDATING ACTIVE_MI POINTER - the active_mi pointer was not properly maintained when the default Master_info structure was recreated and thus caused crash in cluster replication. - fix by removing last traces of active_mi which was kept for cluster replication code compatibility. - this patch assumes that patch for BUG#22531504 which modifies cluster replication code to not use active_mi is approved. commit 3aa61fda1bd88c7fc00f7c7dc32dcb093bb6ee2a Author: Magnus Blåudd <magnus.blaudd@oracle.com> Date: Tue Jan 12 14:26:48 2016 +0100 Bug#22531504 CLUSTER REPLICATION CRASH IN NDB_MI_GET_IGNORE_SERVER_ID DUE TO INVALID ACTIVE_M - rewrite cluster replication code to work directly with the global Multisource_info structure and thus avoiding the need to use "active_mi" variable which is no longer properly maintained while recreating the default Master_info structure during RESET SLAVE ALL commit c55e0a5561adc396d2b3bcfae82d20fed8cdcf80 Author: Magnus Blåudd <magnus.blaudd@oracle.com> Date: Tue Jan 12 13:10:24 2016 +0100 WL#6815 Adapt MySQL Cluster to 5.7 - remove unnecessary and outdated #ifndefs for pre 5.6 version compatiblity. Keep the 5.6+ code only commit a929f0ed4376e850f5b34fe615741eab6c932a97 Author: Catalin Besleaga <catalin.besleaga@oracle.com> Date: Wed Jan 13 14:09:57 2016 +0100 BUG#22541713: Error message uses UK English, not US English Changed "behaviour" to "behavior" in the messages produced by deprecation warning introduced in 5.7.11 for bit operations on BINARY/VARBINARY arguments. commit dce2803b46defa868dff45ded63c45ac92b1bec3 Author: Georgi Kodinov <georgi.kodinov@oracle.com> Date: Fri Jan 15 14:20:19 2016 +0200 Bug #22551523: ALTER USER IDENTIFIED WITH AUTH_PAM DISABLES USER ACCOUNT ALTER USER <foo> IDENTIFIED WITH <bar> was always marking the password as expired regardless of whether the underlying plugin supports password expiration or not. Fixed by adding a check if the plugin does support that and not marking the password as expired in this case. Test case added. commit c798fb6f39e778ae85806b29d7255b45ede98a47 Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> Date: Mon Jan 18 17:55:14 2016 +0530 Bug#22559624 KEYRING_FILE INITIALIZATION FAILURE WHEN SELINUX ENABLED FROM DISABLED STATE Fix to initialize /var/lib/mysql-keyring when SELinux is enabled. Add /var/lib/mysql-keyring directory to file-contexts commit 36f2d9ef04b04ea05119e05d09eeab37f18c8b77 Author: Debarun Banerjee <debarun.banerjee@oracle.com> Date: Mon Jan 18 16:40:45 2016 +0530 BUG#22452597 CHECK ALGORITHM=INNODB ON CRC32 CHECKSUM MISMATCH Problem : --------- When a page checksum validation fails for default crc32, we always try computing legacy big endian crc32 checksum first and then the innodb checksum. While upgrading from 5.6 (default checksum innodb) to 5.7 (default checksum crc32), this would cause repeated evaluation of the legacy checksum. This issue is there for both compressed and uncompressed pages. Solution : ---------- Since it is likely that all the pages would have same checksum algorithm, we optimize the order dynamically. 1. By default attempt innodb checksum after crc32 2. Once we find a page with legacy big endian crc32 checksum we switch the order and attempt big endian checksum first. Reviewed-by: Jimmy Yang <Jimmy.Yang@oracle.com> RB: 11403 commit 7860b0a53ae7fcefb2071d828a2522557ac7d67c Author: Georgi Kodinov <georgi.kodinov@oracle.com> Date: Mon Jan 18 13:00:35 2016 +0200 WL#8785 addendum: fixed a m_s_i test using the old --ssl option commit e3c57b752326cbc9b475e695d468d248f76db10b Merge: 5acbbaa 948c00a Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com> Date: Mon Jan 18 16:12:36 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 948c00aa1cbb1a4ca55107b6a9987fe32eb9ff83 Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com> Date: Mon Jan 18 16:12:02 2016 +0530 BUG#20836250 MYSQLBINLOG --VERBOSE FOR BINARY DATATYPE NOT SKIPPING ' (QUOTE) & \ (BACKSLASH) Problem & Analysis: =================== Character set information is not available in the binary log, which affects string/binary column display in mysqlbinlog --verbose: There is no distinction made between corresponding binary and nonbinary string types (BINARY and CHAR, VARBINARY and VARCHAR, BLOB and TEXT). The output uses a data type of STRING for fixed-length strings and VARSTRING for variable-length strings. But single quote (' which 0x27) and backslash (\ which is 0x5c) are possible in binary datatype content and if we display single quote as character it will confuse the users and also backslash will skip the next character if we are treating them as string value. Fix: Display hexdecimal equivalent value for single quote and backslash, dont treat them as normal string characters i.e., display \x27 or \x5c instead. commit 5acbbaab4bf97841590a5d862b0bc6ebb9399387 Author: Robert Golebiowski <robert.golebiowski@oracle.com> Date: Wed Jan 13 14:58:21 2016 +0100 Bug #22540394: ASSERT FAILURE IN KEYRING_FILE.SO (MEMORY_SIZE % SIZEOF(SIZE_T) == 0) commit f49716f7aed3dce67a2c8aa46fa96837bdc7cca2 Merge: d140408 f51a6c1 Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com> Date: Mon Jan 18 14:06:18 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit f51a6c12206b5c0d42e47492bde9e288c25bee7a Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com> Date: Mon Jan 18 14:05:43 2016 +0530 BUG#22305605 STOP SLAVE IO THREAD PRINTS WRONG LOST CONNECTION MESSAGE IN ERROR LOG FILE Problem: STOP SLAVE IO_THREAD closes socket communication between Master and Slave. This prints an ERROR message in the error log [ERROR] Error reading packet from server: Lost connection to MySQL server during query (server_errno=2013). Here the socket closed intentionally by the DBA using command 'STOP SLAVE IO_THREAD'. Hence no need to print the message [ERROR] that says "Lost connection" which will confusion the users/DBAs. Analysis & Fix: When we are unable to read packet from the replication channel, we print this error message under the assumption that we lost connection from the master. But this is not true always, it could be that replication channel is closed due to a 'STOP SLAVE IO_THREAD' command execution on Slave. In this situation, this panic error should not be printed. Now after the patch, slave server checks if abort_slave flag is set or not. If it is not set, then it assumes that replication channel lost connection from the master and print this error message in the error log. commit d1404087ad1de9ee7cf08709da8f3f5b4dd890b2 Author: Manish Kumar <manish.4.kumar@oracle.com> Date: Mon Jan 18 13:28:08 2016 +0530 BUG#22523554 - CRASH AFTER FAILURE IN RELAY-LOG-RECOVERY, ON START GR COMMAND Problem : The problem here is that by setting the relay log recovery to 1 we are getting a an error during recovery. Once the relay log recovery is happening the repositories are not initiated and the server reports error due to this. However if we try to do a START GROUP_REPLICATION in this situation, the server crashes as it uses the "mi->rli" to fetch the current log position and log name. Fix : The fix makes sure that the recovery procedure will not take group_replication_channel into consideration. It will skip the relay logs of the GR channel and proceed further. commit 6b7a55fa30d64cbfdc30783d74390733d9b994f0 Author: Erlend Dahl <erlend.dahl@oracle.com> Date: Mon Jan 18 08:10:03 2016 +0100 Revert "BUG#22523554 - CRASH AFTER FAILURE IN RELAY-LOG-RECOVERY, ON START GR COMMAND" commit b89db7182e7f598ed7502fd0f382d99805ff58f3 Merge: b068c2c 7ea0b17 Author: Sujatha Sivakumar <sujatha.sivakumar@oracle.com> Date: Mon Jan 18 11:40:11 2016 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 7ea0b177740be8467406a78c6b60b0fe92d54a51 Author: Sujatha Sivakumar <sujatha.sivakumar@oracle.com> Date: Mon Jan 18 11:36:55 2016 +0530 Bug#21435502: DROP TABLE IF EXISTS MAY BRAKE REPLICATION IF SLAVE HAS REPLICATION FILTERS. Problem: ======= If a replica has replication filters on a given database and DROP TABLE IF EXISTS is issued on a table that holds a key being used as Foreign Key by another table the statement will fail as expected with error: ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails however this will break replication on the replica with: Last_SQL_Error: Query caused different errors on master and slave. Error on master: message (format)='Cannot delete or update a parent row: a foreign key constraint fails' error code=1217 ; Error on slave: actual message='no error', error code=0. Default database: 'db1'. Query: 'DROP TABLE IF EXISTS `table1` /* generated by server */' Two issues were reported in this bug. 1) Failed query logged to binary log. 2) When a query with expected error is received on slave side and it was skipped due to replication filters, then the error checking should not happen on slave side. i.e the comparison of expected error with actual error must not happen. Analysis and fix: ================= Issue 1: ======= We do binlog failed queries when the query can generate 'partial results'. When a list of tables are dropped as part of a single 'DROP TABLE' command and if it fails, it can generate partial results and in such cases we log it with an expected error into the binary log so that slave's state is also the same as that of the master. But when the DROP TABLE command is used to DROP a single table and if that command fails then the query cannot generate 'partial results'. In that case the query will not be written to the binary log. Issue 2: ======= This was fixed as part of Bug#20797764 fix in MySQL-5.6.27. commit b068c2cd10ba328053506c86c6668f79230adb01 Author: Libing Song <libing.song@oracle.com> Date: Fri Dec 25 17:45:21 2015 +0800 BUG#21842399 reset slave all is not thread-safe DESCRIPTION =========== RESET SLAVE ALL could delete a channel, even master_pos_wait and wait_until_sql_thread_after_gtid were still waiting for binlog to be applied. It caused server crash when the functions tried to access the channel which has been deleted. FIX === A channel reference counter is added. It is increased if the channel should not be deleted when the functions are running. RESET SLAVE ALL will wait for no reference and then it can delete the channel. commit 6abee2fc6612989b0482e5eaa926060ba52df1c9 Author: Manish Kumar <manish.4.kumar@oracle.com> Date: Mon Jan 18 03:27:57 2016 +0530 BUG#22523554 - CRASH AFTER FAILURE IN RELAY-LOG-RECOVERY, ON START GR COMMAND Problem : The problem here is that by setting the relay log recovery to 1 we are getting a an error during recovery. Once the relay log recovery is happening the repositories are not initiated and the server reports error due to this. However if we try to do a START GROUP_REPLICATION in this situation, the server crashes as it uses the "mi->rli" to fetch the current log position and log name. Fix : The fix makes sure that the recovery procedure will not take group_replication_channel into consideration. It will skip the relay logs of the GR channel and proceed further. commit e0aa888c6df262aa4aa2796b86a8ff9e5a4d89a8 Merge: a8f74c0 8a6e123 Author: Knut Anders Hatlen <knut.hatlen@oracle.com> Date: Sun Jan 17 20:31:59 2016 +0100 Merge branch 'mysql-5.6' into mysql-5.7 commit 8a6e123a92cdf77b156dca59199f5ca056473c37 Merge: e527ef1 c15900f Author: Knut Anders Hatlen <knut.hatlen@oracle.com> Date: Sun Jan 17 20:31:05 2016 +0100 Merge branch 'mysql-5.5' into mysql-5.6 commit c15900f266a3ccd2bb3738edee6d182ac70a8efb Author: Knut Anders Hatlen <knut.hatlen@oracle.com> Date: Thu Jan 7 12:53:18 2016 +0100 Bug#21682356: STOP INJECTING DATA ITEMS IN AN ERROR MESSAGE GENERATED BY THE EXP() FUNCTION When generating the error message for numeric overflow, pass a flag to Item::print() that prevents it from expanding constant expressions and parameters to the values they evaluate to. For consistency, also pass the flag to Item::print() when Item_func_spatial_collection::fix_length_and_dec() generates an error message. It doesn't make any difference at the moment, since constant expressions haven't been evaluated yet when this function is called. commit a8f74c01d306cbf5fc4d48db548234e60683c64d Author: Joao Gramacho <joao.gramacho@oracle.com> Date: Tue Dec 15 12:51:59 2015 +0000 BUG#21798355 SLOW STARTUP OF 5.7.X SLAVE WITH RELAY_LOG_RECOVERY = ON AND MANY RELAY LOGS Problem ------- The slave initialization was scanning relay log files to update the Retrieved_Gtid_Set and the transaction parser state even when the relay_log_recovery option was set. Analysis -------- During the slave initialization, it opens the relay log to compute the Retrieved_Gtid_Set and to set the transaction parser in the correct state in order to keep track of already replicated GTID sets. The initialization procedure was performing the above actions even when the relay_log_recovery option was set. When the relay_log_recovery option is set, the slave I/O thread should not use the current relay log files and will base it initial state on the SQL thread state. If the I/O thread will not rely on relay log files, it is a waste of time to compute the Retrieved_Gtid_Set and the transaction parser state when the relay_log_recovery option is set. Fix --- The Retrieved_Gtid_Set and the transaction parser states are now initialized only if the relay_log_recovery option is not set. commit a9a9667169b78e03e30ede943b6f9bdd14aea65f Author: Christopher Powers <chris.powers@oracle.com> Date: Fri Jan 15 13:26:48 2016 -0600 Bug#21847100 HANDLER ROLLBACK VARIABLE VALUE FOR DELTA AND HOST DIFFERS IN PS AND IS MTR invokes preliminary checks that affect the starting value of the status counters. These status counts differ between I_S and P_S because of the different code paths taken for SHOW commands. The testcase measures only the status count deltas, not the starting values. To avoid any discrepancies, between I_S and P_S, the test now performs FLUSH STATUS to clear beginning status counts. commit cd908fd37b7e33139b1ad34a58d7e44905c6d033 Author: Georgi Kodinov <georgi.kodinov@oracle.com> Date: Fri Jan 15 18:02:46 2016 +0200 Bug #21807286: "CREATE USER IF NOT EXISTS" REPORTS AN ERROR CREATE|ALTER IF [NOT] EXISTS ... IDENTIFIED BY ... was failing if the user existed(not existed for alter) and raw error log was off due to considerations of wrong binlogging in that case. Converted this to a warning (regardless of the raw log option) because this is how it operates without the IDENTIFIED BY option. Logging IDENTIFIED BY is safe, since it's converted on the fly to IDENTIFIED WITH (hence is not revealing the password). Also made sure that the warning for a user is not counted towards the number of users successfully processed by CREATE USER. Also made sure that the IDENTIFIED clauses are handled properly when binlogged. Added test case and updated the existing tests to cover the change. Now logging of all user operations involving credentials that are a no-op on the master is inhibited. commit 2091b92ff866f0109e8bd4801e827473d5dfa955 Author: Allen Lai <zheng.lai@oracle.com> Date: Fri Jan 15 13:28:55 2016 +0800 Fixed bug#22538749 IMPORT OF ENCRYPTED DBSPACE FAILS WITH MASTER KEY ERROR In importing, we need to skip getting key information from data file. The key information should be acheived from .cfp file. Reviewed-by: Jimmy Yang<jimmy.yang@oracle.com> RB: 11492 commit 772309f84c1daae2e8cbd3c40764d404d6e8aeb6 Author: Shaohua Wang <shaohua.wang@oracle.com> Date: Fri Jan 15 10:32:57 2016 +0800 BUG#22530768 Innodb freeze running REPLACE statements we can see from the hang stacktrace, srv_monitor_thread is blocked when getting log_sys::mutex, so that sync_arr_wake_threads_if_sema_free cannot get a change to break the mutex deadlock. The fix is simply removing any mutex wait in srv_monitor_thread. Patch is reviewed by Sunny over IM. commit b77636769f88d8902dd83edfcb18c88d480abeec Author: Shaohua Wang <shaohua.wang@oracle.com> Date: Fri Jan 15 10:26:08 2016 +0800 BUG#22530768 Innodb freeze running REPLACE statements we can see from the hang stacktrace, srv_monitor_thread is blocked when getting log_sys::mutex, so that sync_arr_wake_threads_if_sema_free cannot get a change to break the mutex deadlock. The fix is simply removing any mutex wait in srv_monitor_thread. Patch is reviewed by Sunny over IM. commit 04302541532a8ca19a7824824c72bffb4c1de915 Author: Dag Wanvik <dag.wanvik@oracle.com> Date: Tue Jan 12 19:40:16 2016 +0100 Bug#22026278 JSON PARSING ERROR MESSAGE DISPLAYS TOO MUCH DATA The following error messages were introduced by the JSON work and would show SQL data in the diagnostics. We now resort to indicating only position inside the JSON text, the column involved and/or the row number of the query as the case may be. The existing formats of the error messages retain the number of parameters for compatibility but the output string have been slightly adjusted to suit the missing SQL data henceforth. ER_INVALID_JSON_TEXT ER_INVALID_JSON_TEXT_IN_PARAM ER_INVALID_JSON_PATH ER_NUMERIC_JSON_VALUE_OUT_OF_RANGE ER_INVALID_JSON_VALUE_FOR_CAST commit e5480287892a4160505338593fd5ee0e3d438182 Author: Tatiana Azundris Nuernberg <tatjana.nuernberg@oracle.com> Date: Fri Jan 8 17:52:19 2016 +0000 Bug#22180046: CRASH WHEN SETTING LOG_SYSLOG IN MULTIPLE CONNECTIONS Clean up some syslog releated code, and move some of its system variable handling portions so they're protected by the sys-var lock. commit c977a544c6963e4bd1646e6a5ad9ad96605ba2b0 Author: Tatiana Azundris Nuernberg <tatjana.nuernberg@oracle.com> Date: Thu Jan 14 11:47:50 2016 +0000 Test for 20642505 is enough of a memory hog that it can fail on resource starved machines. Mark it big. commit 3fb6a70dd5ec1bd2e721b3033e50f95958d51110 Author: Bharathy Satish <bharathy.x.satish@oracle.com> Date: Thu Jan 14 10:35:23 2016 +0530 Bug #22505474 MYSQLPUMP FAILS WHEN IS DUMPING ALL DATABASES Problem: When views are named with a space character there is a syntax error when dumping view. Fix: Fixed by quoting the view names. commit f81fe64d0881f29e228b1af43065c225e990dc96 Merge: 3de2727 e527ef1 Author: Shaohua Wang <shaohua.wang@oracle.com> Date: Thu Jan 14 11:46:43 2016 +0800 Merge branch 'mysql-5.6' into mysql-5.7 commit 3de27274bc62a4479f401eed1c0487bec2fa9413 Author: Benny Wang <benny.wang@oracle.com> Date: Thu Jan 14 03:16:44 2016 +0100 Fixed bug#22195364: GCOLS: FAILING ASSERTION: DFIELD_IS_NULL(DFIELD2) || DFIELD2->DATA If one column(generated column or non-generated column) with BLOB type is defined as NOT NULL, the materialized value of prefixed index on it is an empty string when insert an empty string. When doing a SELECT, the not-null columns will be transformed into an emptry string during send the result to client. Before send to client, the value of not-null BLOB column is NULL. When doing an INSERT with UPDATE on duplicated index, the server will scan the index first and see whether there is a duplication. If it has, server will do an UPDATE. For the issued query in the bug report, server tries to use the index on the not-null BLOB virtual generated column with an empty string expression to locate the index entry. However, the value of it is a NULL during evaluate the generated column. When use the NULL value to locate the index entry, the assertion is triggered because the materizlied prefixed index value is an empty string. The above inconsistency is because there is one optimization in Field_blob::store, which sets the memory to be zero when the length is 0. In this patch, we remove such an optimization. commit bd2e8ce2075ed29fe24c28d14e764e43426be02b Author: Allen Lai <zheng.lai@oracle.com> Date: Thu Jan 14 09:45:55 2016 +0800 Fixed TDE bugs: bug#22514564 TDE:INNODB:ASSERTION FAILURE IN THREAD 139878949578496 IN FILE UT0UT.CC LINE 920 bug#22522122 TWO TYPOS IN ERROR ER_INVALID_ENCRYPTION_OPTION Reviewed-by: Jimmy Yang<jimmy.yang@oracle.com> RB: 11462 commit ff39f926c9d6b2ae1a78674dd0e0e88eafef74b9 Author: Bjorn Munch <bjorn.munch@oracle.com> Date: Thu Jan 14 00:50:30 2016 +0100 Followup fix: do not try to configure MySQL-shared-compat.spec.sh commit f85d0589e9ad620ab7c6b6b3560259c77b54d56e Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> Date: Thu Jan 14 01:06:23 2016 +0530 BUG#22525609 - REMOVE OBSOLETE MYSQL-SHARED-COMPAT.SPEC.SH FROM SUPPORT-FILES/ Removed support-files/MySQL-shared-compat.spec.sh file, as it is not used any longer. commit 72b8fad8daabbe8243019825cde2038815d66f7d Author: Ramil Kalimullin <ramil.kalimullin@oracle.com> Date: Wed Jan 13 19:44:45 2016 +0400 WL#8785: Support multi-state SSL option. After push test fixes: i_rpl.rpl_semi_sync_shutdown rpl.rpl_multi_source_mts_reset_worker_info rpl.rpl_semi_sync_after_sync rpl.rpl_semi_sync_shutdown_hang commit e527ef11be64c12a4edfdbae458b647dddff8336 Merge: 4bd772f 0517474 Author: Shaohua Wang <shaohua.wang@oracle.com> Date: Tue Jan 12 15:33:54 2016 +0800 Merge branch 'mysql-5.5' into mysql-5.6 commit 0517474ea43d517a50f11ebe85ec1f04160603a7 Author: Shaohua Wang <shaohua.wang@oracle.com> Date: Tue Jan 12 15:08:09 2016 +0800 BUG#22530768 Innodb freeze running REPLACE statements we can see from the hang stacktrace, srv_monitor_thread is blocked when getting log_sys::mutex, so that sync_arr_wake_threads_if_sema_free cannot get a change to break the mutex deadlock. The fix is simply removing any mutex wait in srv_monitor_thread. Patch is reviewed by Sunny over IM. commit 2cd9c7e2df7dd4a714e79c23ee2d13a95f333d1d Merge: 935bb6a 4bd772f Author: Bjorn Munch <bjorn.munch@oracle.com> Date: Mon Jan 11 15:11:42 2016 +0100 Raise version number after cloning 5.7.11 commit 4bd772f378b6604e9b008cff5300cfd48fbc6725 Merge: 0f5490c e54f6f2 Author: Bjorn Munch <bjorn.munch@oracle.com> Date: Mon Jan 11 15:07:33 2016 +0100 Raise version number after cloning 5.6.29 commit e54f6f28be35242322f42150f05dcd31c7a25f2b Author: Bjorn Munch <bjorn.munch@oracle.com> Date: Mon Jan 11 15:00:44 2016 +0100 Raise version number after cloning 5.5.48