commit 432d360adedd7d8976fd6254eb3f5bee0b1ac3d6 Author: Harin Vadodaria Date: Thu Jun 22 12:30:49 2017 +0200 Bug#26310935: MOVE AWS KMS CREDENTIALS TO DIFFERENT DIRECTORY Description: Moving AWS KMS credentials to a different directory to facilitate source packages creation without those credentials. (cherry picked from commit 153eb9cabd543d27f4bc112359e1af9d5636f34e) commit 499f2700d315918dfe2361b5f8b306df754f7f99 Author: Hemant Dangi Date: Thu Jun 22 13:56:27 2017 +0530 Bug#26314756: ASYNCHRONOUS_CHANNELS_STATE_OBSERVER INITIALIZATION MISSING FROM DELAYED GR Issue: ====== In case of delayed server start GR plugin starts from Delayed_initialization_thread::initialization_thread_handler class and not from plugin_group_replication_start(). asynchronous_channels_state_observer observers which keep track of all replication channel starts, stop, .. won't get start in this case as it is not getting initialized. As asynchronous replication channel cannot be started on secondary, while group replication is running on single primary-mode, this missing initialization of asynchronous_channels_state_observer will allow secondaries to start asynchronous replication channel and get data through asynchronous replication. Solution: ========= Add missing initialize_asynchronous_channels_observer() function in Delayed_initialization_thread::initialization_thread_handler(). (cherry picked from commit 160aef6fc359e093ddbaaa346fa1570e8357e4ac) commit 15ee5a53c43281822d8c9110160c12926efb952c Author: Daogang Qu Date: Wed Jun 21 16:20:47 2017 +0800 Bug #26266758 SKIPPING MYSQL SLAVE ERROR CODE 1590 (ER_SLAVE_INCIDENT) DOES NOT WORK After generating GTID for incident log event, skipping slave error code 'ER_SLAVE_INCIDENT' does not work. The root cause is that we did not commit the transaction to consume its owned GTID when applying the incident log event in the case, and more the slave job added by the incident's GTID is wrongly removed from the global assigned queue when MTS is enable. To make skipping slave error code 'ER_SLAVE_INCIDENT' work well, commit the transaction to consume its owned GTID when applying incident log event in the case and remove the slave job added by the incident's GTID correctly when MTS is enable. To make NDB cluster happy, if there is no binlog cache then we write incidents into the binlog directly. (cherry picked from commit 4585ae70078721d7ee1ed23ee632a251ac32de41) commit cab279ff3df6eb5af91d9055edc24c7792a9bbf1 Author: Allen Lai Date: Mon Jun 12 14:39:14 2017 +0800 Bug#26243264 ALTER TABLE ON ENCRYPTED TABLE CAUSES FRM OUT OF SYNC AND DECRYPTS DATA This bug is cased by that we didn't set the encryption attribuite properly in altering table. Approved by Jimmy Yang (cherry picked from commit 2ef1a5d1b626e1f5ae6a35c69f8a221f95a266f4) commit 4d1a9b9de8589d1ea35e7e247bb82983c42d667b Author: Piotr Obrzut Date: Fri Jun 2 12:04:40 2017 +0200 Merge branch 'mysql-5.6' into mysql-5.7 (cherry picked from commit ee89108913c36caea12ae4e8c0a7de5a2fa5ced0) commit 79f13c5f657881eb140526f134b4390358d8acbf Author: Piotr Obrzut Date: Thu Jun 1 08:03:07 2017 +0200 Merge branch 'mysql-5.6' into mysql-5.7 (cherry picked from commit d8e6a93b0ead34c61aaa12c2c4a41d817c075ba8) commit 2e81c7cb8066a910077615d68eb4cca176043e0b Author: Dmitry Lenev Date: Mon May 29 22:40:23 2017 +0300 Fix for bug#26106655 "DISCREPANCY BETWEEN IMPLICIT DB OF PARENT TABLE FOR FK AND REFERENCES PRIVILEGE". Check for REFERENCES privilege was using incorrect database in some cases. There was discrepancy between database which was used by SEs for parent tables and used for check of REFERENCES privilege in cases when no explicit database was specified for parent table. This patch removes the discrepancy by aligning check for REFERENCES privilege with SE behavior. (cherry picked from commit bd6aa24131505886b06381fcce97d97efa9f6002) commit b28034c34388c7db8fbb709ccc0964d61ca271b7 Author: Tor Didriksen Date: Thu Jun 1 12:48:13 2017 +0200 Bug#22834591: unused-local-typedef warnings from boost 1.59 Build broken when all -DWITH_XXX=system cmake .. -DWITH_EDITLINE=system -DWITH_LIBEVENT=system -DWITH_LZ4=system -DWITH_MECAB=system -DWITH_SSL=system -DWITH_ZLIB=system CMake Error at plugin/keyring/CMakeLists.txt:53 (ADD_COMPILE_FLAGS): Unknown CMake command "ADD_COMPILE_FLAGS". Fix: INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake) (cherry picked from commit 70b6d76899732daf96da1f02777e4049dc2a6bca) commit e620446b261d2068fadbf3b79be9f65de44a06d4 Author: Balasubramanian Kandasamy Date: Wed May 31 19:02:08 2017 +0530 Update compatver to 5.6.37 for fedora26 server builds (cherry picked from commit d5aae9182fdc0d0f82c387561f99b3a00ec71411) commit 161ddb439b15175f9b3dd51081879893d0bcf444 Author: Lars Tangvald Date: Tue May 30 14:44:21 2017 +0200 Deb packaging: Workaround for keyring_aws build failure The DEB_AWS_SDK cmake flag was lost during the build. Change to pass it on internally. (cherry picked from commit 9da34cff69d050ba0c6cd46fa072ba2d1f427a4c) commit 2cdcfaafff9e45fbeb8e5253ff6d03de4a2c0600 Author: Terje Rosten Date: Tue May 30 10:28:10 2017 +0200 BUG#26148391 MYSQLD_PRE_SYSTEMD SCRIPT DOES NOT GET ERROR LOG FROM CUSTOM MY.CNF Script searched for log-error only, however log_error is also supported by mysqld, fixed by using regexp. (cherry picked from commit 10819a832cccddf894ba32b6b39f739b16283433) commit 0a07424eef304505a9f5dee294efb7f43a67641e Author: Balasubramanian Kandasamy Date: Tue May 30 13:20:15 2017 +0530 Remove authentication ldap plugin from docker rpms (cherry picked from commit b440be3fd79b0635b5759dcdd7851a7fa2970c51) commit 2985b090034f1be7ed2624c8655e1367b0cff9c6 Author: Lars Tangvald Date: Tue May 30 09:48:47 2017 +0200 Removed AWS plugin from default list to fix Debian 7 build The AWS plugin should only be added to platforms supporting the AWS SDK, but was also added to the default list, breaking the build on Debian 7. Removed from the list, so the plugin is only added is DEB_AWS_SDK is set. (cherry picked from commit defbef08fd86f0fc09f297827d6f8b952aeeace2) commit 3d2e4b2882a95d28c4cc5b0112cc16f9cc22fb57 Author: Yashwant Sahu Date: Tue May 30 12:02:20 2017 +0530 Bug#26163403: COPYRIGHT HEADER MISSING IN AUTHENTICATION_LDAP FILES * Added GPL licensing text for LDAP SASL client side plug-in. (cherry picked from commit 55df42e3a3ad7b39c793c66d41fff76dc9910143) commit c80729814641e8990f2900bffe6e792e2365cccc Author: Harin Vadodaria Date: Mon May 29 13:43:22 2017 +0200 WL#9143: Keyring plugin for the Amazon's AWS Key Management service Post-push fix: Fixing keyring_udf failure (cherry picked from commit 9c5ae02e3ce451c328cf6d851fa05a2d3410b0c3) commit ec0357e6af37bd95c723b3f860c396c65324a524 Author: Kevin Lewis Date: Sun May 28 22:40:02 2017 -0600 WL#10322: Deprecate innodb_undo_logs in 5.7 * Add (deprecated) to innodb-undo-logs description and mention that it is actually setting the number of rollback segments. * Delete “(deprecated)” from innodb-rollback-segments message. * Add a deprecation warning message when innodb_undo_logs is used at runtime and also at startup in a config or the command line. * Return a warning when innodb_undo_logs is used at runtime. * Rename srv_undo_logs to srv_rollback_segments in code * Rename innodb_undo_logs to innodb_rollback_segments in all collections and testcases except sysvars.innodb_undo_logs_basic. * Fix sysvars.innodb_undo_logs_basic to suppress the deprecation warning. Add a restart to exercise the deprecation code for using it at startup. Approved by Satya in RB#15389 commit c85f3f04d7bfb9b5f4a3da9294f63621f7a5c826 Author: Lars Tangvald Date: Wed May 24 11:01:05 2017 +0200 Bug#25799465 MISSING DEPENDENCIES IN CLUSTER PACKAGES FOR APT Added missing deps: data-node: libclass-methodmaker-perl auto-installer: python-paramiko commit ed578d107be3285273ae3dfeae7834891a4fbfca Merge: 9b1fe87 a8c1489 Author: Pavan Naik Date: Fri May 26 19:48:04 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit a8c14896943b88b7fda8d8b945d8b7fb0101f186 Author: Pavan Naik Date: Fri May 26 19:46:46 2017 +0530 BUG#26121192 : --NO-CONSOLE IS COMPULSORY IF --LOG-ERROR USED TO MAKE WINDOWS RUN PASS Issue: ------ MTR adds '--console' option if '--no-console' options is not specified. But adding '--console' option when '--log-error' is specified either in test-[master/slave].opt or in the config file will cause the test run to fail on windows. Fix: ---- On windows, don't add '--console' option if '--log-error' is specified either in test-[master/slave].opt or in the test config file. This patch is a back-port of bug#20341933. Reviewed-by: Deepa Dixit RB: 16372 commit 9b1fe87e55b2f4c5f7d961f76cdde37aebb5bc46 Author: Nuno Carvalho Date: Fri May 26 15:35:02 2017 +0200 BUG#26042764: BACKPORT BUG#25642343 AND BUG#24311527 TO 5.7 BUG#24311527: PLUGIN-LOAD FAILS AFTER MYSQLD --INITIALIZE BUG#25642343: THE SERVER SHOULD HAVE A DEFAULT USER FOR THE SERVER SESION SERVICE There were two leaks after the above patch was introduced: 1) There was a possible memory leak on method Session_plugin_thread::terminate_session_thread(), on which the terminate event could be queued after the thread handler being already terminated. This would cause the terminate event memory not to be released. In order to prevent that, the Session_plugin_thread::terminate_session_thread ensures that when it ends all queued events are released. 2) When the Group Replication was not able to contact the server core through the SQL API, some memory structures were not being released. Now that memory structures are properly released. commit 08309af50aff67345f440a40d3cd77341d62ea05 Merge: b4e3c4c a0dfe93 Author: Sreeharsha Ramanavarapu Date: Fri May 26 16:07:56 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit b4e3c4c424fd54232fb25099189680bf89904205 Author: Harin Vadodaria Date: Fri May 26 12:37:28 2017 +0200 WL#9143: Keyring plugin for the Amazon's AWS Key Management service Description: This worklog introduces a new keyring plugin -keyring_aws. The plugin will communicate with Amazon's AWS Key Management Service andfetch keys that can be used by MySQL server. It will provide ability to store/fetch/remove keys from Key Management service. In addition, Plugin also introduces two UDFs which provides ability to: - Rotate Customer Master Key - Reencrypt data keys using latest Customer Master Key. Reviewed-By: Georgi Kodinov commit a0dfe93941af0aa5e7faa87ec95c2779ea659257 Author: Sreeharsha Ramanavarapu Date: Fri May 26 16:05:03 2017 +0530 Bug #24595639: INCORRECT BEHAVIOR IN QUERY WITH UNION AND GROUP BY Post-push fix on mysql-5.6 The unittest - ItemEqual fails because FAKE_TABLE object's pos_in_table_list is left unset and hence contains a junk value. Since pos_in_table_list is now checked in Item_field constructor this can cause a problem. Fix is to set to NULL explicitly. commit f3dfe27c95bdeb4b7c6afd1c4c20b1110d136216 Author: Tomasz Stepniak Date: Fri May 26 12:33:33 2017 +0200 BUG #25835833: SHOW STATUS SSL CRASHES GPL SRVR WHEN SRVR STARED WITH XPLUGIN,EXPIRED SSL CERTS Description =========== Crash in community version of server with X plugin loaded when checking for SSL system variables and using expired certificates. Fix === Add validation if certificate is not null when checking for certificate details. RB: 16362 Reviewed by: Grzegorz Szwarc Reviewed by: Lukasz Kotula commit 064a9c69f13ec4d30d33e9b092095c07cbd45f8f Author: Anibal Pinto Date: Thu May 25 12:01:35 2017 +0200 BUG#25232042: ASSERT "!CONTAINS_GTID(GTID)" RPL_GTID_OWNED.CC:94 OWNED_GTIDS::ADD_GTID_OWNER When a existing GTID_NEXT transaction gets a conflicting GTID generated by server, the Group Replication plugin will generate a assert due having two transactions with same gtid. On Group Replication the gtid is generated after conflict detection, later than normal replication. Some conditions were relaxed to allow only be called when commit is done and add message to alert when gtid is already used. The check for macro HAVE_REPLICATION was removed due to being now correctly defined on cmake. commit 477635b0586f7e5842ba49b332c565d4d12a8ec0 Author: Ajo Robert Date: Fri May 26 14:48:38 2017 +0530 Bug#25303711 SIGNAL 11 DURING CERTAIN QUERY WITH AGGREGATION IN NESTED CONDITION Post push test case fix. commit 599664672cf9171510948cef0ac87d90bccbc205 Author: Nuno Carvalho Date: Fri May 26 10:53:07 2017 +0200 BUG#26042764: BACKPORT BUG#25642343 AND BUG#24311527 TO 5.7 BUG#24311527: PLUGIN-LOAD FAILS AFTER MYSQLD --INITIALIZE BUG#25642343: THE SERVER SHOULD HAVE A DEFAULT USER FOR THE SERVER SESION SERVICE Update initialize-sha256 test. commit 0fc7e760a3dbc6159f67de521891e1d98c75dd8e Merge: 6e64622 2a0ee9b Author: Lars Tangvald Date: Fri May 26 10:20:10 2017 +0200 Null merge branch 'mysql-5.6' into mysql-5.7 commit 2a0ee9b666cf0001ef7b00a07cfa61c4f37f24af Author: Lars Tangvald Date: Wed May 24 14:24:25 2017 +0200 Bug#25799475 APT: CLIENT PACKAGE OVERWRITES FILES IN NATIVE 5.5 PACKAGES WITHOUT "CONFLICTS:" Added missing conflicts between our and native packages commit 6e64622e042d5195eab2b5a10ed5bdee974d246d Merge: ca5c137 6c49af9 Author: Joao Gramacho Date: Fri May 26 08:54:42 2017 +0100 Merge branch 'mysql-5.6' into mysql-5.7 commit 6c49af9e8eff4dd535fc67f440ba39d7bcf1b02e Author: Joao Gramacho Date: Tue May 23 15:21:41 2017 +0100 BUG#26128931 USE `DATABASE` STATEMENT FAILS INSIDE GTID SKIPPED TRANSACTION Problem ------- When GTID skipping transactions using mysql client program, when the transaction contains a binary log dump including "use ``" statements, the "use" statement is failing accusing: USE must be followed by a database name ERROR 1046 (3D000) at line ...: No database selected Analysis -------- When the USE statement has quotes, the mysql client program asks the server to translate the database name, issuing two statements to the server: 1. USE `database` 2. SELECT DATABASE(); When GTID skipping a transaction, the USE `database` is taking no effect, leading to SELECT DATABASE() to return NULL. Fix --- Made SQLCOM_CHANGE_DB also an "innocent" statement from the GTID skip point of view. In this way, the USE `database` will take effect and the SELECT DATABASE() should not return NULL anymore. commit ca5c1370151f56528efe99a79609811c6ec4c371 Author: Ajo Robert Date: Fri May 26 12:14:45 2017 +0530 Bug#25369742 INCORRECT BEHAVIOUR IN SEL_ARG::RB_INSERT DURING RANGE QUERY OPTIMIZATION Summary ======== This patch fixes a wrong reference counting during creation of RB tree resulting in server exit and also causing incorrect estimates and thereby wrong plan choice for some cases. Details ====== Range optimizer creates a RB tree representing the entire where condition present in the query. Nodes in the tree represented by SEL_ARG's are OR conditions from where clause. For each node, next_key_part will point to another RB tree which is the AND condition present in the query along with current node condition. ref_count in rb_tree/SEL_ARG represents how many nodes are referring to this particular tree. Please refer opt_range.cc for RB tree details. Below explanation uses a simplified format for representing the tree. Symbols used below are --> => AND relation. | => OR condition [ Node Condition, Node Name, ref_count ] => Node format Consider a query with where clause as: (c1 = 1 AND c2 = 2) OR (c1 = 2 AND c2 = 1) OR (c1 IN (3, 100) AND c2 = 10) OR (c1 IN (1, 2, 3) AND c2 = 2); The resulting condition for this should be: (c1 =1 AND c2 = 2) OR (c1 = 2 AND c2 = 1) OR (c1 = 3 AND c2= 10) OR (c1 = 100 AND c2 = 10) OR (c1= 1 AND c2 = 2) OR (c1=2 AND c2=2) OR (c1=3 AND c2=2) First part of the where clause: [ (c1 = 1 AND c2 = 2) OR (c1 = 2 AND c2 = 1) OR (c1 IN (3, 100) AND c2 = 10) ] will result in below RB tree First time when we OR, we get [c1=1, D, 1] --> [c2=2, C, 1] | v [c1=2, A, 0] --> [c2=1, B, 1] Second time we OR, we get [Tree 1] [c1=1, D, 1] --> [c2=2, C, 1] | | [c1=2, A, 0] --> [c2=1, B, 1] | | [c1=3, E, 0] --> [c2=10, G, 2] | ^ | / [c1=100, F, 0] Rest of the condition [ (c1 IN (1, 2, 3) AND c2 = 2) ] will result in below tree formation [Tree 2] [c1=1, I, 1] | \ | v [c1=2, H, 0] --> [c2=2, K, 3] | ^ | / [c1=3, J, 0] Below steps are performed while doing tree_or between these two trees. Step 1. Take the first node from Tree.2 (Node I) and try to insert into tree 1. As there is an exact match found in Tree 1 (Node D), this node will be ignored and will be deleted from Tree 2. As part of the delete operation, increment_use_count() for the deleted node will be called with -1. This function will reduce ref_count of next_key_part of all nodes in the current tree. As a result, ref_count of Node.K will be reduced 3 times (one for Node H, I, J). Resulting [Tree 2] will look like below [c1 = 2, H, 1] | \ | v [C1 = 3, J, 0] --> [c2 = 2, K, 0] Step 2. Node H will be merged with Node A. Steps to merge these nodes are; As the condition is exactly same, it will copy next key part of H and merge with B. If the next key part node (Node K) ref_count is more than 1 then a copy is made to avoid any unwanted links. In this case, it is (0) not more than 1 and Node.K will be added as an OR element to Node.B. Resulting Tree 1 will look like below. [c1=1, D, 1] --> [c2=2, C, 1] | | [c1=2, A, 0] --> [c2=1, B, 1] | | | | | [c2=2, K, 0] <-- [c1=3, J, 0] | [c1=3, E, 0] --> [c2=10, G, 2] | ^ | / [c1=100, F, 0] Note that Node.J is attached to Tree 1 now. Which is an unwanted consequence of the ref_count reduction of Node.K 3 times at step 1. Step 3: Node J will be merged with node E. Similar to above case, node conditions are exactly same, so next_key_part merge will happen. Like above scenario Node.K ref_count is not more than 1, so no copy will be made but a copy of G will be made (Node H)(due to ref_count = 2) and together attached to node E. Resulting tree will look like below. [c1=1, D, 1] --> [c2=2, C, 1] | | [c1=2, A, 0] --> [c2=1, B, 1] | | | | | [c2=2, K, 0] | | | | [c1=3, E, 0] --> [c2=10, H, 2] | | [c1=100, F, 0] --> [c2=10, G, 2] As a result of above tree, few new conditions are possible. Which were not present in orginal querry. Example, Consider link C1 = 2 and (C2 = 1 or C2 = 2 or c2 = 10) from above tree. In this, condition (c1 = 2 and c2 = 10) was not present in orginal query. This will result in wrong estimate as it accounts for the newly formed possibilities as well and results in wrong plan. Issue that caused server exit is due to Node.H insertion to Node K will result in undecided result as node K suppose to be the root of the tree and which not the case here due to its link with B as a consequence of the wrong ref_count of Node.K. Solution: During node deletion in tree_or, reduce ref_count of next key_part only once instead of one for each node in the tree. commit 980eb3a732f7bbde947f0341b337186fc2516813 Author: Libing Song Date: Mon May 22 16:12:01 2017 +0800 BUG#25379659 MASTER MAY BINLOG A WRONG LAST_COMMITED DESCRIPTION =========== Transactions could binlog a last_commited smaller than expected. With the wrong last_commited values, the transactions which sould be applied sequentially could be applied parallel. That caused applier errors or data inconsistency. ANALYSIS ======== When committing a transaction, its last_commited is set to the value of max_committed_transaction. max_committed_transaction is the maximum sequence_number of committed transactions. It is maintained just before committing each transaction to engine. If its sequence_number is not SEQ_UNINIT then updates max_committed_transaction accordingly. However, it checked wrong sequence_number(the sequence_number of the leader thread's transaction instead of the sequence_number of the transaction). That caused that max_committed_transaction was only updated in time for leader thread's transaction. The update for following transactions were delay to finish_commit() which was after the transaction commited to engine. FIX === Just checks its own sequence_number of each transaction instead of the sequence_number of the leader thransaction. commit 9f1b178f62a047265a22d9d446826f54871844b1 Author: Tomasz Stepniak Date: Thu May 25 22:11:11 2017 +0200 Backport BUG#25750822 commit 4601be093ae8ea47783a38ec5a213d49671094f6 Author: Ajo Robert Date: Thu May 25 18:45:11 2017 +0530 Bug#25303711 SIGNAL 11 DURING CERTAIN QUERY WITH AGGREGATION IN NESTED CONDITION Analysis ======== Aggregate function in certain nested queries does have context set to aggregate select instead of bsae select of the item and leads to unwanted behaviour during merge context. The problem lies within Item::split_sum_func2(), where an Item_aggregate_ref object that wraps the set function is created. It is created with context.select_lex equal to the aggregation query block, and depended_from is the same query block, when this query block is different from the "base" query block of the set function. Fix ==== Created the Item_aggregate_ref with context.select_lex set to be the "base" query block of the set function, and depended_from as the aggregation query block. [This is a backport of a change done in 8.0 to fix Bug#17270896: Crash in Item_ident::fix_after_pullout()] commit 66611ea1ae72a8d40c9ff0099f38880b0b803695 Author: Pedro Gomes Date: Thu May 25 12:16:47 2017 +0200 Bug#25473794: GR: PARTITIONED NODE SHOULD GET UPDATED STATUS AND NOT ACCEPT WRITES When there is a network partition and a member is on a minority all queries into that member will block. In an effort to improve this situation, a new variable is added. This variable will allow the user to chose if the member shall leave the group after N seconds of being in a minority. commit 091d0fe9c0ff28baaad14d63770ce33f45b080e5 Merge: 48a0a60 c18052c Author: Venkatesh Duggirala Date: Thu May 25 15:12:21 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit c18052c7a9588e5ed25eca8bbccc82906d46cca7 Author: Venkatesh Duggirala Date: Wed May 24 16:01:41 2017 +0530 Bug #18301877 RPL.RPL_FLUSH_LOGS TEST FAILS OCASIONALLY ON PB2: FILE_EXISTS" ERROR 1 Analysis: In the test script, after executing "Flush logs" command on Master, test script expects slave to create two relay log files. Before checking for the existence of these files, test script is doing "sync_slave_io_with_master.inc". This works fine if the test script runs with 'GTID_MODE=OFF' because sync is checked with positions. In case of GTID_MODE=ON , sync is checked with gtid numbers. Flush logs (admin commands) does not generate a gtid number. So sync_slave_io_with_master.inc (with gtid_mode ON mode) assumes that slave is in sync with master even though it is not yet executed latest "flush logs" command from the master. Fix: "Flush" commands are logged as rotate events in the binary log without gtid events. So it is correct to check master and slave sync logic with positions instead gtids numbers. Hence for this test script, making use_gtids to false in all the cases (GTID_MODE ON or OFF). commit 48a0a60075f148c2998aeeef89a662e5904d4556 Author: Jaideep Karande Date: Thu May 25 10:46:30 2017 +0200 Bug#25876841: THE ERROR MESSAGE ABOUT SLAVE-PARALLEL-TYPE IS WRONG Problem: Error message displayed for slave-parallel-type is wrong. Description: Present message: In order to use parallel applier on Group Replication, parameter slave-parallel-workers must be set to 'LOGICAL_CLOCK' Issue: LOGICAL_CLOCK is related to slave-parallel-type and not slave-parallel-workers Correct message: In order to use parallel applier on Group Replication, parameter slave-parallel-type must be set to 'LOGICAL_CLOCK' Resolution: Correct error message to "slave-parallel-type must be set to 'LOGICAL_CLOCK'" commit cd49d5c45078f35539df25ee14b81f01d43400f6 Author: Nuno Carvalho Date: Wed May 24 13:12:54 2017 +0200 BUG#26134361: GROUP_REPLICATION.GR_KEY_ROTATION TEST FAILING FREQUENTLY ON PB2 MYSQL-5.7 The test gr_key_rotation instruments some failures on the keyring plugin, such as "keyring not found", which contains the full path. The suppression of the error message was not considering correctly Windows path separator character. This patch fixes that by ignoring both '/' and '\' characters on the error message suppression. commit 0c12827cbee50f8c5e4581008967d85c1463f40e Author: Nuno Carvalho Date: Thu May 25 10:19:25 2017 +0200 BUG#26042764: BACKPORT BUG#25642343 AND BUG#24311527 TO 5.7 Rename user account mysql.session_user to mysql.session commit 47d1f7a5a4719708ad8370f5c6344c9b1735f732 Merge: f04824c e7482a7 Author: Venkatesh Duggirala Date: Thu May 25 12:40:19 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit e7482a70d9b783a32623ec05c132119388978a95 Merge: 7aa6ca9 151fe52 Author: Venkatesh Duggirala Date: Thu May 25 12:40:08 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 151fe524b33d9f5192404ae3a30b51927fd51e67 Author: Venkatesh Duggirala Date: Wed May 24 16:12:57 2017 +0530 Bug#18950197 RPL_SEMI_SYNC_UNINSTALL_PLUGIN FAILS BECAUSE RPL_SEMI_SYNC_MASTER_CLIENTS=1 Analysis: Uninstalling rpl_semi_sync_slave on slave will trigger removing the slave logic on Master which will reduce Rpl_semi_sync_master_clients by one number. But it happens asynchronously on Master. Having assert to check this value with zero will have problems on slow pb2 machines. Fix: Change assert into wait_for_status_var condition. commit f04824ca32ca4057534b8ac1074fde57f5b3c828 Merge: 91aacba 7aa6ca9 Author: Piotr Obrzut Date: Wed May 24 18:26:51 2017 +0200 Merge branch 'mysql-5.6' into mysql-5.7 commit 7aa6ca9c579f5493c9d992a6c5bae80e98b9f93e Merge: 0172a8d 40ecadb Author: Piotr Obrzut Date: Wed May 24 18:14:02 2017 +0200 Merge branch 'mysql-5.5' into mysql-5.6 commit 40ecadb305a9ae831f882fd1176bac4856a84aa8 Author: Piotr Obrzut Date: Wed May 24 18:09:17 2017 +0200 Bug #25658832 VALIDATION CHECK FOR MSVC REDIST NEEDED IN SERVER COMMUNITY MSI Added matching redist prerequisite check to the server msi installer. commit 91aacbafffbcc353588cf684ec18163738e620cb Author: Deepa Dixit Date: Wed May 24 09:08:09 2017 +0530 Bug#26084820: CHARACTER SET PROBLEMS IN INNODB_FTS.PROXIMITY TEST Issue: ------ The innodb_fts.proximity contains Unicode characters, but does not set the character set to uft8, so by default on 5.7, latin1 is used. This means that the Chinese characters in the test are not interpreted as Unicode characters, but as latin1 characters. They are then converted to utf8 before being inserted into the table which is created with utf8 character set. This results is some queries returning an incorrect number of rows because certain characters are not matched. Fix: ---- Set the character set to utf8 in the test on 5.7. Utf8mb4 is the default character set in 8.0.1, so no changes to the test have to be made. Reviewed-by: Jimmy Yang RB: 16278 commit 4cc63239da93926f54f22c514d440d85d512080a Merge: 762edb6 0172a8d Author: Sreeharsha Ramanavarapu Date: Wed May 24 08:53:36 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 0172a8d6e23f8e112c7c6d3c31e2c77ed27baf44 Merge: b75ceeb ef13055 Author: Sreeharsha Ramanavarapu Date: Wed May 24 08:51:35 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit ef1305508bcd08c90bcd6627bfa8acabaad96246 Author: Sreeharsha Ramanavarapu Date: Wed May 24 08:50:05 2017 +0530 Bug #24595639: INCORRECT BEHAVIOR IN QUERY WITH UNION AND GROUP BY Issue 1: -------- This problem occurs in the following conditions: 1) A UNION is present in the subquery of select list and handles multiple columns. 2) Query has a GROUP BY. A temporary table is created to handle the UNION. Item_field objects are based on the expressions of the result of the UNION (ie. the fake_select_lex). While checking validity of the columns in the GROUP BY list, the columns of the temporary table are checked in Item_ident::local_column. But the Item_field objects created for the temporary table don't have information like the Name_resolution_context that they belong to or whether they are dependent on an outer query. Since these members are null, incorrect behavior is caused. This can happen when such Item objects are cached to apply the IN-to-EXISTS transform for Item_row. Solution to Issue 1: -------------------- Context information of the first select in the UNION will be assigned to the new Item_field objects. Issue 2: -------- This problem occurs in the following conditions: 1) A UNION is present in the subquery of select list. 2) A column in the UNION's first SELECT refers to a table in the outer-query making it a dependent union. 3) GROUP BY column refers to the outer-referencing column. While resolving the select list with an outer-reference, an Item_outer_ref object is created to handle the outer-query's GROUP BY list. The Item_outer_ref object replaces the Item_field object in the item tree. Item_outer_ref::fix_fields will be called only while fixing the inner references of the outer query. Before resolving the outer-query, an Item_type_holder object needs to be created to handle the UNION. But as explained above, the Item_outer_ref object has not been fixed yet. Having a fixed Item object is a pre-condition for creating an Item_type_holder. Solution to Issue 2: -------------------- Use the reference (real_item()) of an Item_outer_ref object instead of the object itself while creating an Item_type_holder. commit 762edb6ddf6d244b88e1c3e22787c76dc388ee92 Author: Pedro Gomes Date: Tue May 23 20:01:50 2017 +0200 BUG#26042764: BACKPORT BUG#25642343 AND BUG#24311527 TO 5.7 BUG#24311527: PLUGIN-LOAD FAILS AFTER MYSQLD --INITIALIZE BUG#25642343: THE SERVER SHOULD HAVE A DEFAULT USER FOR THE SERVER SESION SERVICE Backport of BUG#25642343 AND BUG#24311527 into mysql-5.7 Plugins like X and Group Replication try to use the root user to contact the server using the Server Session Service. This approach has many drawbacks as the root user may not be in the server or is expired. This patch proposes a different approach by adding to the server a default locked user that can be used by plugins. This patch introduces: - The user creation on --initialize - The user creation on upgrade - MTR changes so the user is created on bootstrap This patch also includes changes to the way the group replication plugin contacts the server to protect the context associated to external users sessions. commit 41f8bcdeb2ab558c664e8fe6b411df7c2c9270d0 Merge: d04ecc4 b75ceeb Author: Tor Didriksen Date: Tue May 23 16:40:00 2017 +0200 NULL merge from 5.6 commit b75ceeb8568e55bf0624a5bd37b7329a41d8a338 Author: Tor Didriksen Date: Mon May 22 17:15:34 2017 +0200 Bug#26105359 BUILD BREAK OF MYSQL 5.6 WITH GCC .7.1.1 sql_acl.cc:3533:59: error: ISO C++ forbids comparison between pointer and integer commit d04ecc4d2b393828b0faf522d0794aecdd51ab4d Merge: edc3c84 a6b114d Author: Ivo Roylev Date: Tue May 23 11:28:36 2017 +0300 Merge branch 'mysql-5.6' into mysql-5.7 commit a6b114d580e8861da97d4998f1fcb8b7e3c1a4dc Merge: 1cc7e9f b0f667e Author: Ivo Roylev Date: Tue May 23 11:27:15 2017 +0300 Merge branch 'mysql-5.5' into mysql-5.6 commit b0f667ea5a36a0c07519bde14526a933dec10452 Author: Ivo Roylev Date: Tue May 23 11:24:23 2017 +0300 Bug# 25998635: Client does not escape the USE statement Postfix: On *NIX platforms backtick (`) carries a special meaning under shell, so it needs to be escaped commit edc3c8475f369bb692ddb3c389e63b0b41792f3c Author: Lars Tangvald Date: Fri May 19 09:05:11 2017 +0200 Bug#26100488 MAIN.MYSQL_NOT_WINDOWS TEST FAILS ON UBUNTU 17.10 The "unreasonably high" file limit of 1M is within Ubuntu 17.10's hard limit, causing the test to fail. Increased to 10M commit 291c302032c3a8ad1507b4516bffb66220ea2120 Author: Lars Tangvald Date: Mon May 15 08:40:51 2017 +0200 Bug#26002288 SERVER INSTALL FAILS AFTER AKONADI-BACKEND-MYSQL ON UBUNTU 17.04 * Server package now conflicts with native client packages. * Client package now conflicts with native server packages. commit 8c4b4ce6ccd1db06648c58dcefe04d51a0c1ed52 Author: Lars Tangvald Date: Fri May 12 09:01:25 2017 +0200 Bug#26048433 INCONSISTENT VARIABLE USE IN PACKAGING/DEB-IN/DEB_NDB.CMAKE Fixed inconsistent variable use in ndb import file. The file was using both ${DEB_PRODUCTNAME} and @DEB_PRODUCTNAME@, and the latter fails a check on cmake policy CMP0053. commit 9d6f7291e83e39fde20ea4294080b335800c409b Merge: 2895ffa 1cc7e9f Author: Harin Vadodaria Date: Tue May 23 07:16:14 2017 +0200 Merge branch 'mysql-5.6' into mysql-5.7 commit 1cc7e9f7695ce58bfa8b536112f1e4cfdbe5bc1a Merge: 6f7d4f1 dec932d Author: Harin Vadodaria Date: Tue May 23 07:15:54 2017 +0200 Merge branch 'mysql-5.5' into mysql-5.6 commit dec932d3930cfe7b73aff5d7b1a186883bc83795 Author: Harin Vadodaria Date: Tue May 23 07:14:33 2017 +0200 Bug#25988681: USE-AFTER-FREE IN MYSQL_STMT_CLOSE() Description: If mysql_stmt_close() encountered error, it recorded error in prepared statement but then frees memory assigned to prepared statement. If mysql_stmt_error() is used to get error information, it will result into use after free. In all cases where mysql_stmt_close() can fail, error would have been set by cli_advanced_command in MYSQL structure. Solution: Don't copy error from MYSQL using set_stmt_errmsg. There is no automated way to test the fix since it is in mysql_stmt_close() which does not expect any reply from server. Reviewed-By: Georgi Kodinov Reviewed-By: Ramil Kalimullin commit 2895ffae55b4ab96748faf2eb3ab0b9331abbab5 Merge: a326f87 6f7d4f1 Author: Shishir Jaiswal Date: Tue May 23 10:25:19 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 6f7d4f1cbfcba58f7f0762bcb0376bf53bae3842 Merge: 26deac8 669d6be Author: Shishir Jaiswal Date: Tue May 23 10:24:12 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 669d6be28901eecf9965a69ad546a74ec6570658 Author: Shishir Jaiswal Date: Tue May 23 10:22:33 2017 +0530 Bug#16212207 - LOAD XML INFILE PERFORMANCE WITH INDENTED XML Post-push fix for build failure on Linux machine sles11-x86-64bit commit a326f870a605a6c9926a706d6d23354c1679467c Author: Neha Kumari Date: Thu May 11 15:17:22 2017 +0530 BUG#24590891: RESTARTING A SLAVE AFTER SEEDING IT WITH A MYSQLDUMP LOSES ITS POSITION Background: SET GTID_PURGED will set the correct GTID_PURGED value in memory and persist it in mysql.gtid_executed. mysqldump is supposed to output SET GTID_PURGED statements that cause the restored server to have GTID_PURGED equal to the dumped server's GTID_EXECUTED. Problem: With gtids enabled, mysqldump would first write a SET GTID_PURGED statement and then write statements that recreate the mysql.gtid_executed table to an exact copy of the dumped server's mysql.gtid_executed table. Therefore, the table would hold the wrong value for GTID_PURGED. This was not seen immediately because GTID_PURGED is cached in memory. But after a restart, GTID_PURGED is re-read from the table, and then it would be set to the wrong value. Fix: Make mysqldump exclude mysql.gtid_executed from the dump. commit 4c2413e646f82bcc22fcba0a564403e3db2feb4e Author: Daogang Qu Date: Tue May 23 08:37:25 2017 +0800 Bug #19594845 INCIDENT LOG EVENTS SHOULD HAVE UNIQUE GTIDS WHEN GTID MODE IS ON - post fix Fix a werror on el7-x86-64 and a docxygen issue. commit d56a1c37217528ce3f58e7d3bdc972c718119cb0 Merge: 272bc22 26deac8 Author: Ivo Roylev Date: Mon May 22 18:45:23 2017 +0300 Merge branch 'mysql-5.6' into mysql-5.7 commit 26deac81617a15e903a780a02a71d574ffc3ac16 Merge: b782314 effdd36 Author: Ivo Roylev Date: Mon May 22 18:38:36 2017 +0300 Merge branch 'mysql-5.5' into mysql-5.6 commit effdd36dd351c51d2284ab77772416ef32750cf7 Author: Ivo Roylev Date: Mon May 22 15:52:00 2017 +0300 Bug# 25998635: Client does not escape the USE statement When there are quotes in the USE statement, the mysql client does not correctly escape them. The USE statement is processed line by line from the client's parser, and cannot handle multi-line commands as the server. The fix is to escape the USE parameters whenever quotes are used. commit 272bc229b09099f56f94e1521937b486a7aa96cf Author: Hemant Dangi Date: Mon May 22 14:22:22 2017 +0530 BUG#26078602: BACKPORT BUG#25574200 TO 5.7 Issue: ====== For a given below scenario where S1 and S2 are in Group Replication in Single Primary Mode and S3 and S2 are in asynchronous replication. In Group Replication between S1 and S2, S1 acts as Primary and S2 as secondary. In Asynchronous Replication between S3 and S2, S3 acts as master and S2 as slave. --Single Primary Mode-- | | Primary Secondary S1<------------------->S2<--------------------S3 Group Replication Async Replication Now issue comes when any data is inserted in S3 which gets replicated to S2 which has super_read_only mode active due to single primary mode. But super_read_only mode only prohibits client updated and so it can get data from master. And as S1 and S2 are in Group Replication data gets through to S1 from a read-only member. Resolution: =========== Don't allow asynchronous channel to start on secondary when group replication is in single primary-mode. Don't allow group replication to start on single primary-mode when asynchronous replication channels are running. Note: This is a backport of Bug#25574200 patch from mysql-8.0. commit d0a749e19b5ade9c9935db30d249fee2ea4ed688 Author: Arun Kuruvila Date: Mon May 22 16:08:02 2017 +0530 Bug #25452210: SETTING _SSL_MODE=REQUIRED BEFORE _TLS_VERSION DOWNGRADES _SSL_MODE Description:- Setting of some of the ssl options downgrades SSL_MODE option value. Fix:- All implicit SSL_MODE settings are removed. commit 2f5d02493cbfb275662d3e86a9a520cac597ee06 Author: Daogang Qu Date: Mon May 22 15:59:06 2017 +0800 Bug #19594845 INCIDENT LOG EVENTS SHOULD HAVE UNIQUE GTIDS WHEN GTID MODE IS ON - post fix Fix a compilation error completely. commit cebd67983a71f903bfc874c3f3e567c4d31a8c2e Author: Daogang Qu Date: Fri May 19 18:10:20 2017 +0800 Bug #19594845 INCIDENT LOG EVENTS SHOULD HAVE UNIQUE GTIDS WHEN GTID MODE IS ON - post fix Fix a compilation error on some platforms. commit e5af4e0843375fdafa33c2d3677c239fa6aa28df Author: Aditya A Date: Fri May 19 10:48:55 2017 +0530 Bug #26089518: SPORADIC FAILURE OF INNODB.INNODB-ISOLATION Problem ------- The results diff is because the explain output of the query sometimes gives the number of rows slightly different that what is stored in result file. This is because the row count variable provided by the explain is merely a estimate and can vary. FIX --- As done in other parts of test case we have we are ignoring the number of rows returned by the explain query. We make sure that plans are not changed by using analyze. [ #rb 16267 Pushing on behalf Sree Harsha ] commit 11ad3e0cd7ac2af639f89cbb82f988b7cd5322ad Author: Daogang Qu Date: Fri May 19 09:23:30 2017 +0800 Bug #19594845 INCIDENT LOG EVENTS SHOULD HAVE UNIQUE GTIDS WHEN GTID MODE IS ON Currently, if any Incident event occurs that breaks RPL, the incident is binlogged without GTIDs. Due to this, if user wants to skip the Incident event through general commands of GTID i.e. 'set gtid_next=; begin; commit;', user cannot. User has to take approach of setting the relaylog file and relaylog positions to post incident_log_events to skip such incidents. Specially, when autoposition is ON, user has to stop the autoposition, then set the relaylog file/pos and then set it back to ON. To fix the problem, we write the Incident event into stmt_cache, so that a GTID is generated and written for it prior to flushing the stmt_cache, and make the slave applier work with the change. Then users can skip the Incident event through general commands of GTID i.e. 'set gtid_next=; begin; commit;'. Remove testing purpose code at sql/parser.cc, since we don't have a real case that generates an incident log event before writing the real event to the binary log. rpl_skip_incident.test and rpl_incident.test are removed, since the related testing purpose code at sql/parser.cc is removed and skipping incident on slave is tested by the two new added test when gtid mode is on and by rpl.rpl_stm_binlog_max_cache_size when gtid mode is off. binlog_incident_ignore.test and binlog_incident.test are updated with an incident caused by partially failed GRANT statement. commit d2d58885017b505ef02969307457abb3191a04ef Author: Thirunarayanan Balathandayuthapani Date: Thu May 18 17:47:30 2017 +0530 - Post-push fix to avoid truncate_debug failure in release build commit 8a1c8d2a02dfeacc3d59ed67b499273c6f8f13cd Merge: e75b739 b782314 Author: Aakanksha Verma Date: Thu May 18 14:32:55 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit b782314a1a623a689e516dce8c447b2ca8b106c3 Author: Aakanksha Verma Date: Thu May 18 14:31:01 2017 +0530 Bug #24605783 MYSQL GOT SIGNAL 6 ASSERTION FAILURE PROBLEM The in memory record gets corrupted while memcached plugin tries to fetch record because the innodb_api_rec member of row prebuilt structure is made to point to physical address of record directly while searching rows from mysql which might get corrupted meanwhile causing the assertion failure. FIX Probable fix is to do a memcopy of the physical record and use that to fetch records in ib_cursor_read_row. Reviewed-by: Jimmy Yang RB: 15496 commit e75b739b940d68e77da99d233070628732779a6a Author: Thirunarayanan Balathandayuthapani Date: Thu May 18 14:09:23 2017 +0530 Bug #25357789 INNODB: LATCH ORDER VIOLATION DURING TRUNCATE TABLE IF INNODB_SYNC_DEBUG ENABLED Analysis: ======== (1) During TRUNCATE of file_per_table tablespace, dict_operation_lock is released before eviction of dirty pages of a tablespace from the buffer pool. After eviction, we try to re-acquire dict_operation_lock (higher level latch) but we already hold lower level latch (index->lock). This causes latch order violation (2) Deadlock issue is present if child table is being truncated and it holds index lock. At the same time, cascade dml happens and it took dict_operation_lock and waiting for index lock. Fix: ==== 1) Release the indexes lock before releasing the dict operation lock. 2) Ignore the cascading dml operation on the parent table, for the cascading foreign key, if the child table is truncated or if it is in the process of being truncated. Reviewed-by: Jimmy Yang Reviewed-by: Kevin Lewis RB: 16122 commit c492e2d670f1abdc62fa80ee6499bdfb4da5d6ed Author: Thirunarayanan Balathandayuthapani Date: Thu May 18 13:53:27 2017 +0530 Bug #24961167 CONCURRENT INSERT FAILS IF TABLE DOES REBUILD Analysis: ========= During alter table rebuild, InnoDB fails to apply concurrent insert log. If the insert log record is present across the blocks then apply phase trying to access the next block without fetching it. Fix: ==== During virtual column parsing, check whether the record is present across the blocks before accessing the virtual column information. Reviewed-by: Jimmy Yang RB: 16243 commit 30003da7e0e518fcaca9f94c92aa1fef2366eebe Author: Tor Didriksen Date: Wed May 3 10:29:51 2017 +0200 WL#9053: Group Replication: Push Group Replication Plugin to mysql-trunk Build with gcc (GCC) 5.4.0 error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] #define number_is_valid_port(n) ((n) > 0 && (n) <= UINT16_MAX) Fix: cast UINT16_MAX to int (cherry picked from commit 940e828bb8213624aea163d45ada65871c15ea12) commit 53d584f8d43aef89dca67d69b4cb7cd325179c53 Author: Karthik Kamath Date: Wed May 17 18:28:02 2017 +0530 BUG#25209512: CURRENT_TIMESTAMP PRODUCES ZEROS IN TRIGGER Post push fix: Valgrind reported errors because INSERT and LOAD operations compared the old data record (TABLE::record[1]) and the new data record (TABLE::record[0]). New data record is initialized only for UPDATE operations. A check is now introduced to ensure only UPDATE operations compare records. commit cf901b607cc165911d7b21ece5d0ad45fff92f12 Author: Ajo Robert Date: Tue May 16 15:34:34 2017 +0530 Bug#24829050 INDEX_MERGE_INTERSECTION OPTIMIZATION CAUSES WRONG QUERY RESULTS Analysis ======== When using index_merge for InnoDB tables with a primary key, the server does not set read_set correctly for index scan after optimization. This does not cause a problem in other cases because InnoDB does create templates during first call to index_read(). Innodb uses sql_stat_start to decide initializing templates in index_read(). sql_stat_start is set to false at handler creation and set to true during first call to index_read(). In case of sub-query, during optimization we scan the index and reset it for index read for execution. Further call to index_read() does uses the templates created at reset as inited is set to true during optimize phase. This leads to InnoDB not reading primary key of the rows and furthur leads to mismatch during index merge. Fix ==== Provide correct read_set for each index during index_reset to innodb for creating the right column template for reading. commit a263e14b41f34ac4c11b36a60fe76b6ab3b0a9ef Author: Terje Rosten Date: Tue May 16 11:54:27 2017 +0200 BUG#25420001 KEYRING_OKV PLUGIN FAILED TO WORK IF SELINUX IN ENFORCING MODE ON EL PLATFORMS Correct SELinux context must be set on all files in keyring directory, add recursive option to enable this. commit d7cca9c54c8175a725116251165c1cfa5409e15e Author: Ivo Roylev Date: Mon May 15 16:22:17 2017 +0300 Bug #22834591: unused-local-typedef warnings from boost 1.59 Description: Boost version 1.59 produces lots of unused-local-typedef warnings. Boost version 1.64 (used in version 8) does not. Copying from client/dump/CMakeList.txt I add the compiler flag to ignore these warnings. Testing Done: Compilation on linux: Scanning dependencies of target keyring_file [ 51%] Building CXX object plugin/keyring/CMakeFiles/keyring_file.dir/common/keyring_key.cc.o [ 51%] Building CXX object plugin/keyring/CMakeFiles/keyring_file.dir/common/keys_container.cc.o [ 51%] Building CXX object plugin/keyring/CMakeFiles/keyring_file.dir/common/keyring_impl.cc.o [ 51%] Building CXX object plugin/keyring/CMakeFiles/keyring_file.dir/keyring.cc.o [ 51%] Building CXX object plugin/keyring/CMakeFiles/keyring_file.dir/hash_to_buffer_serializer.cc.o [ 51%] Building CXX object plugin/keyring/CMakeFiles/keyring_file.dir/buffered_file_io.cc.o [ 51%] Building CXX object plugin/keyring/CMakeFiles/keyring_file.dir/file_io.cc.o [ 51%] Building CXX object plugin/keyring/CMakeFiles/keyring_file.dir/buffer.cc.o [ 51%] Linking CXX shared module keyring_file.so [ 51%] Built target keyring_file [ 51%] Built target validate_password Compilation on Windows succeeds too. mtr on Linux and Windows RB:16241 commit 7af24039d879a037d71dc8821ce39c95118155e9 Merge: ef2c8c9 9606f01 Author: Shishir Jaiswal Date: Tue May 16 13:55:40 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 9606f011ef4d7a18ae6c464cacfec79eda6ba3bd Merge: 50096c5 ceea4b8 Author: Shishir Jaiswal Date: Tue May 16 13:50:41 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit ceea4b825ddb974b4723bf6f645fc73cac7aaf41 Author: Shishir Jaiswal Date: Tue May 16 13:48:52 2017 +0530 Bug#16212207 - LOAD XML INFILE PERFORMANCE WITH INDENTED XML DESCRIPTION =========== LOAD XML INFILE performance becomes painfully slow if the tags' value has any space(s) in between them. They're usually kept intentionally for indentation purpose. ANALYSIS ======== The extra spaces are calling clear_level() many a times which is having overhead of clearing taglist etc. This can be avoided altogether by skipping all such spaces. FIX === Trim all the starting whitespaces from the value before passing it to read_value() commit ef2c8c996dfd73b6f7abd8b7e152473760f327f6 Merge: db73420 50096c5 Author: Tor Didriksen Date: Tue May 16 09:32:38 2017 +0200 Merge branch 'mysql-5.6' into mysql-5.7 commit 50096c53b4fe5bd3c8dd59e442ac3229418d08b0 Merge: 2640dab dc6a5d8 Author: Tor Didriksen Date: Tue May 16 08:58:21 2017 +0200 Merge branch 'mysql-5.5' into mysql-5.6 commit dc6a5d87d1cd6893dc86fc5554329a70b2864866 Author: Tor Didriksen Date: Wed Apr 26 12:45:38 2017 +0200 Bug #25436469: BUILDS ARE NOT REPRODUCIBLE Backport to 5.5 Current MySQL builds, even on Pushbuild, are not reproducible; they return different results depending on which directory they are built from (and Pushbuild uses several different directories). This is because absolute paths leak into debug information, and even worse, __FILE__. The latter moves code around enough that we've actually seen sysbench changes on the order of 4% in some tests. CMake seemingly insists on using absolute paths, but we can insert our own layer between CMake and GCC to relativize all paths. Also give the right flags to get debug information reproducible and turn off build stamping. This makes the mysqld build 100% bit-for-bit reproducible between runs on my machine, even when run from different directories. commit db73420a73ea6d75e7425d113291d7b8ad98ee9b Author: Karthik Kamath Date: Tue May 16 11:30:49 2017 +0530 BUG#25209512: CURRENT_TIMESTAMP PRODUCES ZEROS IN TRIGGER Post push fix for test failure. commit fb0cfd51c837c58954e76a273be5254d6849b6ec Merge: 19ca9ea 2640dab Author: Aakanksha Verma Date: Tue May 16 09:50:07 2017 +0530 Null Merge branch 'mysql-5.6' into mysql-5.7 commit 2640dabf07bc74af296a576d2e0dd3f9aa38bc25 Author: Aakanksha Verma Date: Tue May 16 09:47:45 2017 +0530 Bug #25332330 COUNT(*) ON INNODB SOMETIMES RETURNS 0 PROBLEM When using Index merge optimization current partitioning code in 5.6 does a memcpy instead of column of copy of the columns on which index read is done . Because of which wrong record gets copied and optimizer thinks there is no matching record as per the search criteria returning 0 for the count(*) value . The problem is sporiadic as the plan is not always using intersection . SOLUTION Added a similar column copy function that would do the copy of required column and not overwrite the other as in 5.7. Reviewed-by: Debarun Banerjee RB: 16157 commit 19ca9eab9aedcca927ab90316b8eb369ceb7bcbb Author: Venkatesh Duggirala Date: Tue May 16 07:14:59 2017 +0530 Bug#21280753 MTS MUST BE ABLE HANDLE LARGE PACKETS WITH SMALL SLAVE_PENDING_JOBS_SIZE_MAX Post push fix (Test designed in mysql-5.6 where we have only slave_parallel_type=database type). Including that restriction in the test. commit 8daf83a2bf7278e90f2053bbf96802eba9cdfbe8 Author: Karthik Kamath Date: Mon May 15 18:30:35 2017 +0530 BUG#25209512: CURRENT_TIMESTAMP PRODUCES ZEROS IN TRIGGER ANALYSIS: ========= Zero date(0000-00-00 00:00:00) is generated by the 'BEFORE INSERT' trigger defined on a table with TIMESTAMP or DATETIME field having the default as CURRENT_TIMESTAMP or NOW(). Similar behavior is observed with LOAD INFILE queries and also with BEFORE UPDATE triggers. Whenever a 'BEFORE INSERT' trigger is defined on a table and an insert happens on it, the trigger body is executed first and then the new record is written into the table. If the trigger body tries to utilize the default values of the fields in the table, the values used will be incorrect. Brief working of 'AFTER INSERT' triggers: 1. Set function defaults for the table. 2. Write record into the table. 3. Process the trigger defined on it. 3.1 Execute the trigger body. Brief working of 'BEFORE INSERT' triggers: 1. Process triggers defined on the table. 1.1 Execute the trigger body. 2. Set function defaults for the table. 3. Write record into the table. Hence when a 'BEFORE INSERT' trigger is defined for a table, the evaluation of default functions is not done for the table before processing the trigger. Thus the default values of the table are not updated and if the trigger body tries to utilize these values, incorrect result will be obtained. FIX: ==== We are now evaluating the function defaults for a table before processing the 'BEFORE INSERT' or 'BEFORE UPDATE' triggers defined on it. commit e9f9ef11f0b9bf1e1b2755a024ef5f72077b51b7 Author: Hemant Dangi Date: Mon May 15 17:47:47 2017 +0530 Bug#26036570: NEW PRIMARY IS NOT ELECTED BASED ON LOWEST ID IN LEXICOGRAPHICAL ORDER Issue: The member having lowest server uuid is selected as primary leader in single primary mode election. But that got reversed in Bug#25876807 push, so now its electing primary as member having highest server uuid. Solution: The sorting method comparator_group_member_uuid should sort in ascending lexicographical order instead of descending lexicographical order. commit 2e11c90c23833e33966ddb6b7b22c5466b4d8543 Author: Terje Rosten Date: Mon May 15 12:43:24 2017 +0200 Bug#26077226 DATABASE INITIALIZE FAILING IF SELINUX IS ENFORCING MODE ON EL6 Under SELinux mysqld can't read files under /tmp, switch directory to /var/lib/mysql-files which have correct SELinux context. commit b26599068505aba0862d7278425e31db80b01d3b Author: Lars Tangvald Date: Mon May 15 11:01:49 2017 +0200 Bug#24559588 CANNOT RUN MULTIPLE MYSQL INSTANCES UNDER SYSTEMD Post-push fix: One of the help script functions has a syntax error commit 825808ad4c379f3431ed375eeaa7a1742dec76d7 Author: Harin Vadodaria Date: Mon May 15 08:56:15 2017 +0200 Bug#23289541: THE PROXIES_PRIV TABLE IS NOT REPLICATED Description: PROXY grants are not properly replicated. This fix makes sure that query rewrite is done properly. Reviewed-By: Georgi Kodinov Reviewed-By: Luis Soares commit d7d95e6c081cdc6bd851992ddfc2e7d7789648b4 Merge: a1f69c2 0c1e512 Author: Nisha Gopalakrishnan Date: Sat May 13 10:26:18 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 0c1e512b175c562376a9d8cd25d567fb6f0d77bd Merge: 02b3992 94411a0 Author: Nisha Gopalakrishnan Date: Sat May 13 10:25:05 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 94411a02b27a3d3c9d1b5f6e55a20bb0f5ce61bb Author: Nisha Gopalakrishnan Date: Sat May 13 10:22:46 2017 +0530 BUG#25451091:CREATE TABLE DATA DIRECTORY/INDEX DIRECTORY SYMLINK CHECK RACE CONDITIONS Post push patch to fix test failure. commit a1f69c29b5540af018631d6823ffb379d7cbdd43 Merge: 0dcc766 02b3992 Author: Venkatesh Duggirala Date: Sat May 13 07:27:20 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 02b39926e3317ffbc9f6300e06de85f758f82509 Author: Venkatesh Duggirala Date: Sat May 13 07:25:42 2017 +0530 Bug#21280753 MTS MUST BE ABLE HANDLE LARGE PACKETS WITH SMALL SLAVE_PENDING_JOBS_SIZE_MAX Problem: MTS is unable to process an event which is smaller than slave_max_allowed_packet but bigger than slave_pending_jobs_size_max. Analysis and Fix: In the current code , slave_pending_jobs_size_max is hard limit i.e., any packet greater than slave_pending_jobs_size_max is rejected by Coordinator. Slave SQL thread will be stopped with error ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX. Now in this patch, this limitation is changed to soft limit. If there is an event whose size falls in between soft limit (slave_pending_jobs_size_max) and the hard limit (slave_max_allowed_packet), then we consider it as big event and MTS coordinator will wait till all workers queue becomes empty. After it is empty, then this big event will be processed. i.e., only one event of this size will be executed at any given time. All the next events ( big or small) will wait in the coordinator for this big event to finish it's execution. IO thread has already having logic to protect event size with slave_max_allowed_packet size (as the hard limit). When IO thread is downloading the event from the master, if the event size is greater than slave_max_allowed_packet size, IO thread stop by throwing error ER_NET_PACKET_TOO_LARGE. Hence there are no changes required there. commit 0dcc7669851e6fa00a7291d2f6cff462e8aabbb0 Author: Venkatesh Duggirala Date: Fri May 12 12:23:32 2017 +0530 BUG#25040331: INTERLEAVED XA TRANSACTIONS MAY DEADLOCK SLAVE APPLIER WITH REPEATABLE READ Problem and Analysis -------------------- Because of the use of MTS and/or XA transactions, the order statements from distinct transactions were originally applied on the master may not be the same order they are applied on the slave. On those cases, using RBR with a transaction isolation level other than READ COMMITTED might might lead to blocking conditions that didn't happened on the original workload (see BUG#25082593). Fix --- We are now using a flag on the [Anonymous_gtid|Gtid]_log_event stating if the transaction might have changes logged with statements. When this flag is set (default for non-fixed servers) the slave will not change the applier thread transaction isolation level. When the flag is not set, the applier will set the transaction isolation level of the current transaction to READ COMMITTED if necessary (it will not change it when the applier session isolation level be equal or less restrictive than READ COMMITTED). In this way, we are forcing that all transactions replicated using row based replication will always use the READ COMMITTED transaction isolation level on the slave side, regardless of any server transaction isolation level configuration. The fix also restored the applier session transaction isolation level after applying a Xid_log_event (after committing a replicated transaction), a XA_prepare_log_event (after preparing a replicated transaction) and in the cases of aborted/failed transactions. The mysqlbinlog dump of a transaction flagged as "rbr_only" will also include a "SET TRANSACTION ISOLATION LEVEL" statement when dumping the GTID event. Changed files: @ libbinlogevents/include/control_events.h We gave a meaning to the already logged flag information. @ libbinlogevents/src/control_events.cpp Processed the GTID flags, collecting the "might_have_sbr_stmts" info. @ plugin/replication_observers_example/replication_observers_example.cc @ rapid/plugin/group_replication/src/observer_trans.cc @ rapid/plugin/group_replication/src/handlers/certification_handler.cc Fixed calls to GTID constructor. @ sql/binlog.cc Created a new flag at "binlog_cache_data" named "with_sbr" that is set true when the cache is fed with non-terminal query event. Created a new flag at "binlog_cache_data" named "with_rbr" that is set true when the cache is fed with Table_map or Rows event. Created also the "might_have_sbr_stmts" function, that returns false for "pure RBR" transactions. This new function was implemented for the "binlog_cache_data". Added the logic to reset and set the new flags at "binlog_cache_data::reset" and "binlog_cache_data::write_event", and also to preserve the flags upon "SAVEPOINT/ROLLBACK TO SAVEPOINT". Made "MYSQL_BIN_LOG::write_gtid" to consider the cache information about the binary log content when creating the Gtid_log_event. @ sql/log_event.h Updated "Query_log_event::is_trans_keyword()" to recognize XA transactions terminal keywords that should not be considered as statements changing content. Created a new function "Log_event::is_sbr_logging_format()" that will return true if the event was/has to be logged using SBR and does not contains a transaction control statement. Created a new function "Log_event::is_rbr_logging_format()" that will return true if the event was/has to be logged using RBR. @ sql/log_event.cc We will stop the applier with an error when we assumed the transaction as "rbr_only" and some statement changing content be applied. Restored the applier session transaction isolation level after applying a Xid_log_event (after committing a replicated transaction), a XA_prepare_log_event (after preparing a replicated transaction) and in the cases of aborted/failed transactions. "Gtid_log_event::print" will now also print "rbr_only=[yes|no]" when dumping a Gtid_log_event with mysqlbinlog. It will also include a "SET TRANSACTION ISOLATION LEVEL READ COMMITTED" statement when dumping the GTID event with "rbr_only=yes". "Gtid_log_event::write_post_header_to_memory" now computes the GTID flags field instead of just writing "1" to it. "Gtid_log_event::do_apply_event" now set the transaction isolation level to READ COMMITTED when the "might_have_sbr_stmts" flag be false. Note that we don't change the isolation level for skipped GTID and when the isolation level be less restrictive than READ COMMITTED. commit b58cd64f5891887b0c6e4dd8978c74c27bc8a48a Author: Anibal Pinto Date: Fri May 12 10:59:41 2017 +0200 BUG#25793366: GR NODE IS IN RECOVERING STATE IF BINLOG_CHECKSUM CONFIGURED ON RUNNING SERVER [Post-Fix] Missing two mtr suppression on gr_binlog_checksum_failure test commit 42b81e003b3753497fb4f19cedc320d3b3c9dc2f Merge: 61badeb dbf1ee1 Author: Nisha Gopalakrishnan Date: Fri May 12 09:59:10 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit dbf1ee19fbf13f4cdd0606b054635d1c0db74097 Merge: 8bf8ef0 0530096 Author: Nisha Gopalakrishnan Date: Fri May 12 09:55:35 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 0530096e00884220388f4a575a6aa0852bad7b61 Author: Nisha Gopalakrishnan Date: Fri May 12 09:47:48 2017 +0530 BUG#25451091:CREATE TABLE DATA DIRECTORY / INDEX DIRECTORY SYMLINK CHECK RACE CONDITIONS ANALYSIS: ========= A potential defect exists in the handling of CREATE TABLE .. DATA DIRECTORY/ INDEX DIRECTORY which gives way to the user to gain access to another user table or a system table. FIX: ==== The lstat and fstat output of the target files are now stored which help in determining the identity of the target files thus preventing the unauthorized access to other files. commit 61badeb9b25c3f0790572ecd4909bf77114987fc Author: Anibal Pinto Date: Fri Apr 28 09:33:51 2017 +0200 BUG#25793366: GR NODE IS IN RECOVERING STATE IF BINLOG_CHECKSUM CONFIGURED ON RUNNING SERVER When node configured in GR setup with binlog_checksum='NONE' on a running server, then start group replication return success but node is in RECOVERING mode forever and server shutdown hangs at this moment. Only option is kill the server. The Continuation object used on the plugin applier pipeline to wait for the applications of events was the source of the issue. Multiple invocations of the waiting for execution method when there was a previous error lead to a stuck pipeline. As a solution the waiting method no longer waits when there is a known previous error. commit 65b37c854653101f88dd0f2f8d9e7c47aa91f3ae Author: Norvald H. Ryeng Date: Thu May 11 14:56:28 2017 +0200 WL#10166 Require WKB input in WKB parsing functions Post push fix for failing NDB testcase. commit b6d6b7ba570f2aa5327747ef8df515ac6eec57a1 Author: Yashwant Sahu Date: Wed May 10 13:56:35 2017 +0530 WL #5847: LDAP, fixed sasl test cases and some cleanup. commit f2d9e31509ad95fc6b8b4baeb4d65cb52f3010af Author: Jens Even Berg Blomsøy Date: Wed May 10 09:36:34 2017 +0200 WL#10166 test fix commit 3d7a7ea29c83b54687462434117c994c655d3b7a Author: Lars Tangvald Date: Mon May 8 10:03:37 2017 +0200 Bug#24559588 CANNOT RUN MULTIPLE MYSQL INSTANCES UNDER SYSTEMD Added new service file for mysql@.. services. This service is disabled by default. Updated systemd scripts to take instance info when checking config, etc. Known issues: * User needs to manually update/disable apparmor profile for new data locations * mysql@-instances must be manually stopped before uninstallation or upgrade commit c347aec34c90858181346e227f92b1e8a034b26d Author: Daniel Horecki Date: Tue May 9 17:42:08 2017 +0200 Bug #25814143: ADD SUPPORT FOR RUNNING UNITTESTS FROM SPEC FILES Don't fail build when unittests fail. commit 30c678a2655385708886d5034a7f31453f45aca5 Author: Daniel Horecki Date: Mon May 8 17:13:44 2017 +0200 Bug #25814143: ADD SUPPORT FOR RUNNING UNITTESTS FROM SPEC FILES Add separate setting to run unittest while building RPM. commit 478d3887784f67cce06c49be21fb4163588feb8d Author: Thirunarayanan Balathandayuthapani Date: Mon May 8 10:28:58 2017 +0530 Bug #24960450 CONCURRENT DELETE DOESN'T APPLY DURING TABLE REBUILD Analysis: ======== During alter table rebuild, InnoDB fails to apply concurrent delete log. Parsing and validation of merge record happens while applying the log operation on a table. Validation goes wrong for the virtual column. Validation assumes that virtual column information can't be the end of the merge record end. Fix: ==== Virtual column information in the merge record can be end of the merge record. Virtual column information is written at the end for row_log_table_delete(). Reviewed-by: Satya Bodapati RB: 16155 commit 9d03e7548ed8c2789cbc155fc8825513dd1ead85 Author: Nisha Gopalakrishnan Date: Thu May 4 16:56:08 2017 +0530 BUG#25385334: MYSQL 5.7 ERROR WITH ALTER TABLE MODIFY SYNTAX AND DATETIME TYPE. Analysis: ======== The problem reported in the bug is: ALTER TABLE MODIFY operation with FIRST/AFTER clause for DATE/DATETIME and GEOMETRIC types to modify the position of columns failed with an error. ALTER TABLE operations for DATE/DATETIME and GEOMETRIC types require additional handling. The cases where an error should be reported is discussed below: a) When a new NOT NULL column of type DATE/DATETIME/GEOMETRIC without a default value is added to a table which is not empty, a zero date and empty string is used. Under NO_ZERO_DATE and STRICT SQL mode, zero date is not allowed. An empty string is an invalid value for GEOMETRIC type. b) When a column of different data type which can hold NULL value is changed/modified to GEOMETRIC NOT NULL type, the NULL value is converted to a empty string which is invalid value for GEOMETRIC types. Note that data type conversion of existing columns is possible only using COPY algorithm. Attempt to change/modify datatypes of existing columns using INPLACE algorithm is not supported and will fail with an error. c) GEOMETRIC/DATE/DATETIME can be modified from NULLABLE columns to NOT NULL using COPY and INPLACE algorithm. When the table holds NULL value, an error is reported at SQL layer for COPY algorithm, while the SE enforces the restriction for INPLACE algorithm. Patch for bug19880316 utilized the flag 'error_if_not_empty' to enforce the restrictions for GEOMETRIC types listed above for COPY algorithm and also handled the case of ALTER TABLE, ADD column for INPLACE algorithm. The patch for bug19880316 introduced a bug-ALTER TABLE MODIFY/ CHANGE operation with FIRST/AFTER clause for GEOMETRIC types using COPY/INPLACE algorithm to modify the position of columns failed with an error. The scope of the bug was extended to DATE/DATETIME types with the bug fix for bug16888677 which is now raised in the current bug report. The flag 'error_if_not_empty' is set in 'mysql_prepare_alter_table()' when: * Field is DATE/DATETIME or GEOMETRIC. * Field is NOT NULL and DEFAULT value is not supplied. The flag is later utilized to report error "Invalid use of NULL value" in mysql_inplace_alter_table() if: * The MDL lock is not upgraded from SU to block writes. * Table is not empty. The ALTER operation reported in the bug report can be performed using INPLACE algorithm which does not require the SE to block writes. Hence the MDL lock is not upgraded. The flag was incorrectly set for the above ALTER operation which triggered the error. Fix: ==== a) The flag 'error_if_not_empty' is set when new NOT NULL columns of DATE/DATETIME/GEOMETRIC types are added.(Note that the other case where the flag is set when datatype is modified/changed to GEOMETRIC NOT NULL from NON-GEOMETRIC types using COPY algorithm introduced by patch for bug 19880316). b) Also the check to ensure that MDL lock is upgraded from SU is removed from 'mysql_inplace_alter_table()'. ALTER TABLE, INPLACE algorithm does not support changing/modifying data type. So, the flag 'error_if_not_empty' is set only for ALTER TABLE, ADD which takes an exclusive lock. c) ALTER TABLE, MODIFY/CHANGE using INPLACE algorithm to change columns from NULL to NOT NULL, the validation is pushed down to SE. d) Change in error message is recorded for the test 'alter_spatial_index.test' in innodb_gis since the fix pushes the check during the data validation. commit a8340abe61cc5cde29e71dae26672ebf85c3f560 Merge: c7a5d8f 8bf8ef0 Author: Balasubramanian Kandasamy Date: Thu May 4 16:14:05 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 8bf8ef028050e1f19af059e569c01eb9981628dc Merge: 8f5fdf6 0fcbe53 Author: Balasubramanian Kandasamy Date: Thu May 4 16:07:07 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 0fcbe53be63fd261f729198720a067b08e3a414c Author: Balasubramanian Kandasamy Date: Thu May 4 16:05:04 2017 +0530 Bug#25998285 - ADD MYSQLADMIN DOCKER/MINIMAL SERVER BUILDS - mysqladmin is needed by InnoDB Cluster, add tool to docker/minimal package. commit c7a5d8f0bfe7db79ff0d6b06d11fe2ecd95f31a5 Merge: 5b9b646 8f5fdf6 Author: Venkatesh Duggirala Date: Thu May 4 12:59:58 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 8f5fdf68b435cc802335342d29163a61365530d4 Author: Venkatesh Duggirala Date: Thu May 4 12:57:57 2017 +0530 Bug#24465081 FAILURE IN ATOMIC_* TESTS DUE TO CLEAN-UP ISSUES IN BINLOG_DISKFUL Post-push: Fixing test script windows failure commit 43ccff9b0fdcd116e87ad180f70b1452a0146c66 Merge: 158220b 8ee4de8 Author: Anushree Prakash B Date: Wed May 3 15:17:52 2017 +0000 Merge branch 'mysql-5.5' into mysql-5.6 commit 8ee4de89ce63c98af2f88cc9dcc528110530107b Author: Anushree Prakash B Date: Wed May 3 15:16:08 2017 +0000 Bug#25340722 - PRINT BINARY DATA AS HEX IN THE MYSQL CLIENT (CONTRIBUTION) DESCRIPTION: ============ Binary data should be printed as hex in the mysql client when the option binary-as-hex is enabled. ANALYSIS: ========= The fix deals only with mysql command line client. It does not change, at all, the data sent to the applications. Printing binary data as hex also allows to use the output in the where clause of the query. FIX: ==== A new option 'binary-as-hex' is introduced to print the binary contents as hex in the mysql client. The option is disabled by default. When the option is enabled, we convert the binary data to hex before printing the contents irrespective of whether it is in tabular, xml or html format. commit 5b9b646e86fcea43d78b7a39296735907936d376 Author: Aditya A Date: Wed May 3 17:43:21 2017 +0530 Bug #24929748 REVERSE SCAN ON A PARTITIONED TABLE DOES ICP CHECK INCORRECTLY, CAUSING SLOWDOWN PROBLEM Partition helper functions assume that end range condition will be checked by the server and reset the end range condition causing innodb to do scans beyond the end range condition passed by ICP from optimizer. FIX Remove the redundant resetting of end ranges in partition helper functions [ #rb 15977 approved by deb ] commit 0314d621f0cc87e401a67a8de4471706bb7f8792 Merge: 21093af 43ccff9 Author: Anushree Prakash B Date: Wed May 3 15:20:17 2017 +0000 Merge branch 'mysql-5.6' into mysql-5.7 commit 21093af29ac1018f3759b59e8fbb976dc77baef2 Author: Srikanth B R Date: Tue Mar 28 16:42:14 2017 +0530 Bug#25984429 MTR: BACKPORT OPTION --report-unstable-tests TO 5.7 Problem: -------- Various Linux distributions are running the MySQL Test Suite during build. As known, MySQL test suite has some flaky tests. If a build is unlucky and gets a sporadic test failure, it is cancelled and in the worst case, the distribution is blocked from upgrading MySQL to a new one. Even if MTR is run with --retry > 1 and all failed tests pass on retry, exit code from MTR is non zero and build stops. Solution: --------- An MTR option named --report-unstable-tests is added which does the following: - Reports any test which has passed on at least one retry attempt in a separate category called "Unstable tests" in the summary. They will be in the format : (/) - In case all failures are due to unstable tests, it causes MTR to print a warning and terminate with a zero exit code. Note: This is a backport of the patch for Bug#24473420 from mysql-8.0 Reviewed-by: Pavan Naik commit 858f0a827c13aefc3c5484dbe06489ee3a14045f Merge: 9672ff8 158220b Author: Hery Ramilison Date: Tue May 2 19:11:58 2017 +0200 Upmerge of the 5.5.56 build commit 158220bea188b907d08583b2d0ce69f346656245 Merge: 8a0a7e6 8594e1b Author: Hery Ramilison Date: Tue May 2 19:10:30 2017 +0200 Upmerge of the 5.5.56 build commit 8594e1ba1e331b3d001c6ae711d5ee5c27250b80 Merge: a0b48bb a2613a1 Author: Hery Ramilison Date: Tue May 2 19:07:29 2017 +0200 Merge branch 'mysql-5.5.56-release' into mysql-5.5 commit 9672ff891ce835e89f68bd74d37b4dd815e84cf3 Author: Yashwant Sahu Date: Tue May 2 19:56:07 2017 +0530 wl 5847: Windows fixed. commit 5a2eaccb82cdb9bf0b565fd3db065c118a30f3a4 Merge: a462ce1 8a0a7e6 Author: Sreeharsha Ramanavarapu Date: Tue May 2 18:56:44 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 8a0a7e61f0177604f37c73f25cfce6343ae4ab2c Author: Sreeharsha Ramanavarapu Date: Tue May 2 18:54:33 2017 +0530 Bug #25943038: QUERY WITH DERIVED TABLE IS CACHED IN MVCC SCENARIO Issue: ------ Queries with derived tables which used materialization were stored in Query Cache without fully taking into account storage engines for some tables used by them (specifically information for underlying tables of derived table was disregarded). So, cached results for such queries were used without check against SEs which led to stale results sometimes. This problem occurs when: 1) Rows are being inserted into a table (t1 for example) but they haven't been committed yet. Storage engine used is INNODB 2) Query with a derived table contains t1 as a base table. 3) Optimizer has chosen to materialize the derived table. In this case Query Cache returned stale results for the query after transaction commit. Solution: --------- When a derived table is present, no check is performed to make sure that all the base tables qualify to be cached. This has been corrected. If the query qualifies to be cached, then the storage engine will be consulted at cache lookup time. commit a462ce10fa9ac4c7cc0520ecdabbc2d856911a1e Merge: d22f9da 36d17d0 Author: Terje Rosten Date: Tue May 2 12:45:42 2017 +0200 Null-merge from 5.6. commit 36d17d0cf6be996b7e5486e31ad4235b580ba459 Author: Terje Rosten Date: Tue May 2 12:44:54 2017 +0200 BUG#25719975 SHEBANG HARD CODED AS /USR/BIN/PERL IN SCRIPTS, BREAKS ON FREEBSD Post push fix for Solaris. commit d22f9da5e5130d7a2ba8ed06ab3542bbbb52f5d2 Author: Yashwant Sahu Date: Tue May 2 14:24:26 2017 +0530 wl# 5847: ASAN and some more minor fixes. commit 90cae25d881580ad8b6529f688dcbf1aee756d4c Author: Sreeharsha Ramanavarapu Date: Thu Apr 27 19:00:52 2017 +0530 Bug#25287633:GCOLS: INCORRECT BEHAVIOR WITH CHARSET CHANGES Issue: ------ Virtual generated column functions that contain certain string functions can cause problems when there is a change in charset. Steps: 1) Create table t1 with virtual generated column containing string functions that generate strings in the connection character set. 2) SELECT * FROM t1; This step creates the item tree for the generated column. While creating the objects, the table's memroot is used. The flag "permanent_changes_completed" is set to true to indicate that no further permanent changes will take place in the item tree. 3) SET NAMES utf8; Changes the connection's default charset to utf8. 4) SELECT * FROM t1; While re-fixing the generated column items (TABLE::refix_gc_items), it is noticed that the default charset of the result of some string functions doesn't match with other parameters. So a new Item object is created with the correct charset. This new object now replaces the one present in the item tree (created in step 2). But the new object is created on the statement's mem_root and hence will be destroyed at the end of the statement. Thus leaving the generated column's item tree with a dangling pointer. 5) SELECT * FROM t1; While going through the generated column's item tree, dangling pointer strikes. The root cause here is that a conversion due to charsets is required and a new Item creation is required in step 4. This should be avoided. Solution: -------- In the resolve_type phase, some string functions assign the current charset to the Item object. This can return strings in the connection character set. Use the table's charset (mentioned in the DDL) while doing fix_fields. Before fix_fields is called on the generated column's expression, switch to the table's charset. This will side-step any problem with aggregating charsets since it is independent of any charset changes made by the user after the DDL. commit 910f892ab51806d5cd43f2732962e1a20faf33cd Author: Sreeharsha Ramanavarapu Date: Thu Apr 27 16:25:13 2017 +0530 Bug #23573575: GCOLS: INCORRECT BEHAVIOR WITH BLOB IN DML Issue: ------ This problem occurs when: 1) A virtual generated column is of type BLOB and is part of a secondary index. 2) A REPLACE statement tries to update an existing row. The row in the clustered index has the new value but the value of the virtual generated column in the secondary index has not been updated. This can result in incorrect behavior with future DML statements. Root cause: ----------- ha_index_read_map calls update_generated_read_fields. Field_blob object is required here to keep track of the actual value of column 'c'. a b c table->record[1] ==> -------------------------------- | 7 | 7 | ptr_to_blob_value | -------------------------------- || \/ ...................... | | ...................... a b c table->record[0] ==> -------------------------------- | 7 | 13 | ptr_to_blob_value | -------------------------------- || \/ ........ | 13 | ........ table->record[0] was calculated in update_generated_write_fields. update_generated_read_fields tries to re-create the existing row to see if the index's value needs modification. Here it has to use the same blob object referred to above. At the end of update_generated_read_fields : a b c table->record[1] ==> -------------------------------- | 7 | 7 | ptr_to_blob_value | -------------------------------- || \/ ........ | 7 | ........ /\ || a b c table->record[0] ==> -------------------------------- | 7 | 13 | ptr_to_blob_value | -------------------------------- update_generated_read_fields never calls Field_blob::keep_old_value and hence the value is over-written with the current row. This allows the server to mistake that no change is required for the secondary index. This results in a mis-match between the values in the clustered index and the ones in the secondary index. Solution: --------- Effectively what we need is a producer-consumer type model: Whichever function (among update_generated_write_fields and update_generated_read_fields) is called first should set the m_keep_old_value flag to true. The succeeding function (again among the two) should consume the flag. If the flag isn't consumed, at the end of the statement, set it to false. This will avoid issues that arise when, for example an INSERT preceeds an UPDATE. There are other exceptions, like update_generated_write_fields being called from COPY_INFO::set_function_defaults. This was done as part of Bug#21875520, to avoid a much larger re-factoring. The flag is set to false in this case. commit 7096ec55ee1912dc49dbccd3ee4585e532623da9 Merge: 54e73e5 f927eda Author: Balasubramanian Kandasamy Date: Thu Apr 27 12:34:47 2017 +0530 Empty version change upmerge commit f927edaee823b3425dba062e02a5cb2e0cf95817 Merge: affb439 a0b48bb Author: Balasubramanian Kandasamy Date: Thu Apr 27 12:30:55 2017 +0530 Empty version change upmerge commit a0b48bb5e7773f03771cc93a9966c9607dfed3cd Author: Balasubramanian Kandasamy Date: Thu Apr 27 12:27:52 2017 +0530 Raise version number after cloning 5.5.56 commit a2613a149e85c1b97b0a34c6cfcf37d057a443d9 Author: Harin Vadodaria Date: Thu Apr 27 07:41:27 2017 +0200 Bug#25942414: SSL VARIABLES USAGE WHEN LIBMYSQL IS COMPILED WITH WITH_SSL=NO Description: If libmysql is compiled with WITH_SSL=NO, --ssl-* are not useful. Solution: 1. Restricted WITH_SSL to values : bundled | yes | system 2. Made "bundled" as default value for WITH_SSL. Also, not specifying WITH_SSL or even specifying WITH_SSL=no will be treated as/converted to WITH_SSL=bundled. Reviewed-By: Tor Didriksen Reviewed-By: Georgi Kodinov (cherry picked from commit 3eb2058be34d1a21771fe89ff1a0c08f156899bc) commit 57d15c867e32326fffbb91b75fa651b9bcf899b4 Author: Balasubramanian Kandasamy Date: Mon Feb 27 17:20:51 2017 +0530 Raise version number after cloning 5.5.55 (cherry picked from commit 7df8dc750c26ead87c643f87dccba28a66cf3c9b) commit 54e73e55e3e09a740d47e9bdc2624270ce4b26e0 Merge: 6301617 affb439 Author: Harin Vadodaria Date: Thu Apr 27 07:45:14 2017 +0200 Merge branch 'mysql-5.6' into mysql-5.7 commit affb4391c1eaa4b172ce65bdb1193731c5de0feb Merge: 520e6da 3eb2058 Author: Harin Vadodaria Date: Thu Apr 27 07:44:26 2017 +0200 Merge branch 'mysql-5.5' into mysql-5.6 commit 3eb2058be34d1a21771fe89ff1a0c08f156899bc Author: Harin Vadodaria Date: Thu Apr 27 07:41:27 2017 +0200 Bug#25942414: SSL VARIABLES USAGE WHEN LIBMYSQL IS COMPILED WITH WITH_SSL=NO Description: If libmysql is compiled with WITH_SSL=NO, --ssl-* are not useful. Solution: 1. Restricted WITH_SSL to values : bundled | yes | system 2. Made "bundled" as default value for WITH_SSL. Also, not specifying WITH_SSL or even specifying WITH_SSL=no will be treated as/converted to WITH_SSL=bundled. Reviewed-By: Tor Didriksen Reviewed-By: Georgi Kodinov commit 6301617b611e1b6177f316050f7f6c5680595a6b Author: Joao Gramacho Date: Mon Apr 24 11:55:03 2017 +0100 BUG#25800025: SQL THREAD ERROR 1778 WHEN GTID SKIPPING PARTIAL TRX Post-push fix for non-deterministic behavior of the MTR include file 'rpl_receive_event_count.inc' sourced by 'rpl_nogtid_rollback_on_anonymous_gtid' test case. commit febba40d7b3511cfa3b9911e7bb201cfa6bcfe78 Author: Jens Even Berg Blomsøy Date: Wed Apr 26 10:59:22 2017 +0200 WL10166 Result missmatch content fix commit 06f60d20cc6f80bff38793937dad371e173f2db3 Author: Thirunarayanan Balathandayuthapani Date: Wed Apr 26 11:10:41 2017 +0530 Bug #25793677 INNODB: FAILING ASSERTION: CLUST_TEMPL_FOR_SEC || LEN Problem: ======== During searching, length of the virtual column field from virtual index record is less than the (expected) template column length and it leads to failure. Fix: === Length of the virtual column field from virtual index record can be less than template column length if record is fetched from prefixed virtual index. Reviewed-by: Jimmy Yang jimmy.yang@oracle.com RB: 16047 commit f85408e5dea242a55b83932e66bb11f946a181b1 Merge: 7df008c 520e6da Author: Balasubramanian Kandasamy Date: Tue Apr 25 13:20:40 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 520e6da17595ae1983e23a5f856b090b94cd5f12 Merge: 01749a7 fc303e6 Author: Balasubramanian Kandasamy Date: Tue Apr 25 13:15:07 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit fc303e6e750bcd4be3df4941d860b5b42584c833 Author: Balasubramanian Kandasamy Date: Tue Apr 25 13:12:30 2017 +0530 Added plugins for commercial docker rpm builds commit 7df008c4e5f7ee4be7801170fd4138488bb30919 Author: Tor Didriksen Date: Tue Apr 11 08:23:49 2017 +0200 Bug#25909965 REMOVE DEPENDENCIS ON LIBSTATOMIC.SO ON SOLARIS man -M /opt/developerstudio12.5/man CC -xatomic=a Specify which atomics support runtime library is linked. a must be one of the following: studio Link with the libstatomic library bundled with Oracle Developer Studio. gcc Link with the libatomic library in /usr/lib. none Do not link with any atomics support library. The option -xatomic=studio is the default when neither -latomic nor -xatomic is specified, and the compiler is compiling in -std={c++03|c++11|c++14} mode. So with -latomic we got dependency on /opt/developerstudio12.5/lib/compilers/atomic/sparcv9/libstatomic.so For InnoDB memory barriers: prefer HAVE_IB_MACHINE_BARRIER_SOLARIS over HAVE_IB_GCC_ATOMIC_THREAD_FENCE on Solaris, since the latter is really part of C11/C++11 and creates a dependency on libstatomic which is not installed by default. commit b220c1751b9ca9a1e7fde31d0d204317d5eb2461 Author: Tor Didriksen Date: Tue Apr 18 15:28:37 2017 +0200 Bug#25731075: INCOMPATIBLE POINTER TYPES WARNING WHEN BUILDING XCOM Broken build for gcc/Solaris Backport from trunk. commit 766bdcd1482ed2f08c3cbd14317aae3179bb75ab Author: Yashwant Sahu Date: Mon Apr 24 15:41:18 2017 +0530 LDAP: skipping SASL test temporally. need to specify sasl client path in the test. will fix it. commit 1e81a9f1d221b587d42eaa8466dde4830d180883 Author: Karthik Kamath Date: Mon Apr 24 15:16:58 2017 +0530 BUG#25476479: MYSQLD FILLS UP ERROR LOGS WITH [ERROR] ERROR IN ACCEPT: BAD FILE DESCRIPTOR DESCRIPTION: ============ When mysqld is secured with TCP wrappers and the files hosts.allow and hosts.deny are configured to restrict access from an IP address, very large error log files are generated if we try to connect to the server via that IP address. This runs indefinitely resulting in ever growing error log files and puts load on the machine. The server continues to serve authorized connections although slowly. ANALYSIS: ========= When the listening socket is accepting connections, if a connection was refused by TCP wrappers, we were closing the listening socket which led to connect socket being polled continuously, leading to indefinite number of errors being logged to the error log. FIX: ==== We are now closing the connect socket only, thus avoiding its polling and also allowing the listening socket to accept other connections. commit 42b84aa3a592877f0e24e8dbd91926bd5bc60226 Author: Kailasnath Nagarkar Date: Mon Apr 24 00:33:23 2017 +0530 Bug #25264253: QUERY REWRITER PLUGIN CRASHES WHEN READ_ONLY IS ENABLED ISSUE: When server is started with read_only option enabled, query rewriter plugin fails to take appropriate lock resulting in assertion and server exiting abnormally. FIX: Made change to ignore read_only option so that the query rewiter plugin takes appropriate lock. commit 84eebede6570df4c77821ec20d4e0a736e43f1d1 Author: Joao Gramacho Date: Wed Mar 29 13:27:26 2017 +0100 BUG#25800025: SQL THREAD ERROR 1778 WHEN GTID SKIPPING PARTIAL TRX Problem ------- SQL thread is unable to GTID skip a partial transaction. Analysis -------- The SQL thread has a mechanism to rollback the partial transactions left on the relay log. The mechanism is activated every time the SQL thread is going to apply a Gtid_log_event and the THD already owns a GTID. The issue is happening when the transaction being applied is to be GTID skipped. Because in this case the THD owns no GTID, the rollback mechanism is not being used. Fix --- When applying a Gtid_log_event, the SQL thread will "rollback" the partial transaction when a transaction that was being skipped was incomplete in the relay log. commit 95ab8be686acd375374d7b6a6def93c48ef6b50c Author: Erik Froseth Date: Thu Apr 20 15:12:06 2017 +0200 Bug#25912557 ST_LATFROMGEOHASH/ST_LONGFROMGEOHASH ODD INPUT TYPE REQUIREMENT The functions ST_LatFromGeohash, ST_LongFromGeohash and ST_PointFromGeohash did not allow data that originated from a CHAR column. Change-Id: I88f7fed5ad992394c18a945f00896c033b0688ba commit e335827e39dd80fe1bc4d2ffc9a65b8a0dcef4af Merge: af75eb5 01749a7 Author: Sujatha Sivakumar Date: Fri Apr 21 11:58:51 2017 +0530 Bug#25452277: OUT OF DISK SPACE CONDITION LEADS TO SIGNAL 11 Merge branch 'mysql-5.6' into mysql-5.7 commit 01749a76963ab0562e5a1b56cc7d40b276d54bd9 Author: Sujatha Sivakumar Date: Fri Apr 21 11:38:31 2017 +0530 Bug#25452277: OUT OF DISK SPACE CONDITION LEADS TO SIGNAL 11 Problem: ======== An out of space condition has been developed, after some warnings mysqld exits abnormally with signal 11. Analysis: ========= User has configured binlog_error_action= ABORT_SERVER. During master server execution disk becomes full and due to this, update on binary log index file fails. On this critical error server aborts. Now users try to restart the server but still there is no free disk space. While the server is trying to come up it finds the binary log being enabled it tries to open the file and update the index file with this information. Again it results in critical error and code tries to access server thread specific diagnostic area which is not yet initialized. This causes the server to exit abnormally. Fix: === In existing code when server encounters any critical error while it is coming up it just logs appropriate error message into the error log and aborts. Similarly, binlog error exit handling code should just log message into error log when the actual 'thd' object is not yet ready. Write error message into error log and exit. commit af75eb5552bb971352805e2a0784aba82bcf118a Author: Yashwant Sahu Date: Thu Apr 20 21:33:11 2017 +0530 ldap: Changed ldap sasl client library to dynamic library. commit 0050b8b64546a87b9fcf9b0c1616e5b13d6a933a Author: Tomasz Stepniak Date: Thu Apr 20 16:57:43 2017 +0200 BUG #23107137: TYPOS IN MYSQLXTEST --HELP-COMMANDS Description =========== Using mysqlxtest with --command-help switch gives output containing some minor typos. --help provides incomplete information for the --bindump help entry. RB: 16011 Reviewed by: Grzegorz Szwarc Reviewed by: Lukasz Kotula commit 4ef48eaa5daaf33e72b9b094485d7504025344dc Author: Deepa Dixit Date: Thu Apr 20 17:46:24 2017 +0530 Bug#23280117: 5.7 BUG XXXXX TEST REPLACE NUMBER ROUND+GIS PRECISION DIFFERENCES (CONTRIBUTION) Post push fix: Changing name of the mysqltest command from 'replace_numberic_round' to 'replace_numeric_round'. Reviewed-by: Pavan Naik commit feb666b00e391ddb3a9330bf64159e7c750e0e25 Author: Deepa Dixit Date: Thu Apr 20 11:11:34 2017 +0530 Bug#23280117: 5.7 BUG XXXXX TEST REPLACE NUMBER ROUND+GIS PRECISION DIFFERENCES (CONTRIBUTION) Issue: ------ MTR tests written to test GIS functions fail with a result content mismatch on some platforms due to difference in precision. These have been corrected using the mysqltest function --replace_regex till now. This requires a complex regular expression to replace the result with a lower precision. Fix: ---- For ease of use, a new mysqltest command 'replace_numberic_round' has been introduced to round off numeric values. The usage is as follows: --replace_numberic_round where precision is the number of digits after the decimal that the result will be rounded off to. The precision can be any number between 0 to 16. Patch contributed by: Daniel Black Reviewed-by: Pavan Naik Reviewed-by: Srikanth BR RB: 14633 commit cdd91861963186bcaa64dd0d393d85f0dd51cf1a Author: Sreeharsha Ramanavarapu Date: Thu Apr 20 08:09:44 2017 +0530 Bug #25331425: DISTINCT CLAUSE DOES NOT WORK IN GROUP_CONCAT Issue: ------ The problem occurs when: 1) GROUP_CONCAT (DISTINCT ....) is used in the query. 2) Data size greater than value of system variable: tmp_table_size. The result would contain values that are non-unique. Root cause: ----------- An in-memory structure is used to filter out non-unique values. When the data size exceeds tmp_table_size, the overflow is written to disk as a separate file. The expectation here is that when all such files are merged, the full set of unique values can be obtained. But the Item_func_group_concat::add function is in a bit of hurry. Even as it is adding values to the tree, it wants to decide if a value is unique and write it to the result buffer. This works fine if the configured maximum size is greater than the size of the data. But since tmp_table_size is set to a low value, the size of the tree is smaller and hence requires the creation of multiple copies on disk. Item_func_group_concat currently has no mechanism to merge all the copies on disk and then generate the result. This results in duplicate values. Solution: --------- In case of the DISTINCT clause, don't write to the result buffer immediately. Do the merge and only then put the unique values in the result buffer. This has be done in Item_func_group_concat::val_str. Note regarding result file changes: ----------------------------------- Earlier when a unique value was seen in Item_func_group_concat::add, it was dumped to the output. So result is in the order stored in SE. But with this fix, we wait until all the data is read and the final set of unique values are written to output buffer. So the data appears in the sorted order. commit 86b66ec95fe227ab1dfa5d5be78dab216a33577b Author: Yashwant Sahu Date: Wed Apr 19 16:20:42 2017 +0530 wl 5847: ber_free not supported, removed. commit adf405df7b9023daac1dc28cca62137d59570734 Author: Yashwant Sahu Date: Wed Apr 19 15:19:47 2017 +0530 wl 5847: Ubuntu 16 will run 11 tests and minor fixes. commit bb138be204dc315555ac9bc0480233e74b50b210 Author: Balasubramanian Kandasamy Date: Wed Apr 19 12:54:37 2017 +0530 Rename ndbd_redo_log_reader man page to ndb_redo_log_reader commit 4e99d4aa34dc0095d9f57269e1d720a57874de6b Author: Hemant Dangi Date: Tue Apr 18 14:18:50 2017 +0530 Bug#25876807: FOR DIFFERENT VERSION (5.7 AND 5.8) GROUP, LEADER SHOULD BE ONLY FROM 5.7 Updating missing @param lowest_version_end definition for sort_members_for_election() and removing @param lowest_version_end for sort_and_get_lowest_version_member_position() in gcs_event_handlers.h for Group Replication plugin. commit f35db067815f0e80c2a5095385108b2c99e95e3a Author: Arun Kuruvila Date: Tue Apr 18 09:52:38 2017 +0530 Bug#25469190: MYSQLPUMP SHOULD EXCLUDE REPLICATION REPOSITORY METADATA TABLES Description : Replication meta data tables such as mysql.slave_master_info and mysql.slave_relay_log_info gets backed up when MYSQLPUMP is executed. Analysis: The above mentioned replication tables should be excluded from backups because they are not a logical part of data. These tables contain replication channel meta data that will leave the replication meta data in an invalid state after the restoration of the dump. Fix: Both the tables are excluded from MYSQLPUMP. commit d540b9de70c152baf41871ae6822bb5df07a0a58 Author: Arun Kuruvila Date: Tue Apr 18 09:45:22 2017 +0530 Bug #25469161: MYSQLDUMP SHOULD EXCLUDE REPLICATION REPOSITORY METADATA TABLES Description : Replication meta data tables such as mysql.slave_master_info and mysql.slave_relay_log_info gets backed up when MYSQLDUMP is executed. Analysis:- The above mentioned replication tables should be excluded from backups because they are not a logical part of data. These tables contain replication channel meta data that will leave the replication meta data in an invalid state after the restoration of the dump. Fix: Both the tables are excluded from MYSQLDUMP. commit c0f3d4750b3af36dd98c4949120ade68ed2e7912 Author: Hemant Dangi Date: Mon Apr 17 15:31:53 2017 +0530 Bug#25876807: FOR DIFFERENT VERSION (5.7 AND 8.0) GROUP, LEADER SHOULD BE ONLY FROM LOWER VERSION PROBLEM STATEMENT ================= When a group contain members of two different versions (5.7 & 8.0), higher version members are put in read compatability mode and cannot write to the group. In single primary-mode, currently the primary member can be elected from the higher version members also thus making a member what should be in read mode writable, what can lead to failures in the lower version members. PROPOSED SOLUTIONS ================== The primary member should be elected from lower version members i.e 5.7, in single primary-mode. And so only the members with the lowest versions should participate in the election. commit c0e71ffc464cbba48eb20154cc5fe3123becff8a Merge: e350d6d 25afd70 Author: Shishir Jaiswal Date: Mon Apr 17 12:07:52 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 25afd7057b6387528e73903b1521e841053de115 Merge: 0e159c3 c1d45aa Author: Shishir Jaiswal Date: Mon Apr 17 12:06:24 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit c1d45aa7c43e844f04f9fae0a0ad84d0c0d37926 Author: Shishir Jaiswal Date: Mon Apr 17 12:04:14 2017 +0530 Bug#25043674 - MYSQLACCESS SCRIPT LOADS AND EXECUTES CODE FROM THE CURRENT DIRECTORY DESCRIPTION =========== When 'mysqlaccess' tool is run, it reads (and executes) the content of its configuration file 'mysqlaccess.conf' from the current directory. This is not a recommended behaviour as someone with ill intentions can insert malicious instructions into this file which could be executed whenever this tool is run. ANALYSIS ======== The configuration file is presently looked for, in the following folders (in given order): 1. Current directory 2. SYSCONFDIR //This gets expanded 3. /etc/ Owing to the reasons mentioned above, we should not permit the file to be in the current directory. Since the other two folders are assumed to be accessible only to authorized people, the config file is safe to be read from there. FIX === Modified the script so that it looks for the config file now in the following two folders (in the given order): 1. SYSCONFDIR 2. /etc/ If it's absent from above locations but present in current directory, an error is thrown asking the user to move the file to one of the above locations and retry. NOTE ==== The location paths and their precedence are not documented for this tool. It needs to be noted as part of the associated documentation. commit e350d6d930d9cb86d1af62115642531409b45c11 Author: Neha Kumari Date: Fri Apr 14 16:16:31 2017 +0530 Bug #24753281: REQUEST FOR SLAVE_SKIP_ERRORS = ER_INCONSISTENT_ERROR Problem: -------- Replication applier thread returns 3002, ER_INCONSISTENT_ERROR, when there's difference between expected error number and actual error number on slave. So when ER_INCONSISTENT_ERROR is passed as an input to slave-skip-errors, the replication should continue despite having different expected error and actual error on slave. But in current code, the slave is not able to ignore ER_INCONSISTENT_ERROR. Fix: ---- Check if ER_INCONSISTENT_ERROR is passed in the list of errors to be skipped. If yes then do not throw error, just log this info with the mention of actual and expected error as a note in the slave's error log. commit 162b99f74e60bc8949130453c3092e819e7ade2f Author: Priyanka Sangam Date: Tue Apr 11 14:34:43 2017 +0530 Bug #24754897 RPL_INJECTOR API FUNCTION FOR UPDATE_ROW WITH BEFORE AND AFTER COLUMN BITMAPS An UPDATE_ROW binlog event contains 2 versions of the updated row: a Before Image which has the row before the update, and an After Image of the row after the update. The Before and After Image do not always include all the columns in the row. The binlog format decides which columns will be included. There is a requirement in ndbcluster to reduce the size of the binlog event while retaining the UPDATE_ROW format of BeforeImage/AfterImage. This can be done by writing only primary key columns from the Before Image and only modified columns from the After Image. However, the existing binlog formats do not support different sets of columns in the Before and After Images. The --binlog-format=MINIMAL option is not usable for ndbcluster because enabling the binlog format code breaks the --ndb-log-updated-only option in ndb replication. This patch implements 2 new ndb binlog formats for UPDATE_ROW where the Before Image and After Image are minimised to remove duplicate information. UPDATED_ONLY_USE_UPDATE_MINIMAL: log update as UPDATE_ROW, log only primary key columns in Before Image and only updated columns in After Image FULL_USE_UPDATE_MINIMAL: log update as UPDATE_ROW, log only primary key columns in Before Image and all non primary key columns in After Image This means that each column is contained only once in each event, bringing efficiency close to that achieved by the variants logging with WRITE_ROW events. The UPDATED_ONLY_USE_UPDATE_MINIMAL and FULL_USE_UPDATE_MINIMAL formats can be used with the conflict resolution algorithms NDB$EPOCH(), NDB$EPOCH2() and NDB$EPOCH_TRANS(), because these do not require the 'Before' values of non-primary-key-columns. Conflict resolution algorithms like NDB$MAX() and NDB$OLD() require the old values of non-PK columns, and will not work correctly with these new variants. commit 769803e69dea1ba50e17fee3f9384cabd0dbedca Merge: 9662a2c 0e159c3 Author: Prashant Tekriwal Date: Mon Apr 10 18:27:09 2017 +0200 Upmerge of the 5.6.36 build commit 0e159c39fd0e10cd5a9c4e1f3e383c7e56ce6a6b Merge: 56794f7 1e7cb2a Author: Prashant Tekriwal Date: Mon Apr 10 18:20:39 2017 +0200 Merge branch 'mysql-5.6.36-release' into mysql-5.6 commit 9662a2c7d70d4a861a9fcb9f6a04ad3ceb8a66c3 Merge: dea7749 c1df4fd Author: Hery Ramilison Date: Mon Apr 10 17:38:38 2017 +0200 Merge branch 'mysql-5.7.18-release' into mysql-5.7 commit dea7749fba67f60d510146ed523f108407f945b8 Author: Grzegorz Szwarc Date: Mon Feb 20 14:20:45 2017 +0100 Bug #25549637: QUERY WITH GROUPBY AND HAVING GETS ERROR; Bug #24497007: GROUPBY() AND HAVING() CLAUSES GENERATES WRONG SQL QUERY Description: In some cases of usage a crud.find message together with grouping criteria the x plugin returns unproper results. Fix: Generation of sql query has been improved by moving 'grouping_criteria' expression to the derived query. Reviewed-by: Lukasz Kotula RB:15532 commit 25d37dc54ec13f91f5f97984d1aed594c7d0dc68 Merge: 61b7233 56794f7 Author: Gipson Pulla Date: Mon Apr 10 16:31:11 2017 +0530 Upmerge of the 5.5.55 build commit 56794f79bb7982bc31f67c1356e7e3a0e205583e Merge: 7f3f1f7 4e40dea Author: Gipson Pulla Date: Mon Apr 10 16:30:11 2017 +0530 Upmerge of the 5.5.55 build commit 4e40dea46890d8274eeca7f6162441e59c2ff458 Merge: 189d28b 3a2a53a Author: Gipson Pulla Date: Mon Apr 10 16:25:53 2017 +0530 Merge branch 'mysql-5.5.55-release' into mysql-5.5 commit 61b7233a161c175b9fe55c3cb5e653968c9a4b1b Merge: 6fc2131 7f3f1f7 Author: Neha Kumari Date: Mon Apr 10 14:30:57 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 7f3f1f702d1335309596a063028456979a0aabfa Author: Neha Kumari Date: Mon Apr 10 12:45:01 2017 +0530 Bug #24323288: MAIN.MYSQLBINLOG_DEBUG FAILS WITH A LEAKSANITIZER ERROR Issue: ------ On a system with AddressSanitizer support that includes Leaksanitizer, the test mysqlbinlog_debug fails.test when compiled with -DWITH_ASAN and -DCMAKE_BUILD_TYPE=Debug option. Cause: ------ When the events are read from remote server using mysqlbinlog utility, in two scenarios the memory clean up is not done. Those scenarios are. 1) When fake Rotate_event occur. Places where Rotate_event->when.tv_sec == 0 2) When we are using raw mode with mysqlbinlog, then for those cases where the log file could not be created or write had some issues. Solution for 5.6 and 5.7: ------------------------- 5.6: === Scenario (1) will be fixed by backport of Bug#21697461 from mysql-5.7, which is to create a method that will handle the memory clean up and call this method from all the suspected places. Scenario (2) will be an extension to Bug#21697461, for cases discussed above in the *cause* section. 5.7: === As we already have Bug#21697461 in mysql-5.7, scenario (1) need not be addressed separately. For scenario (2) same fix as above, extension of Bug#21697461. Solution for trunk: ------------------- Implemented a different solution(removed Bug#21697461) to fix scenario (1) and (2). - A new solution is implemented to make the area around the - Manage the clean up of temp_buf through m_free_temp_buf_in_destructor variable added in Log_event class. - Created a new RAII class Destroy_log_event_guard to handle memory of Log_event object created in the dump_remote_log_entries method. - Extended mysqlbinlog_debug.test to test the changes done. A new solution is implemented thinking that any modification done to the area around the code causing memory leaks at present have lesser number of memory issues in future. commit 6fc213173274a4819013f2b3d2e20b97eb2bea80 Merge: b0c7c57 33831f1 Author: Nisha Gopalakrishnan Date: Mon Apr 10 08:54:55 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 33831f1d048e49489a5c138098ac4855ee3a1833 Merge: 20d1b85 189d28b Author: Nisha Gopalakrishnan Date: Mon Apr 10 08:52:39 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 189d28b303e90ca25f10d10d5f75966c93e3e8b2 Author: Nisha Gopalakrishnan Date: Mon Apr 10 08:51:28 2017 +0530 BUG#25250768: WRITING ON A READ_ONLY=ON SERVER WITHOUT SUPER PRIVILEGE. Post push fix for fixing test failure in embedded server mode. commit b0c7c5709ef0ed01c12ba74ace7c187c530086aa Author: Tiago Jorge Date: Thu Mar 30 10:52:53 2017 +0100 BUG#25503458 - SOME CLASS B PRIVATE ADDRESS IS NOT PERMITTED AUTOMATICALLY Description: --------------- According to https://dev.mysql.com/doc/refman/5.7/en/group-replication-options.html#sysvar_ group_replication_ip_whitelist, when group_replication_ip_whitelist = AUTOMATIC, private network is permitted automatically. Below 172.21.134.27/23 is class C private IP address, but 172.21.134.0 is not permitted. How To Repeat? Set class C private address other than 172.16.X.X Analysis: ---------------- Looking at the code in get_ipv4_local_private_addresses in gcs_xcom_networking.cc we notice that local class B addresses are not being tested in a range but only for 172.16.X.X Suggested Fix: ---------------- Refactored get_ipv4_local_private_addresses to make numeric and range comparisons. commit d0c79b3b53fe5794633d5dbf6cdc3a754f0e176c Author: Yashwant Sahu Date: Fri Apr 7 17:02:38 2017 +0530 WL 5847# Fixed NDB build issue. commit 158b2d97fb2831e9ed815e8357802fe0755d80e0 Merge: f5870e1 20d1b85 Author: Nisha Gopalakrishnan Date: Fri Apr 7 13:51:07 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 20d1b85778bb9bcb10968d2f461c74ef7e883560 Merge: 4be1ad8 98549f1 Author: Nisha Gopalakrishnan Date: Fri Apr 7 13:47:36 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 98549f14482c068c43b7fda2f69c0885795da36e Author: Nisha Gopalakrishnan Date: Mon Jan 9 20:09:57 2017 +0530 BUG#25250768: WRITING ON A READ_ONLY=ON SERVER WITHOUT SUPER PRIVILEGE. Backport from mysql-5.7 to mysql-5.5 and mysql-5.6. BUG#13969578: TEMPORARY TABLE IN A DATABASE ON A READ-ONLY INSTANCE CAN BE OVERWRITTEN Analysis: ======== Creation or modification of a persistent table by a non-super user is NOT ALLOWED in read_only mode. Only TEMPORARY tables are allowed to be created or modified in read_only mode. But the creation of a persistent table was being allowed when a temporary table of the same name existed. The routine which denies updating a non-temporary table in a read_only mode does not handle the case of creation of a regular table when a temporary table of the same exists. Fix: === Handled the condition where an attempt is made to create a persistent table having the same name as that of the temporary table. Hence the creation of a persistent table by a non-super user when a temporary table of the same exists is denied under read_only mode. commit f5870e1c28c81fb6f85f04422791f84be9eaf20c Merge: 3100442 e99d2b7 Author: Yashwant Sahu Date: Thu Apr 6 21:41:37 2017 +0530 Merge branch 'mysql-5.7-wl5847' into mysql-5.7 commit e99d2b7485511c1f7c1248813c8d0442e1d8d099 Author: Yashwant Sahu Date: Thu Apr 6 21:39:50 2017 +0530 skipping. commit 22f5a9e00b3331b4f36f24c5e9b709b4535e56ca Author: Yashwant Sahu Date: Thu Apr 6 18:02:57 2017 +0530 extra logs. commit 310044285aa244ed6d1414e7beb0604f1906fb94 Author: Sreeharsha Ramanavarapu Date: Thu Apr 6 17:50:57 2017 +0530 Bug #25361251: INCORRECT BEHAVIOR WITH INSERT ON DUPLICATE KEY IN SP Issue 1: -------- The VALUES part of the ON DUPLICATE KEY UPDATE can refer to the column list of an INSERT statement. When a BLOB value is used in such a clause as part of an INSERT statement in stored procedure, this can result in incorrect behavior. BLOB values require some special handling because of problems like the one mentioned in Bug#13901905. This is done using the "insert_update_values_map" member of LEX. Field_blob values are added to this map during Item_insert_value::fix_fields. But the cleaning up takes place at the end of the statement in lex_end. This works fine for conventional execution statements. But for statements in the body of an SP, lex_end is called only once per statement. This is irrespective of whether the statement is executed in a loop. This can result in incorrect behavior because "insert_update_values_map" needs to be cleaned up after statement execute. Solution 1: ------------ The solution is to make sure that lex->clear_values_map is called at the end of statement execution. Issue 2 (from Bug #24538207): ----------------------------- The problem here is similar to the one mentioned above. The INSERT is a prepared statement. Each PREPARE also creates a new "insert_update_values_map" for handling the BLOB values. Only lex_end cleans up here too. This results in the same problem as above. Solution 2: ------------ The "EXECUTE ..." part will be fixed by Solution 1. But for the "PREPARE ..." statements, lex->clear_values_map will be added at the end of "Prepared_statement::prepare". commit c349f6732818d0d72c83ae645245e0705708cb27 Author: Yashwant Sahu Date: Thu Apr 6 15:38:20 2017 +0530 final commit 42073c98c122f09c6a639c0f64c10dcf1bfc380f Author: Yashwant Sahu Date: Tue Apr 4 11:26:38 2017 +0530 sample push. commit d495a0952d467ed7a42d639775a65aaccd83aa81 Author: Alfranio Correia Date: Tue Apr 4 06:54:00 2017 +0100 BUG#25681977 GROUP REPLICATION NODE ON OPC FAILED TO REJOIN AFTER REBOOT PROBLEM ------- For many maintenance operations, VMs on OPC need to be restarted, but after a VM restart, the node fails to rejoin the GR group. The problem is that the private IP is changed after a VM restart and the remaining nodes have a cached reference to the previous private IP. When a node reconnects, a node's description called "server" is reused if there is any. The server contains a reference to the addrinfo structure and the current implementation does not check whether the stored information is still valid or not. FIX --- To fix this issue, a new addrinfo structure is always fetched while adding a new node or connecting to it. commit 5f07d496288d7846cb343363f8aa7f507b316f5c Author: Yashwant Sahu Date: Tue Apr 4 10:17:11 2017 +0530 merge and some test. commit f08b441ed2f7480ee28d8241f062ff0708c24ae8 Merge: 2cb66f6 a59bf83 Author: Yashwant Sahu Date: Tue Apr 4 10:15:07 2017 +0530 Merge branch '5.7' into mysql-5.7-wl5847 commit 2cb66f6512046951c6f12b6ab5b3cbb41849a2c8 Author: Yashwant Sahu Date: Mon Apr 3 21:38:34 2017 +0530 New tests added. commit a59bf83cc9b1ab2646184b9295a4dbafa77d05d9 Merge: 9c2175e 4be1ad8 Author: Lars Tangvald Date: Mon Apr 3 12:35:58 2017 +0200 Merge branch 'mysql-5.6' into mysql-5.7 commit 4be1ad8103a6b58324146e5039944d3f3d93bfc2 Author: Lars Tangvald Date: Thu Mar 30 09:13:05 2017 +0200 Bug#25811814 DEBIAN/UBUNTU PACKAGES SHOULD BUILD WITH --FAIL-MISSING * Changed --list-missing to --fail-missing * Added exclusions for files that should not be included * Added missing manpages to packages commit 9c2175e5cb22ea7ce24e133b765f1bafb4ba5743 Author: Jon Olav Hauglid Date: Fri Mar 31 12:39:59 2017 +0200 Bug#24352163: CANNOT COMPILE WITH CLANG ON MAC OS X 10.10.5 Fix "cannot take the address of an rvalue of type" compilation error when compiling with -std=c++11. Partial backport from trunk of: ea56f33fc55183b88a8f5f6fd9e1abbf1176c9f6 Also similar to contribution from Davi Arnaut. commit 37b5a1491e9a98c6bbf46818505b08d7ae8ee691 Author: Neha Kumari Date: Fri Mar 31 17:13:46 2017 +0530 Bug#24748639:CAN'T SET SLAVE_SKIP_ERRORS > 3000 Problem: MySQL 5.7 has introduced error numbers > 3000 but "slave_skip_errors" doesn't allow error numbers which is greater than 3000(error numbers between 2000 and 2999 are for client side errors) Fix: Modify the MAX_SLAVE_ERROR variable, and add check for the client side error while checking for errors to be skipped. commit 39d8611eed5e42cafa0f974b786aca14b459cb24 Merge: d3643d8 ee048d8 Author: Terje Rosten Date: Thu Mar 30 15:18:31 2017 +0200 Merge branch 'mysql-5.6' into mysql-5.7 commit ee048d8a0881ed88186317c80e73a257df386787 Merge: f29e57b 9b8907b Author: Terje Rosten Date: Thu Mar 30 15:13:04 2017 +0200 Merge branch 'mysql-5.5' into mysql-5.6 commit d3643d80a0d72ccabb3a7415d6adc82bd0c11322 Author: Karthik Kamath Date: Thu Mar 30 16:42:28 2017 +0530 Bug 25364178 - XA PREPARE INCONSISTENT WITH XTRABACKUP Issue: XA PREPARE, XA ROLLBACK and XA COMMIT for transaction from a disconnected session does not take global commit lock and modifies binlog and innodb redo log even when server is in FTWRL. This could lead to inconsistent backups when backup tools assume the server is in read-only state during FTWRL mode. Fix: Take global commit lock during these operations. Failure to acquire lock during XA PREPARE will result in transaction rollback. Failure to acquire lock during XA COMMIT and XA ROLLBACK will return an error without changing transaction state. commit 56d0979dce4970121d9a2e62a16476a4729bb5a2 Merge: b2f4cc9 f29e57b Author: Joao Gramacho Date: Thu Mar 30 11:50:04 2017 +0100 Merge branch 'mysql-5.6' into mysql-5.7 commit f29e57b928abcb20fbde50855ea2053ff937cd13 Author: Joao Gramacho Date: Thu Mar 30 10:39:24 2017 +0100 BUG#18949364 I_BINLOG.BINLOG_MYSQLBINLOG_FILE_WRITE FAILS: COULD NOT CONSTRUCT LOCAL FILENAME Problem ------- mysqlbinlog client program is using default temporary directory for constructing temporary local files. Fix --- Added a mysqlbinlog client program option into MTR configuration factory to use the test case temporary directory for constructing temporary local files. commit b2f4cc906b80efee03ccf60e2a16a89ae65a6c44 Author: Srikanth B R Date: Fri Mar 17 14:17:59 2017 +0530 Bug#25349924 MTR: FIXES AND ENHANCEMENTS TO THE --XML-REPORT OPTION Issues ------ The XML report generated by MTR when the --xml-report option is used has the below problems :- - It does not report any test which has failed in one of the retries but has passed on the final attempt as a failure i.e., it is reported like a successful test making usage of the option with --retry > 1 ambiguous - It does not distinguish between disabled and skipped tests - The xml reports are generated in the source directory 'mysql-test' even for out-of-source builds - Testcase tags lack information about combinations. - There can be multiple for a single suite scattered accross the report such that each tag has a bunch of tests belonging to a suite. - The tag does not include any information regarding failed tests Changes ------- The patch does the following :- - Reports tests failing on any retry attempt with the tag - Adds statistics and fields for skipped tests and disabled tests separately - Creates xml report in build directory if no absolute path is given for out-of-source builds - Adds a field named variation in the tag in case it is a combination run - Aggregate results of all tests belonging to a suite within a single tag - Generates and reports information regarding failures with a brief reason in an attribute named 'message' and embeds other details within the tag Reviewed-by: Pavan Naik RB: 15016 commit 78f086caec09cb144e4a1d58a3ee1fb44bce1589 Merge: 87532ad 34e2f12 Author: Tor Didriksen Date: Wed Mar 29 12:06:18 2017 +0200 NULL Merge branch 'mysql-5.6' into mysql-5.7 commit 34e2f12510c6deb639bab35bd80ac4c57d03e1c4 Author: Tor Didriksen Date: Wed Mar 29 11:14:16 2017 +0200 Bug#25795538 SEGFAULT-T FAILING UNDER RECENT ADDRESSSANITIZER Patch for 5.6 only. Disable Segfault test for ASAN builds. Fix mismatching new/delete for Fake_TABLE objects. Backport patch for: Bug#21255860: ASAN: MEMORY LEAK IN QUEUE UNIT TEST commit 87532ad368b158b1f8c4000922db05d7b6668567 Author: Marek Szymczak Date: Tue Mar 28 18:32:15 2017 +0200 Bug#24360663 AUDIT LOG FILTER JSON PARSER DOES NOT CHECK WHETHER JSON ELEMENTS ARE EXPECTED Problem: ======== Audit log filter is defined as JSON. JSON parsing algorithm searches for certain elements in the JSON tree. Remaining elements are simply discarded. This potentially creates a problem for a user. Filter is accepted as correct, but in fact the filter does not work as intended. Following filter may look correct for the user, but event element is not expected at this point. Without any notification the user may not know, whether the filter is correct or not. '{ "filter": { "event": { "name": "status" } } }' This should generate error message that "event" is not expected at this level: ERROR: 'event' element not expected here [$.filter.event]. Fix: ==== When a certain JSON element is not expected at certain point, error is generated: '{ "filter": { "class": { "name": "general",' ' "event": { "name": "status",' ' "log": { "and": [ { "field": { "name": "general_command.str",' ' "value": "aaa" } } ],' ' "log2": false } } } } }' ERROR: 'log2' element not expected here [$.filter.class.event.log.log2]. Although JSON "comment" element is not used by the parser, it does not generate error: '{ "filter": { "comment": "This is my super filter" } }' Revieved-by: ============ Harin Vadodaria Ramil Kalimullin commit 9b8907b708dbd2643dbf587bfa8f4e6fb13a5a0d Author: Terje Rosten Date: Tue Mar 28 13:22:32 2017 +0200 BUG#25719975 SHEBANG HARD CODED AS /USR/BIN/PERL IN SCRIPTS, BREAKS ON FREEBSD Use cmake variable to adjust shebang to platform. commit 275023ee4b1d7145825c597c9d4db1cdfaa078b1 Author: Yashwant Sahu Date: Mon Mar 27 08:54:57 2017 +0530 test not needed for el5 commit 5eb6e342b43b8237558919f89d7157abcd6f56d8 Author: Yashwant Sahu Date: Sun Mar 26 21:27:11 2017 +0530 test in all. commit c8cebd283e839d41ba706746ed9e666509091d1a Author: Yashwant Sahu Date: Fri Mar 24 21:26:48 2017 +0530 aa commit 483f4cc63161dd7a938db3f2e340db1b0368d72b Merge: 260ff54 d7a9fbe Author: Yashwant Sahu Date: Fri Mar 24 19:58:19 2017 +0530 Merge branch 'mysql-5.7' into mysql-5.7-wl5847 commit d7a9fbe453f54bf6418a9523dd7aa3d72fd66687 Author: Anibal Pinto Date: Tue Mar 21 13:04:59 2017 +0100 WL#10520: Backport WL#9837 to MySQL 5.7.19 This worklog is created for the backport of the WL#9837: "Group Replication: Transaction savepoint support" to MySQL 5.7.19 This worklog goal is to improve Group Replication by adding support to SAVEPOINT. The SAVEPOINT statement sets a named transaction savepoint with a name of identifier. If the current transaction has a savepoint with the same name, the old savepoint is deleted and a new one is set. The ROLLBACK TO identifier command reverts the state of the transaction back to what was when executed the command SAVEPOINT identifier. The RELEASE SAVEPOINT statement removes the named savepoint from the set of savepoints of the current transaction. No commit or rollback occurs. It returns an error if the savepoint does not exist. commit 260ff547395d33af4b8d4acfaa66e6fe02bf2c10 Author: Yashwant Sahu Date: Fri Mar 24 14:55:45 2017 +0530 Added some test change. commit 22c609f0b8b37f666fe7c03e9b378882447e65a5 Merge: 176b261 0f887f9 Author: Yashwant Sahu Date: Fri Mar 24 14:14:38 2017 +0530 Merge branch 'mysql-5.7' into mysql-5.7-wl5847 commit 176b2612ee4e8b24de86634eeef239cec378d213 Author: Yashwant Sahu Date: Fri Mar 24 14:09:58 2017 +0530 log level. commit 7aa168cd5319f3a67fa535c36aefbb81fb2daf10 Author: Darshan M N Date: Fri Mar 24 12:18:52 2017 +0530 BUG#25365223 ERRORLOG UPDATED WITH NOTES INFORMATION WHEN A REF FKEY ISN'T FOUND IN GRSETUP Issue ==== The issue is that the info message that InnoDB prints when a table is created with a reference which doesn't exist fills up the log as it's printed for every insert when foreign_key_checks is disabled. Fix === The fix is to display the message only if foreign_key_checks is enabled. Reviewed-by: Jimmy Yang commit 38fb460fb1f0e8cb8a846a0cfb9bd4b2349b88ef Author: Yashwant Sahu Date: Fri Mar 24 09:31:00 2017 +0530 reverted the loogging commit 0f887f9fbc34c35f7eec370db2416643d473d627 Merge: aa8b481 52e0df8 Author: Venkatesh Duggirala Date: Thu Mar 23 22:59:33 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 52e0df89e83266637dcfee0eaa3b72910bbcf491 Merge: 398e8a8 e7bd56c Author: Venkatesh Duggirala Date: Thu Mar 23 22:58:19 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit e7bd56cccb3ab90afb29d139f433d8398ad126a0 Author: Venkatesh Duggirala Date: Thu Mar 23 22:57:25 2017 +0530 Bug#24465081 FAILURE IN ATOMIC_* TESTS DUE TO CLEAN-UP ISSUES IN BINLOG_DISKFUL Problem: binlog_diskfull is not cleaned properly which causes problems to other tests. Analysis: simulate_no_free_space_error simulation point is inside my_write function which is called during SET GLOBAL.DEBUG statement. When the simulation point is active, SET GLOBAL.DEBUG will fail before it sets SESSION.DEBUG value. This uncleaned SESSION.DEBUG is causing problems to other tests. Fix: Instead of GLOBAL.DEBUG, test script will use SESSION.DEBUG directly now and it will be cleaned at the end of the test. Also, it is observed that search pattern logic is missing in the test which verifies that DROP TABLE does produce the expected errors. Hence adding them along with this patch. commit c891dcd07b5e9a131b566d2efcd37aab13272179 Author: Yashwant Sahu Date: Thu Mar 23 18:32:11 2017 +0530 test commit aa8b481ee68c10c5377036b19c730c3c767aec1f Author: Venkatesh Duggirala Date: Thu Mar 23 07:44:49 2017 +0530 Bug#25674926 VIEW CHANGE LOG EVENTS GENERATE NEW GTIDS Problem: When there is replication (async) between two groups, group nodes are confused when it receives view_change_log_event that is generated on the other group. This event is making round trips between these two groups in case if the async replication is circular replication. Analysis: GR plugin pipeline considers that View_change_log_events are only injected on the pipeline by the plugin itself when a view change happens. On that moment, the pipeline wrap the View_change_log_event on a GTID and queue it on group_replication_applier channel. View_change_log_events that go through group_replication_applier and group_replication_recovery channels are not injected back on the plugin applier, that would cause a infinite loop. But Other channels are injecting the GTID, BEGIN, VIEW, COMMIT into the plugin pipeline. Then pipeline wraps again the VIEW on a new GTID and queues it on group_replication_applier channel. This is creating a infinite loop between two groups. Fix: When a GTID, BEGIN, VIEW, COMMIT is injected on the pipeline, this VIEW must not originate a new GTID2, BEGIN, VIEW, COMMIT on group_replication_applier channel. commit 82fbed68c97b6b50876b4ca28cafa7887c9ac657 Author: Yashwant Sahu Date: Wed Mar 22 19:04:06 2017 +0530 AD test.. commit 81f25f2cc1a742c5f1a98ff9692bc16ca30d1a3e Merge: 3c55332 398e8a8 Author: Thirunarayanan Balathandayuthapani Date: Wed Mar 22 16:40:41 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 398e8a8ebc9fe776cc372ef14dd0dc38a86d3883 Author: Thirunarayanan Balathandayuthapani Date: Wed Mar 22 16:39:35 2017 +0530 Bug #25573565 TABLE REBUILD USES EXCESSIVE MEMORY Problem: ======= Offsets allocates memory from row_heap even for deleted row traversal during table rebuild. Solution: ========= Empty the row_heap even for deleted record. So that offsets don't allocate memory everytime. Reviewed-by: Jimmy Yang RB: 15694 commit 3c55332fe331b3689ac724345c8a80a5853d204a Merge: 66a717d decdffe Author: Kailasnath Nagarkar Date: Wed Mar 22 11:24:11 2017 +0530 Null Merge branch 'mysql-5.6' into mysql-5.7 commit decdffeeb558ad84888b5cd2bafb8e7ccd504a33 Author: Kailasnath Nagarkar Date: Wed Mar 22 11:21:00 2017 +0530 Bug #25501659: HANDLE_FATAL_SIGNAL (SIG=11) IN GET_ADDON_FIELDS ISSUE: Uninitialized Field member of Table structure was getting dereferenced in function get_addon_fields() resulting in server exiting abnormally. FIX: Passed pointer to Table structure to get_addon_fields() to get read_set from it directly. commit 66a717d579e3575181b006b294f779a6279006c5 Merge: 77febd3 b04443f Author: Venkatesh Duggirala Date: Wed Mar 22 09:36:31 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit b04443f1abe21fbbcc67a563198435b44a04f08b Author: Venkatesh Duggirala Date: Wed Mar 22 09:36:17 2017 +0530 Bug#24609402 MYSQLBINLOG --RAW DOES NOT GET ALL LATEST EVENTS Fixing post push pb2 failure commit 77febd376d3a73fc2e83b9adfe62ac4a840b5319 Merge: 03a4c9c b33900b Author: Venkatesh Duggirala Date: Tue Mar 21 15:14:26 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit b33900bdedbed8433c780a0fddb7c68e1672fe80 Author: Venkatesh Duggirala Date: Tue Mar 21 15:10:48 2017 +0530 Bug#24609402 MYSQLBINLOG --RAW DOES NOT GET ALL LATEST EVENTS Problem: When mysqlbinlog is used with --raw option, output file is not getting flushed till the process is completed. With --stop-never option (mysqlbinlog process never completes), output file will never contain any events. Analysis & Fix: --read-from-remote-server is a mysqlbinlog tool option that allows the users to read the binlog from a MySQL server rather than reading a local file. The read binary log event will be processed and written to output files in text format. In this case, the output file is getting flushed after every event in copy_event_cache_to_file_and_reinit() function. By default, mysqlbinlog reads binary log files and writes events in text format. But the --raw option tells mysqlbinlog to write the events into output file directly in their original binary format. In this case, the output file is not getting flushed until mysqlbinlog downloads all the content. This will be more problematic if --stop-never option is used (which is used for "live" binlog backup) as the mysqlbinlog process will never stop, the output file will never get flushed. Fix: Flush the output file after every event is written to it (just like how we flush when --raw is not specified). commit 03a4c9cabe477d26965ba12d20b1d89ef4f81f2d Author: Darshan M N Date: Mon Mar 20 13:00:58 2017 +0530 Bug#25479538 ASSERT:SIZE == SPACE->SIZE DURING BUF_READ_AHEAD_RANDOM The assert as added by the fix for BUG#25053705 is blocking the ntest. So removing the assert for now until I come up with a fix for the bug. Reviewed-by : Satya Bodapati commit e2f0fa9950d919db54684521b703f775ed3b792c Author: Aakanksha Verma Date: Tue Mar 21 10:31:43 2017 +0530 Bug #25189192 ERRORS WHEN RESTARTING MYSQL AFTER RENAME TABLE. PROBLEM While renaming table innodb doesn't update the InnoDB Dictionary table INNODB_SYS_DATAFILES incase there is change in database while doing rename table. Hence on a restart the server log shows error that it couldnt find table with old path before rename which has actually been renamed. So the errors would only vanish if we update the system tablespace FIX Update the innodb dictionary table with new path in the case there is not a change in the table but the database holding the table as well. Reviewed-by: Jimmy Yang RB: 15751 commit 5ceeb3277ba3a64eb380a62bd303585a368e514b Author: Ole-Hjalmar Kristensen Date: Tue Mar 14 14:23:37 2017 +0100 Bug#22671846: SENDING LARGE MESSAGES CAN TRIGGER NODE EXIT FROM GROUP Second attempt. Problem: When large messages are sent, the XCOM thread becomes busy for a long time sending it. As this happens, mainly as the number of member nodes grows, the alive task can trigger a group view change and GCS can trigger a node exit due to the 5 second timeout period. Solution: For large messages, the select will mark the socket as readable many times for a single message, since TCP sends a large message as multiple fragments anyway. Each time this happens, the acceptor_learner task is activated and will call read_msg/read_bytes. Until now we have updated only when a complete messages has been received, which may take a long time. By updating the server timestamp inside the loop in read_bytes/buffered_read_bytes, the timestamp will be updated often enough that nodes are not marked as being unavailable. commit 29edf3f8fffa4dd3a6cfdb42aa769d7108e9c7a5 Merge: 31f0274 28dbfd0 Author: Thirunarayanan Balathandayuthapani Date: Mon Mar 20 08:34:57 2017 +0530 Null Merge branch 'mysql-5.6' into mysql-5.7 commit 28dbfd0b41769acc1dd4dcf7d8bd2430b1c64d19 Author: Thirunarayanan Balathandayuthapani Date: Mon Mar 20 08:32:27 2017 +0530 Bug #25175249 ASSERTION: (TEMPL->IS_VIRTUAL && !FIELD) || (FIELD && FIELD->PREFIX_LEN ? FIELD - Post push fix to avoid compilation failure in pb2 commit 1e7cb2a9af423dae8db534e323a69333cec7779d Author: Bharathy Satish Date: Fri Mar 17 13:17:44 2017 +0100 Bug #25717383: MYSQLDUMP MAY EXECUTE ANY ARBITARY QUERY. Post push fix. (cherry picked from commit de4b2f7f7c541b9e97df9a4c7b261065f1de7f6d) commit 239c72507f93bcb9a46cc51f3f607bbfe8ef216c Author: Bharathy Satish Date: Fri Mar 17 08:44:04 2017 +0100 Merge branch 'mysql-5.5' into mysql-5.6 (cherry picked from commit 7396facd28cc8fb6de7817c4e5978993b7267b6b) commit 2f9d9af828689be9b80edb5d8a0f1027aa95082b Author: Harin Vadodaria Date: Wed Mar 15 13:28:57 2017 +0100 Bug#25714674: MYSQL SERVER REMOTE PREAUTH PROBLEM THROUGH INTEGER OVERFLOW Description: A missing length check for length-encoded string causes problem in preauthorization stage. (cherry picked from commit bb1af908fce21b0d8708cdccde628e3d5b1d86ec) commit 3a2a53ac8dd3c7febdbf38ed7b8c90204e620137 Author: Bharathy Satish Date: Fri Mar 17 08:41:31 2017 +0100 Bug #25717383: MYSQLDUMP MAY EXECUTE ANY ARBITRARY QUERY While writing comments if database object names has a new line character, then next line is considered a command, rather than a comment. This patch fixes the way comments are constructed in mysqldump. (cherry picked from commit 1099f9d17b1c697c2760f86556f5bae7d202b444) commit 2a79df23fe534b55f48a51a218797556f5dbe222 Author: Yashwant Sahu Date: Fri Mar 17 18:47:48 2017 +0530 Fix build issues, forest etc. commit 31f02740dade323c98bfce5602c91f52f1cdf616 Merge: e4e0569 de4b2f7 Author: Bharathy Satish Date: Fri Mar 17 13:26:40 2017 +0100 Null merge from mysql-5.6 commit de4b2f7f7c541b9e97df9a4c7b261065f1de7f6d Author: Bharathy Satish Date: Fri Mar 17 13:17:44 2017 +0100 Bug #25717383: MYSQLDUMP MAY EXECUTE ANY ARBITARY QUERY. Post push fix. commit e4e05691fb7941528ee3b2927a4ea6fff23d8888 Merge: f1e6ace 9d97026 Author: Bharathy Satish Date: Fri Mar 17 12:11:11 2017 +0100 Null-merge from 5.6" commit 9d970268634ecdb2764c18508e20b87159a045e7 Author: Bharathy Satish Date: Fri Mar 17 12:07:52 2017 +0100 Bug #25717383: MYSQLDUMP MAY EXECUTE ANY ARBITRARY QUERY Post push fix. Recording main.mysqldump result file. commit f1e6ace429bb95b417e46fa7e5104790dbca5412 Merge: bcc8548 7396fac Author: Bharathy Satish Date: Fri Mar 17 08:59:02 2017 +0100 Merge branch 'mysql-5.6' into mysql-5.7 commit 7396facd28cc8fb6de7817c4e5978993b7267b6b Merge: 31c698e 1099f9d Author: Bharathy Satish Date: Fri Mar 17 08:44:04 2017 +0100 Merge branch 'mysql-5.5' into mysql-5.6 commit 1099f9d17b1c697c2760f86556f5bae7d202b444 Author: Bharathy Satish Date: Fri Mar 17 08:41:31 2017 +0100 Bug #25717383: MYSQLDUMP MAY EXECUTE ANY ARBITRARY QUERY While writing comments if database object names has a new line character, then next line is considered a command, rather than a comment. This patch fixes the way comments are constructed in mysqldump. commit bcc854833591367b1c3b7e08143442cd58521df4 Merge: 5b14c8e 31c698e Author: Thirunarayanan Balathandayuthapani Date: Fri Mar 17 11:25:14 2017 +0530 Null Merge branch 'mysql-5.6' into mysql-5.7 commit 31c698e24feb8391f2b020e9b33b3bd7496b57df Author: Thirunarayanan Balathandayuthapani Date: Fri Mar 17 11:24:25 2017 +0530 Bug #25175249 ASSERTION: (TEMPL->IS_VIRTUAL && !FIELD) || (FIELD && FIELD->PREFIX_LEN ? FIELD - Backport the patch to mysql-5.6 Reviewed-by: Jimmy Yang commit 5b14c8ee20595e2b8aa8cc331b14bd23a87215df Author: Joao Gramacho Date: Fri Apr 29 13:44:13 2016 +0100 BUG#23203678 CHANGING MASTER_DELAY AFTER STOP SLAVE RESULTS IN LOSS OF EVENTS Problem ------- The slave server is losing events not yet applied when MASTER_AUTO_POSITION=0, both replication threads are stopped and the applier delay is changed using CHANGE MASTER TO MASTER_DELAY. Analysis -------- WL#6120 introduced the possibility of issuing CHANGE MASTER TO commands without having both replications threads started. Issuing CHANGE MASTER TO RELAY_LOG_FILE/RELAY_LOG_POS/MASTER_DELAY is possible with only the SQL thread stopped. When both thread are stopped and a CHANGE MASTER TO MASTER_DELAY is being issued, the slave is purging the relay log. In this case, as it is possible that the SQL thread was not in sync with the I/O thread, the SQL thread positions should be copied to the I/O thread. The I/O thread will then start replicating from where the SQL thread stopped, but this (the copy of the positions) is not happening. Fix --- Fixed the behavior of the MASTER_DELAY option. commit 18b373a75391807d765f99a9b07191975403cd09 Author: Joao Gramacho Date: Tue Feb 21 10:08:25 2017 +0000 BUG#25587390 RPL.RPL_XA_SURVIVE_DISCONNECT_LSU_OFF TEST FAILING ON DAILY-5.7 ON PB2 The test case is failing by chance, when the random seeds generate values equal to zero for two test case variables. The fix ensures that the variables will never be zero. commit 52b30b144ccabc25aa30d62b66f5d86f1b2530cf Merge: 579637d 0888195 Author: Joao Gramacho Date: Wed Mar 15 17:01:00 2017 +0000 Merge branch 'mysql-5.6' into mysql-5.7 commit 08881958ea173db18684da9faa2b4322f1f56ba2 Author: Joao Gramacho Date: Tue Mar 14 11:04:46 2017 +0000 BUG#25717761 I_RPL.RPL_STRESS_FLUSH_ROTATE_RELAY_LOG SPORADIC ERROR REPORTED WITH MTS The i_rpl.rpl_stress_flush_rotate_relay_log test case is failing sporadically when executed with MTS because of a non-suppressed error message: Slave SQL for channel '': ... The slave coordinator and worker threads are stopped, possibly leaving data in inconsistent state. The error is happening because there is a "STOP SLAVE" in the test case that is not waiting for the MTS applier to by in sync with the relay log to stop. The provided fix refactored the test case to sync the MTS applier and also removed unneeded STOP/START of the slave threads. commit 579637daba48c372fe6210f33e410fcb4293acfe Author: Harin Vadodaria Date: Wed Mar 15 13:32:22 2017 +0100 Bug#25714674: MYSQL SERVER REMOTE PREAUTH PROBLEM THROUGH INTEGER OVERFLOW Description: A missing length check for length-encoded string causes problem in preauthorization stage. commit dbe8c69488c1d7d156d27d02935c1d6e4a2adc18 Merge: 0970bf1 bb1af90 Author: Harin Vadodaria Date: Wed Mar 15 13:30:24 2017 +0100 Merge branch 'mysql-5.6' into mysql-5.7 commit bb1af908fce21b0d8708cdccde628e3d5b1d86ec Author: Harin Vadodaria Date: Wed Mar 15 13:28:57 2017 +0100 Bug#25714674: MYSQL SERVER REMOTE PREAUTH PROBLEM THROUGH INTEGER OVERFLOW Description: A missing length check for length-encoded string causes problem in preauthorization stage. commit 0970bf1c34b628d1fc45fab5b6debe2fad2f8c92 Merge: 1ba5907 bb012df Author: Kailasnath Nagarkar Date: Wed Mar 15 16:53:51 2017 +0530 Null Merge branch 'mysql-5.6' into mysql-5.7 commit bb012dffd6149eb9d2bfdb74f9033626ee7e1277 Merge: 17811bc 06c46fb Author: Kailasnath Nagarkar Date: Wed Mar 15 16:52:51 2017 +0530 Null Merge branch 'mysql-5.5' into mysql-5.6 commit 06c46fb0ca4a59136b7fa332d4b52f94155c8b83 Author: Kailasnath Nagarkar Date: Wed Mar 15 16:45:21 2017 +0530 Bug #25447551: HANDLE_FATAL_SIGNAL (SIG=11) IN FT_BOOLEAN_CHECK_SYNTAX_STRING ISSUE: my_isalnum macro used for checking if character is alphanumeric dereferences uninitialized pointer in default character set structure resulting in server exiting abnormally. FIX: Used standard isalnum function instead of macro my_isalnum. commit 07dc66331eac15e130fade7cc0fe0db77d4217b5 Author: Ramil Kalimullin Date: Mon Mar 13 17:01:59 2017 +0400 BUG#25575605: SETTING --SSL-MODE=REQUIRED SENDS CREDENTIALS BEFORE VERIFYING SSL CONNECTION Changed MYSQL_OPT_SSL_MODE to be the same as in 5.6 (ABI compatibility). (cherry picked from commit 47bb4eb5df1629b5d5e30aebfa9d7a6d74388a5d) commit 1ba590721f6ffbbcbf8f173cb1e9122f98bc3f9f Author: Erlend Dahl Date: Tue Mar 14 05:18:32 2017 +0100 Revert "Bug#22671846: SENDING LARGE MESSAGES CAN TRIGGER NODE EXIT FROM GROUP" commit f064d9f95a95cf20a810e5aca5192f90ff167a7d Author: Ole-Hjalmar Kristensen Date: Mon Mar 13 19:51:45 2017 +0100 Fixed compile error introduce by fix for Bug#22671846. commit c3455a9ba5bbd80ae879c01fc4faad432d341f67 Author: Piotr Obrzut Date: Mon Mar 13 18:54:10 2017 +0100 Revert for the fix for the 'Bug#23593091: MYSQL SERVER MSI - REGISTRY ITEMS LEFT BEHIND WHEN > 1 SERVER VERSION INSTALLED' The Server Installer needs some changes to accomodate for this fix so it got postponed for the next release. commit 09b50ab8c41db000561d92809e48755b907c149b Merge: 67475cc 17811bc Author: Piotr Obrzut Date: Mon Mar 13 18:16:48 2017 +0100 Merge branch 'mysql-5.6' into mysql-5.7 commit 67475cc3b109f7f16ee9f65cd8ba26d288a0458a Author: Ole-Hjalmar Kristensen Date: Tue Mar 7 18:42:21 2017 +0100 Bug#22671846: SENDING LARGE MESSAGES CAN TRIGGER NODE EXIT FROM GROUP Problem: When large messages are sent, the XCOM thread becomes busy for a long time sending it. As this happens, mainly as the number of member nodes grows, the alive task can trigger a group view change and GCS can trigger a node exit due to the 5 second timeout period. Solution: For large messages, the select will mark the socket as readable many times for a single message, since TCP sends a large message as multiple fragments anyway. Each time this happens, the acceptor_learner task is activated and will call read_msg/read_bytes. Until now we have updated only when a complete messages has been received, which may take a long time. By updating the server timestamp inside the loop in read_bytes/buffered_read_bytes, the timestamp will be updated often enough that nodes are not marked as being unavailable. commit 17811bc0759ef241d46b2ef1e6f51bc1c4f5695d Author: Piotr Obrzut Date: Mon Mar 13 18:09:51 2017 +0100 Revert for the fix for the 'Bug#23593091: MYSQL SERVER MSI - REGISTRY ITEMS LEFT BEHIND WHEN > 1 SERVER VERSION INSTALLED' The Server Installer needs some changes to accomodate for this fix so it got postponed for the next release. commit 2626bf3859ea240487b94fe1f56761b031add74d Merge: 3b201be 7a042d3 Author: Ramil Kalimullin Date: Mon Mar 13 17:06:03 2017 +0400 Null-merge from mysql-5.6 commit 7a042d3c38f17aaca6c6ea46e71868c8e4819c7b Merge: 0d07d7f 47bb4eb Author: Ramil Kalimullin Date: Mon Mar 13 17:05:38 2017 +0400 Null-merge from mysql-5.5 commit 47bb4eb5df1629b5d5e30aebfa9d7a6d74388a5d Author: Ramil Kalimullin Date: Mon Mar 13 17:01:59 2017 +0400 BUG#25575605: SETTING --SSL-MODE=REQUIRED SENDS CREDENTIALS BEFORE VERIFYING SSL CONNECTION Changed MYSQL_OPT_SSL_MODE to be the same as in 5.6 (ABI compatibility). commit 3b201be6779b0c00b4a6f550df2df4201922c334 Merge: 015f58f 0d07d7f Author: Sreeharsha Ramanavarapu Date: Mon Mar 13 17:39:34 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 0d07d7fd7d043e23ee6b4f350b346f87057b750b Author: Sreeharsha Ramanavarapu Date: Mon Mar 13 17:37:29 2017 +0530 Bug #25196653: INCORRECT BEHAVIOR OF SP IN INDEX CONDITION PUSHDOWN Issue: ------ This problem occurs when: 1) A certain type of Stored Procedure / Function (SP) is used in a query's WHERE clause. 2) Such a condition is pushed to the storage engine as part of Index Condition Pushdown (ICP). Root cause: ----------- When a condition containing an SP is pushed down as part of ICP, it might initiate new sql statements which are part of SP. This is not allowed by some storage engines. Fix: ---- A condition containing SP is currently restricted from being part of ICP. But in certain cases Item_func_sp can be converted to a constant item (Item_cache_*) and the same check needs to applied in this case too. commit 015f58fb4ef6c81e4704dfedc6952d9a21fff906 Author: Tor Didriksen Date: Fri Mar 10 15:04:46 2017 +0100 Make unit tests ASAN clean: Disable (FatalSignalDeathTest, Segfault) for ASAN Backport from trunk: 5fcdc09e5d60cfddc40d23b02b5334038657a3b7 Fix flaky InnoDB unit test mem0mem by using SetUpTestCase rather than SetUp. b8c056699e7c0895ec2439ee1fa4db7f186406d8 Fix memory leak in ut0new unit test. commit f3e297d822efb6d638bd187da12f248ea0915a6a Author: Tor Didriksen Date: Wed Mar 8 16:57:45 2017 +0100 Bug#25685958 ASSERTION FAILED: RETVAL == 0 IN ITEM_SUM_HYBRID::VAL_DECIMAL() Turns out the DBUG_ASSERT added as part of patch for Bug#59686 is a bit too strict. Relax it to accept a nullptr or a zero value. commit f65e27bcaa51c3327fb127dd333de787af465f8f Merge: 000a60d 672ede5 Author: Marc Alff Date: Mon Mar 13 11:09:53 2017 +0100 Merge branch 'mysql-5.6' into mysql-5.7 commit 672ede5c9f4be7a2029f630b89c9933cc94cf875 Author: Marc Alff Date: Mon Mar 13 11:06:57 2017 +0100 Test cleanup for windows, which prints host:port in column host. commit 000a60db274eaeaba69a1831375469552ee5fcf5 Author: Thirunarayanan Balathandayuthapani Date: Mon Mar 13 15:03:15 2017 +0530 Bug #25175249 ASSERTION: (TEMPL->IS_VIRTUAL && !FIELD) || (FIELD && FIELD->PREFIX_LEN ? FIELD - Fix post-push failure regarding missing check of clust_templ_for_sec before calling fts doc id extraction. Reviewed-by: Jimmy Yang commit 24d1e36b477aab85c480408f9ec9e5090938368e Merge: cbb2565 7f0e47d Author: Karthik Kamath Date: Fri Mar 10 22:40:02 2017 +0530 Null merge branch 'mysql-5.6' into mysql-5.7 commit 7f0e47d678973db400181799a68490eb6d028958 Merge: f91b941 031cb6c Author: Karthik Kamath Date: Fri Mar 10 22:38:24 2017 +0530 Null merge branch 'mysql-5.5' into mysql-5.6 commit 031cb6c9f2d8b669bea62ce2b63b327e3a059d8a Author: Karthik Kamath Date: Fri Mar 10 22:34:38 2017 +0530 BUG#24807826: UINT3KORR SHOULD STOP READING FOUR INSTEAD OF THREE BYTES ON X86 Post push fix for resolving main.archive test failure in valgrind. commit cbb256541e35923d5c87051c10a154adac877391 Author: Jaideep Karande Date: Fri Mar 10 12:35:58 2017 +0100 BUG#25510757: PREVENT LARGE TRANSACTIONS IN GROUP REPLICATION A large transaction can have bad consequences on a group, either in terms of memory allocation and on network bandwidth consumption, which may cause failure detector to think that a given member is unreachable while it is just busy. To avoid these bad consequences, we introduce a safety option which prevents big transactions to being committed on the group. DBA can configure this option in order to match her/his workload requirements. Introduced new global variable to limit transaction size. DML transactions that overcome that limit are rollback. Option name: group_replication_transaction_size_limit= bytes Variable Scope Global Dynamic Variable Yes Type integer Default 0 (5.7) 150000000 (8.0) Min Value 0 Max Value 2147483647 Value of 0 will allow transaction of any size, switching off option. commit 7b485523772fbd80d0e609d403aa5f87295fe89c Author: Ramil Kalimullin Date: Fri Mar 10 02:05:24 2017 +0400 BUG#25575605: SETTING --SSL-MODE=REQUIRED SENDS CREDENTIALS BEFORE VERIFYING SSL CONNECTION MYSQL_OPT_SSL_MODE option introduced. It is set in case of --ssl-mode=REQUIRED and permits only SSL connection. (cherry picked from commit f91b941842d240b8a62645e507f5554e8be76aec) commit 47857fb511fe8581afe8dc4fb5182ad7d3b84f96 Author: Lars Tangvald Date: Wed Mar 1 13:30:58 2017 +0100 Bug#25648545 PACKAGING CONFLICTS WITH MARIADB PACKAGES ON DEBIAN/UBUNTU Added conflicts: * mysql-packagesource-client conflicts with mariadb client * mysql-packagesource-server conflicts with mariadb server * mysql-packagesource-test conflicts with mariadb test package (cherry picked from commit 7b50590b2512eb063f2d6c012aca7e4b52d17558) commit 4dbbd9917b4670ce639e437e44217f78ec5d26ee Author: Lars Tangvald Date: Tue Feb 28 13:38:24 2017 +0100 Bug#25643023 SERVER ABORTING WHILE INITIALIZING DATABASE WITH INIT SCRIPTS If the datadir is deleted and the service restarted, the service script will reinitialize the database, then try to set auth_socket plugin for the now passwordless root account. The latter should not happen, because a) It's a major change in an old GA, and b) The sql simply fails, since it's run in bootstrap mode. (cherry picked from commit c93e3dfcca4a59c4228c5bce1eaac7b83f2c31db) commit 7597dc927e5fd5f5bd2259b190cc70ed15c8e167 Author: Terje Rosten Date: Fri Mar 10 10:08:14 2017 +0100 Bug#25672750 PASSWORD VALIDATION PLUGIN ACTIVATION IS BINLOGGED FOR RPM DISTRIBUTION Disable logging to binary log in scripts. Also syncs SysV initscript and systemd ExecPre script. commit 2ec030813eff3e3102dd15c1ed5b28211009902d Author: Ramil Kalimullin Date: Fri Mar 10 01:19:50 2017 +0400 BUG#25575605: SETTING --SSL-MODE=REQUIRED SENDS CREDENTIALS BEFORE VERIFYING SSL CONNECTION MYSQL_OPT_SSL_MODE option introduced. It is set in case of --ssl-mode=REQUIRED and permits only SSL connection. (cherry picked from commit 3b2d28578c526f347f5cfe763681eff365731f99) commit 76262b07a3e95edebe0f634abe131785768fabaf Merge: 9c351ec f91b941 Author: Ramil Kalimullin Date: Fri Mar 10 02:06:29 2017 +0400 Null-merge from mysql-5.6 commit f91b941842d240b8a62645e507f5554e8be76aec Author: Ramil Kalimullin Date: Fri Mar 10 02:05:24 2017 +0400 BUG#25575605: SETTING --SSL-MODE=REQUIRED SENDS CREDENTIALS BEFORE VERIFYING SSL CONNECTION MYSQL_OPT_SSL_MODE option introduced. It is set in case of --ssl-mode=REQUIRED and permits only SSL connection. commit 9c351ece3969169bf1ad27320a9725e14fad12ea Merge: cd88a9d eb7e68e Author: Ramil Kalimullin Date: Fri Mar 10 01:30:55 2017 +0400 Null-merge from mysql-5.6 commit eb7e68ee6bdfbf39ec9ac5fa0c3bf08b30afa989 Merge: 821b976 3b2d285 Author: Ramil Kalimullin Date: Fri Mar 10 01:29:17 2017 +0400 Null-merge from mysql-5.5 commit 3b2d28578c526f347f5cfe763681eff365731f99 Author: Ramil Kalimullin Date: Fri Mar 10 01:19:50 2017 +0400 BUG#25575605: SETTING --SSL-MODE=REQUIRED SENDS CREDENTIALS BEFORE VERIFYING SSL CONNECTION MYSQL_OPT_SSL_MODE option introduced. It is set in case of --ssl-mode=REQUIRED and permits only SSL connection. commit cd88a9dc2bbf6436b6c17be8af2ba8e50a7a911d Author: Maria Couceiro Date: Thu Mar 9 15:33:45 2017 +0000 BUG#22150112 REPLICATION BREAKS WITH NOT PRESERVE EVENTS Problem and analysis: Events defined as "ON COMPLETION NOT PRESERVE" can be automatically dropped when they complete executing or when the scheduler is started. The issue reported refers to when the event scheduler is started and events that have passed their execution times are automatically dropped. This automatic drop was already removing the event from the event queue and from the mysql.event table. However, it was not being written to the binlog and, consequently, a slave would not replicate these drop events. This would cause an error on the slave if the master created another event with the same name as one automatically dropped. Fix: When the scheduler is started, if any event is dropped automatically, the drop is written to the binlog so that it can be replicated to the slaves. commit b5a8aef550b0eb9c2ccfb9d86da4b8fe3d845b00 Merge: 3bb768f 821b976 Author: Terje Rosten Date: Thu Mar 9 11:41:48 2017 +0100 Merge branch 'mysql-5.6' into mysql-5.7 commit 821b976814e3b3d26961c03a01e47be46c3b04fb Merge: 8c1a0ff 7546938 Author: Terje Rosten Date: Thu Mar 9 11:40:47 2017 +0100 Merge branch 'mysql-5.5' into mysql-5.6 commit 7546938d2a80b4fd245ba8cba4b4260ca2e9b543 Author: Terje Rosten Date: Wed Mar 8 08:29:02 2017 +0100 BUG#25364806 MYSQLD_SAFE FAILING TO START IF DATADIR GIVEN IS NOT ABSOLUTE PATH mysqld_safe is working on real files, however passing these file paths as is to mysqld as options gives different meaning when paths are relative. mysqld_safe uses current working directory as basedir for relative paths, while mysqld uses $datadir as basedir. commit 3bb768f711dc97fe45f38f9ac15cbb202105273b Merge: 9c749d3 8c1a0ff Author: Karthik Kamath Date: Thu Mar 9 15:00:40 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 8c1a0ff645621c9dd98f267496000f9d245e6209 Merge: c35e1d5 909d9b8 Author: Karthik Kamath Date: Thu Mar 9 14:58:51 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 909d9b8aae960fc68e17d0c1fcfe1dd0c77bcd41 Author: Karthik Kamath Date: Thu Mar 9 14:57:20 2017 +0530 BUG#24807826: UINT3KORR SHOULD STOP READING FOUR INSTEAD OF THREE BYTES ON X86 Analysis: ========= The macro uint3korr reads 4 bytes of data instead of 3 on on x86 machines. Multiple definitions were created for this macro for optimization in WIN32. The idea was to optimize reading of 3 byte ints by reading an ordinary int and masking away the unused byte. However this is an undefined behavior. It will be an issue unless users are aware of allocating an extra byte for using this macro. Fix: ==== Removing the definition which reads 4 bytes of data. The only definition of this macro would now read just 3 bytes of data thus prohibiting the usage of an extra byte. Note: ===== This is a backport of Patches #5 and #6 for Bug#17922198. commit 9c749d320dd593970250794de6d2cf284872d5c8 Author: Marc Alff Date: Wed Mar 8 15:58:14 2017 +0100 Test cleanup for 5.7 commit 86a6a0cf545974dc7d9a668e4ec2f23d533806d1 Merge: 69f39d4 c35e1d5 Author: Marc Alff Date: Wed Mar 8 15:56:17 2017 +0100 Merge branch 'mysql-5.6' into mysql-5.7 commit c35e1d5ebb8866e0314bbefe2f350c16c8e985c1 Author: Marc Alff Date: Wed Mar 8 15:55:19 2017 +0100 Test cleanup commit 69f39d4ef28648aafb235108cd3616ead93a527c Merge: 85919e9 31a302d Author: Marc Alff Date: Wed Mar 8 13:57:41 2017 +0100 Merge branch 'mysql-5.6' into mysql-5.7 commit 31a302d880df99c25864d058f81f2fc5387ad118 Author: Marc Alff Date: Tue Mar 7 15:00:30 2017 +0100 Bug#25309017 - THE FIX FOR BUG 78777 HAS DIFFERENT BEHAVIOR WITH PERF. SCHEMA VS. WITHOUT IT Context: ======== Before the fix for MySQL BUG 78777, THD::proc_info was not reset when a session goes IDLE. While SHOW PROCESSLIST handled this case, SHOW ENGINE INNODB STATUS did not, and displayed an incorrect status for an idle thread. The fix for bug 78777 exposed then another issue: When a session that was IDLE is now active again, aka when a request is received, the session status is not always changed back to reflect the statement execution. When compiling with the performance schema, the session status was changed to Init, as expected. When compiling without the performance schema, the session status was left unchanged. In particular for the SHOW PROCESSLIST statement, the STATE column for the running session did not reflect that this statement is being executed (with a state set to Init). Having statements that behave differently with and without the performance schema is very undesirable, as this confuse monitoring tools and cause regressions. Root cause: =========== The problem is with init_net_server_extension(). When compiling without the performance schema, this function takes a shortcut and do not hook up net_before_header_psi() and net_after_header_psi() at all, assuming these functions have no effect. This is incorrect, init_net_server_extension() has an effect even without hte performance schema, because the call to THD_STAGE_INFO() affects THD::proc_info, which is the data exposed in column STATE in SHOW PROCESSLIST. The reason for THD_STAGE_INFO() to behave this way is to maintain consistency between - the (relatively recent) performance schema STAGE instrumentation - the existing THD::proc_info instrumentation, which has to be preserved for backward compatibility. Fix: ==== In init_net_server_extension(), do not take shortcuts when compiling without the performance schema. Invoke net_after_header_psi() normally, by hooking up the callback. Tested both with and without the performance schema. commit 85919e9d2b5e518c199665d357d3bd366786d3bc Author: Venkatesh Duggirala Date: Tue Mar 7 18:39:50 2017 +0530 Bug#24285104 RELAY LOG CORRUPTION NOT HANDLED CORRECTLY WITH MULTI-SOURCE REPLICATION Post push: Fixing a test failure commit ca59ea753b757942c834093c83b1e83717a62869 Author: Aditya A Date: Tue Mar 7 16:16:06 2017 +0530 Bug #23046302 COUNT(*) MUCH SLOWER ON 5.7 THAN 5.6 Test case fix for cmp_per_index.test which was using count(*) for scanning the table using primary index. The removal of Wl6742 triggered count(*) to use secondary index which was causing the test to fail for some innodb compression levels. Fix is to force the table to use primary index by doing select * from table. commit 6960299bb23d554838d88ca412a79ff7cbb034b4 Author: Yashwant Sahu Date: Tue Mar 7 12:20:12 2017 +0530 Fixed crash commit f88d481d308b4047bea817be2af1bd686766f34e Author: Erik Froseth Date: Mon Mar 6 13:05:05 2017 +0100 WL#10166 Require WKB input in WKB parsing functions Post-push fix: re-record test case Change-Id: I7064d26c76ca0a35a040dffd76a5587214ee752f commit 8634f1ff852579e7bb609b4055e677f0341e0c29 Author: Yashwant Sahu Date: Fri Mar 3 18:23:04 2017 +0530 window fixed commit 88c2441d41933307208227629481adfe28ac764f Author: Lars Tangvald Date: Wed Mar 1 13:04:07 2017 +0100 Bug#25650096 PACKAGE UPGRADE FROM 5.5 NATIVE TO 5.7 THROWS ERRORS ON DEBIAN When upgrading from native 5.5 packages in Debian we need to reset ownership on /var/run/mysqld (owned by root), or the systemd service will throw an error because it can't assign it to the mysql user. commit 9fa34bcd92e949d96b2d6a21104d3c1fc7c85d18 Author: Lars Tangvald Date: Tue Feb 28 12:40:34 2017 +0100 Bug#25641417 PACKAGE UPGRADE FROM 5.6 TO 5.7 FAILING ON DEBIAN/UBUNTU PLATFORMS The mysql_plugin file is in the client package in 5.6, and server in 5.7, causing file conflicts on upgrade. commit 4def8562953def72a561553e91985e5303cde41b Author: Yashwant Sahu Date: Fri Mar 3 15:51:02 2017 +0530 Fixed build issues. commit 0f94c14be2276f93b6a98b397111cb475076e0a6 Merge: cf4ab59 7b50590 Author: Lars Tangvald Date: Fri Mar 3 11:12:26 2017 +0100 Merge branch 'mysql-5.6' into mysql-5.7 commit 7b50590b2512eb063f2d6c012aca7e4b52d17558 Author: Lars Tangvald Date: Wed Mar 1 13:30:58 2017 +0100 Bug#25648545 PACKAGING CONFLICTS WITH MARIADB PACKAGES ON DEBIAN/UBUNTU Added conflicts: * mysql-packagesource-client conflicts with mariadb client * mysql-packagesource-server conflicts with mariadb server * mysql-packagesource-test conflicts with mariadb test package commit cf4ab59edd2ec191acc4f2b14a19aa529931ec88 Merge: 2409846 c93e3df Author: Lars Tangvald Date: Fri Mar 3 11:09:31 2017 +0100 Null merge branch 'mysql-5.6' into mysql-5.7 commit c93e3dfcca4a59c4228c5bce1eaac7b83f2c31db Author: Lars Tangvald Date: Tue Feb 28 13:38:24 2017 +0100 Bug#25643023 SERVER ABORTING WHILE INITIALIZING DATABASE WITH INIT SCRIPTS If the datadir is deleted and the service restarted, the service script will reinitialize the database, then try to set auth_socket plugin for the now passwordless root account. The latter should not happen, because a) It's a major change in an old GA, and b) The sql simply fails, since it's run in bootstrap mode. commit 24098469fb4d402f93d0a0390d1ff73a37c76ec0 Author: Thirunarayanan Balathandayuthapani Date: Thu Mar 2 15:31:34 2017 +0530 Bug #22963951 REDUCE THE TIME OF LOOKING FOR MLOG_CHECKPOINT DURING CRASH RECOVERY - Post-push fix commit 6f909b48b8f324079dd9f2a2813312194d17cff1 Author: Oystein Grovlen Date: Wed Mar 1 14:29:48 2017 +0100 Bug#25650399: DOWNGRADE FROM MYSQL 8.0 TO 5.7 WILL CRASH SERVER MySQL 8.0 adds a generated column to the two tables mysql.server_cost and mysql.engine_cost. MySQL 5.7 fails if system tables contain generated columns. Hence, downgrade to 5.7 will not work when cost tables contain generated columns from 8.0. This patch is for 5.7 and backports fix to read_cost_constants() from 8.0. mysql_system_tables_fix.sql is changed to remove columns should they exist. This will make mysql_upgrade, if run during downgrade, restore these tables to its original form. sql/opt_costconstantcache.cc In order for resolving of generated column to work correctly when opening cost tables, lex_start() must be called. scripts/mysql_system_tables_fix.sql Add SQL code to remove the columns from 8.0 should they exist. scripts/mysql_system_tables.sql Specify only non-default values in insert statements for cost tables. This way mysql_upgrade does not give errors if extra columns exist. mysql-test/t/opt_costmodel_downgrade.test mysql-test/r/opt_costmodel_downgrade.result Test to verfiy that 5.7 does not crash should generated columns exist in cost tables. Also verifies that running mysql_upgrade will remove the columns. commit ea15198672a29514d61be2a0ebf59020944b9429 Author: Thirunarayanan Balathandayuthapani Date: Thu Mar 2 11:56:15 2017 +0530 Bug #22963951 REDUCE THE TIME OF LOOKING FOR MLOG_CHECKPOINT DURING CRASH RECOVERY Analysis: ========= In mysql-5.7, there can be maximum three scans are possible. Simultaneous scan and apply is possible only in the third scan. First scan: Scan all the redo logs from checkpoint lsn and process only MLOG_FILE_* records during first scan. It scans till the last MLOG_CHECKPOINT. Second scan: Scan all redo logs from checkpoint lsn and add log records to hash table. It verifies whether space id is having corresponding MLOG_FILE_NAME record. If the hash table heap memory is reached the threshold then stop adding records to hash but it continues to scan till end of the redo log file. Third scan: Scan all redo logs from checkpoint lsn and add log records to hash table only if the tablespace exists. If the heap memory reached the threshold then simultaneous scan and apply will happen. Note: Third scan only happens if hash table memory reaches the threshold during second scan. Fix: ==== Merge first scan and second scan and make it a single scan. Single scan if the hash table doesn't reach the threshold limit. In worst case scenario, it does two scan. Reviewed-by: Debarun Banerjee RB: 14725 commit 3d128e906a4b788aacb2ac76fc1ccc5e10c4b0e1 Author: Marek Szymczak Date: Wed Mar 1 17:23:53 2017 +0100 Bug#25541837 PRIVILEGE_SUPER=FALSE RESETS ALMOST ALL PERMISSIONS Problem: ======== Invalid boolean operator used during removal of the specified privilege, using the sec context service. Fix: ==== Unary complement (bit inversion) applied during unsetting specified privilege, using the sec context service. Reviewed-by: ============ Georgi Kodinov Steinar Gunderson commit 273b529be4ce9434779141d597a173defef0c292 Author: Anibal Pinto Date: Tue Feb 28 15:40:45 2017 +0100 BUG#25256910: NODE RECOVERY FAILS WITH ERROR_CODE: 1062; HANDLER ERROR HA_ERR_FOUND_DUPP_KEY [Post-Fix] Failures were detected on weekly-5.7 failing the execution of DROP TABLE t1. An explanation for this problem is that at the end of the test we start the server 2 applier again. The applier has a transaction to apply on t1 but we never check if it is already applied or not. In the end of the test we also do a drop on table t1, that in theory could be certified and executed sooner than the remote transaction on t1. So it was added a wait condition to confirm the presence of the data on server2. commit 1258dd40d34c151650c6e21ad79393d3b6085ddd Author: Pavan Naik Date: Wed Mar 1 10:58:50 2017 +0530 BUG#25601131 : BACK-PORT 'TEST-PROGRESS' OPTION TO MYSQL-5.7 Beck-port of BUG#20755059 commit 6f4f535c0bc57379eb3531a19cb30f0cf7deca3b Author: Venkatesh Duggirala Date: Wed Mar 1 08:23:26 2017 +0530 Bug#24285104 RELAY LOG CORRUPTION NOT HANDLED CORRECTLY WITH MULTI-SOURCE REPLICATION Post push: Fixing build issue commit cc3cc1207b9ecdd41c97426602b8f71fa472d4e6 Author: Venkatesh Duggirala Date: Tue Feb 28 22:20:14 2017 +0530 Bug#24285104 RELAY LOG CORRUPTION NOT HANDLED CORRECTLY WITH MULTI-SOURCE REPLICATION Problem: Corruption of one channel's relay logs + server restart is making few channels (good channels) to disappear. Analysis: In create_slave_info_objects(), after reading the all the available channels from the repository tables, server create and initialize each and every channel. The logic was written in such a way that if there is an error while initializing one channel, server will skip creating other channels than the default one. Also when the skip-slave-start=false, server should start the slave threads for all the channels. But the logic is written in a way that if there is an error during initialization of a channel, it will skip starting slave threads for those channels which are in good condition as well. Fix: Both problems that are explained above in the analysis section are fixed now. Now irrespective of errors on other channels, server will try to create/initialize channels that are in good condition and also it will start slave threads for the good channels if skip-slave-start is disabled. Also as part of this fix, we have restructured create_slave_info_objects function to increase the code readability START SLAVE and STOP SLAVE, which are supposed to operate on all the channels, are also modified such that they will continue executing on all good channels even if they find one bad channel in between. commit dc649662ae5f65041fabe46309a8bbc54389c390 Author: Karthik Kamath Date: Tue Feb 28 18:07:46 2017 +0530 BUG#24595581: NULL POINTER DEREFERENCE WHILE USING LONGTEXT FUNCTION IN SUBQUERY ANALYSIS: ========= Server runs into null pointer dereferencing when a deterministic function returning longtext is used in a subquery. Item::const_item() is 'true' for all items having no table reference bits set. So it is 'true' for subqueries and deterministic functions that do not reference any tables. However, we cannot always consider items to be constant based on the referenced table bits. In this scenario, a deterministic function is considered a const item. Hence the resolver tries to evaluate the function in the preparation phase. At this phase, the query tables are open but not locked. After the evaluation, all the tables in the outer query block are closed. Later during the execution phase, when we try to lock the query tables, the TABLE object will be unused, thus leading to a null pointer dereference. FIX: ==== We are overriding the function 'fix_after_pullout' in the 'Item_func_sp' class where we are not considering deterministic functions as const items based on their table reference, thus preventing the resolver from evaluating the function in the preparation phase. commit 8eb46eda365a8050b2a598350ffa151c3191ded3 Author: Yashwant Sahu Date: Tue Feb 28 17:07:47 2017 +0530 Fix build issues. commit 5a62916a9be64f9f9418de3caade01cfe44b4c4b Author: Yashwant Sahu Date: Tue Feb 28 15:55:53 2017 +0530 Fixe build issues commit b0758de5f4aafa10d103ed81931e2181e72c7a37 Author: Yashwant Sahu Date: Tue Feb 28 15:17:01 2017 +0530 Fix build issues and added tests commit bd6b053807a12c2cd9079cad88819fa608e056db Author: Lars Tangvald Date: Tue Feb 28 07:27:03 2017 +0100 Backport fix for Bug#22849423 to 5.6 The fix adds the Debian/Ubuntu install path to mtr search ca (cherry picked from commit a3ef6eadac144cc4aa426e0b1a6e027d55ac7d36) commit 3fb44f9a128dfaee6375cb38590c37293530f488 Merge: 245f0cb a3ef6ea Author: Lars Tangvald Date: Tue Feb 28 07:28:00 2017 +0100 Merge branch 'mysql-5.6' into mysql-5.7 commit a3ef6eadac144cc4aa426e0b1a6e027d55ac7d36 Author: Lars Tangvald Date: Tue Feb 28 07:27:03 2017 +0100 Backport fix for Bug#22849423 to 5.6 The fix adds the Debian/Ubuntu install path to mtr search ca commit 245f0cbdaed263c8e198a4693d2e6659d3660610 Merge: 18daf1f 9b24c83 Author: Sujatha Sivakumar Date: Tue Feb 28 11:32:51 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit 9b24c83bb601b9a634e165ded7d8d209cbe25eab Author: Sujatha Sivakumar Date: Tue Feb 28 11:29:02 2017 +0530 Bug#25076007: SERVER CRASHES IF BINARY LOG IS ROTATED AND DISK-FULL CONDITION OCCURS Post push fix. Adding Doxygen comment. commit 18daf1f9fd258a13e5f194c58a40a79fcb8c8125 Merge: ad94354 e676549 Author: Sujatha Sivakumar Date: Tue Feb 28 10:43:58 2017 +0530 Merge branch 'mysql-5.6' into mysql-5.7 commit e676549f1a7baf4a36b646ab364daaeeecefc445 Author: Sujatha Sivakumar Date: Tue Feb 28 10:40:17 2017 +0530 Bug#25076007: SERVER CRASHES IF BINARY LOG IS ROTATED AND DISK-FULL CONDITION OCCURS Description: ============ Master Server crashes if binary log is rotated and disk-full condition occurs on binlog stored partition. Analysis: ========= In Master Slave setup when slave requests for data from the master, a dump thread is created and the dump tread initially checks for the existence of binary log. If the binary log is enabled it continuously reads data from the binary log and sends it to slave. If due to some critical error, as mentioned in bug scenario, rotation of binary log fails due to disk-full scenario then the action specified in binlog_error_action is taken. If users choose to ignore the error, then the binary log will be disabled.Both the binary log file/index file are closed. Their corresponding IO_CACHEs are cleared. The server will continue to do its work without writing transactions into the binary log. In such case dump thread will get EOF on current binary log and it will try to move to next binary log. At this point dump thread assumes that binary log is still active and tries to read the next binary log file name from index file IO_CACHE. Since the IO_CACHE is in cleared state it causes server to exit abnormally. Fix: === Added a check for the existence of binary log when dump thread is switching to next binary log. If binary log is in disabled state, all binary logs up to the current active log are transmitted to slave and an error is returned to the receiver thread. During testing valgrind issues were found in open_binlog code. At the time of disabling binary log only the IO_CACHE of binary log index file is cleared without closing the actual binary log index file. This results in memory leak. Replaced individual cleanup steps with appropriate cleanup function call. commit ad943544efdc1082e6abeb2d561841e06252f1a2 Merge: 7d1cb95 880c896 Author: Sujatha Sivakumar Date: Tue Feb 28 10:08:35 2017 +0530 Bug#24901077: RESET SLAVE ALL DOES NOT ALWAYS RESET SLAVE Merge branch 'mysql-5.6' into mysql-5.7 commit 880c896253ecd7dbabcf73bccde6890f9bd2244e Merge: bdf3c02 e0de998 Author: Sujatha Sivakumar Date: Tue Feb 28 10:04:50 2017 +0530 Bug#24901077: RESET SLAVE ALL DOES NOT ALWAYS RESET SLAVE Merge branch 'mysql-5.5' into mysql-5.6 commit e0de998d32b97db344ae7ced3e4654bc970ee589 Author: Sujatha Sivakumar Date: Tue Feb 28 10:00:51 2017 +0530 Bug#24901077: RESET SLAVE ALL DOES NOT ALWAYS RESET SLAVE Description: ============ If you have a relay log index file that has ended up with some relay log files that do not exists, then RESET SLAVE ALL is not enough to get back to a clean state. Analysis: ========= In the bug scenario slave server is in stopped state and some of the relay logs got deleted but the relay log index file is not updated. During slave server restart replication initialization fails as some of the required relay logs are missing. User executes RESET SLAVE/RESET SLAVE ALL command to start a clean slave. As per the documentation RESET SLAVE command clears the master info and relay log info repositories, deletes all the relay log files, and starts a new relay log file. But in a scenario where the slave server's Relay_log_info object is not initialized slave will not purge the existing relay logs. Hence the index file still remains in a bad state. Users will not be able to start the slave unless these files are cleared. Fix: === RESET SLAVE/RESET SLAVE ALL commands should do the cleanup even in a scenario where Relay_log_info object initialization failed. Backported a flag named 'error_on_rli_init_info' which is required to identify slave's Relay_log_info object initialization failure. This flag exists in MySQL-5.6 onwards as part of BUG#14021292 fix. During RESET SLAVE/RESET SLAVE ALL execution this flag indicates the Relay_log_info initialization failure. In such a case open the relay log index/relay log files and do the required clean up. commit 7d1cb95cbbdc5314433fabb2c7f7ac3f54d2167b Author: Aditya A Date: Tue Feb 28 08:02:59 2017 +0530 Bug #25080442 PARTITIONED TABLES USE MORE MEMORY IN 5.7 THAN 5.6 Additional features in innodb have added new variables in memory structures which increases the total memory usage. In dict_index_t in-memory structure which is allocated for each index these three additional members are added in mysql-5.7. last_ops_cur_t* last_ins_cur :- cache the last insert position. last_ops_cur_t* last_sel_cur :- cache the last selected position rec_cache_t rec_cache :- cache the field that needs to be re-computed on each insert. These three caches are only used for temporary or intrinsic tables but memory for them is allocated for all tables which increases the overall usage of memory Fix --- This fix optimizes the memory usage by allocating memory for these caches only when they are used . commit a0066a01a825cb8f0ec5d023f22cea0d7473fe50 Merge: 9da96bc 707a693 Author: Jens Even Berg Blomsøy Date: Mon Feb 27 20:57:01 2017 +0100 WL#10166 Require WKB input in WKB parsing functions Give a deprication warning when using geometries as parameters to the FromWKB functions. This functionality will be removed in 8.0. commit 9da96bc242a59a9ba7add49814f9ddb63d070085 Author: Shishir Jaiswal Date: Mon Feb 27 22:16:00 2017 +0530 Bug#24816271 - OKVCLIENT.ORA MUST HAVE STANDBY_SERVER DESCRIPTION =========== Initialization of keyring_okv Oracle Key Vault plugin fails when STANDBY_SERVER in the config file 'okvclient.ora' is missing. There could be a scenario when SERVER entry is present but STANDBY_SERVER entry is absent in the config file. In such a case initialization should not stop as the former exists, but its not happening at present and hence this bug. ANALYSIS ======== The config file is parsed in OraConfFileParser::parse(). It returns error if 'standby_server_url' is empty, making it mandatory to set its value in config file okvclient.ora. This restriction should be removed. FIX === Setting STANDBY_SERVER in config file is made optional now. When 'standby_server_url' is empty, a warning stating the same is thrown but the initialization is continued. NOTE ==== This change would accompany a corresponding modification in documentation too. It now needs to be clearly mentioned that STANDBY_SERVER hereon is an optional entry in config file 'okvclient.ora' commit 3fa9831662d6ddb25f5fd64dbbdc62f2c163a439 Merge: 89ee0ff bdf3c02 Author: Balasubramanian Kandasamy Date: Mon Feb 27 17:28:51 2017 +0530 Raise version number after cloning 5.7.18 commit bdf3c0202303390f91741ac90d7e0f1c46fb66df Merge: 4265487 7df8dc7 Author: Balasubramanian Kandasamy Date: Mon Feb 27 17:24:40 2017 +0530 Raise version number after cloning 5.6.36 commit 7df8dc750c26ead87c643f87dccba28a66cf3c9b Author: Balasubramanian Kandasamy Date: Mon Feb 27 17:20:51 2017 +0530 Raise version number after cloning 5.5.55 commit 707a69384c9962fe97b6912d541d49f2c6f0f646 Author: Jens Even Berg Blomsøy Date: Fri Feb 24 09:56:25 2017 +0100 WL#10166 Require WKB input in WKB parsing functions Give a deprication warning when using geometries as parameters to the FromWKB functions. This functionality will be removed in 8.0. commit 1eecc449b572022a4634dbe6c1468990c284cf65 Author: Yashwant Sahu Date: Mon Feb 27 16:59:24 2017 +0530 build issue fix commit bac198dd94a6b3cf9c85b74e9327d6bef2ca3086 Author: Yashwant Sahu Date: Mon Feb 27 16:25:21 2017 +0530 Fix buid issue commit dc7327d057e761554711835c4436ef84ba43d0aa Author: Yashwant Sahu Date: Mon Feb 27 16:03:00 2017 +0530 Fixed build issue commit 4b41c28e2bc25e516aec3f2be5de71f3e24311fd Author: Yashwant Sahu Date: Mon Feb 27 13:12:48 2017 +0530 fixed TLS_CTX commit 4718b74ddf2d671732d9633f9d6ed43517f76d26 Author: Yashwant Sahu Date: Mon Feb 27 11:56:12 2017 +0530 Fix crash. commit f5915a06d35bf6ea3f7e90b94ec93fb7469bff2b Merge: 621deac e2e0fd5 Author: Yashwant Sahu Date: Mon Feb 27 11:30:05 2017 +0530 Merge branch '5.7' into mysql-5.7-wl5847 commit 621deac24bb62416186441055ec5664d4a5018a3 Author: Yashwant Sahu Date: Mon Feb 27 11:26:51 2017 +0530 for gcov 1 commit 5a4818fc81c67bac57e1efd5889260aaa9117657 Merge: 1c8057c 72e307e Author: Yashwant Sahu Date: Fri Feb 24 12:01:56 2017 +0530 Merge branch '5.7' into mysql-5.7-wl5847 commit 1c8057cfbdec1279dbc9ffe674e8ad5a42b35f7e Author: Yashwant Sahu Date: Thu Feb 23 13:04:19 2017 +0530 fixed build issues. commit ac01082ce71e65eadcef778ea16d1af3ba146379 Author: Yashwant Sahu Date: Tue Feb 21 16:35:10 2017 +0530 Fixed build issues. commit a9b7dae891695b9015a9111a51e3ca7df276d0c7 Author: Yashwant Sahu Date: Tue Feb 21 12:15:06 2017 +0530 Added test and fix a bug commit 43448b85a3ddc756345696f693cc22a311c8aee1 Author: Yashwant Sahu Date: Mon Feb 20 18:44:46 2017 +0530 Fixed solarise build issue and added file to run the test. commit 23c5e6f16aa081459368e292fd8a9803ca638db9 Author: Yashwant Sahu Date: Mon Feb 20 14:04:36 2017 +0530 Removed unwanted files commit dd06c771de007357ff54b191b6e1b4bc8adf1c4f Author: git Date: Mon Feb 20 12:38:48 2017 +0530 Fixed build issue. commit 97ee094bbfb587047af9bd01e5d0a38df2e2d0e2 Author: Yashwant Sahu Date: Mon Feb 20 11:23:31 2017 +0530 build fix commit 0d6139e5ebb2220d03314d9c08addef2c2eff096 Author: Yashwant Sahu Date: Mon Feb 20 10:25:20 2017 +0530 Fixed build issue and fixed review comments commit 73c567107bd2fca8afdddbc1f4cce261ef4d8d13 Author: Yashwant Sahu Date: Tue Feb 7 12:32:12 2017 +0530 Test Fix. commit 6e44da8023985ede37f1f9b90bf552fba5f7aeba Author: Yashwant Sahu Date: Tue Feb 7 12:15:33 2017 +0530 Fixed tests. commit b70c4dd42a3b9ff62fa8d7a051a1ff08d50dffef Author: Yashwant Sahu Date: Fri Feb 3 16:36:18 2017 +0530 Added more tests. commit 0f7d09e9706965665ad8f2f98118f9dc9042d5de Author: Yashwant Sahu Date: Wed Feb 1 18:09:49 2017 +0530 test. commit 72baa7e86b501c82915673adf6f24d2faff9a9fc Author: Yashwant Sahu Date: Wed Feb 1 16:29:50 2017 +0530 Added test and fix TLS name. commit 454da6889a914195d0133f3c85c5ec7ac66736ba Author: Yashwant Sahu Date: Mon Jan 23 14:10:26 2017 +0530 23 Jan. working commit 29f06c1786f709c1d8a8ba0f96e44e60dbca89e3 Author: Yashwant Sahu Date: Wed Jan 11 15:02:49 2017 +0530 removed hashed pool commit e66ae6423f56b6232f5e21c62f4073d4bc1f4889 Author: Yashwant Sahu Date: Fri Jan 6 14:29:00 2017 +0530 wl:8196: removed deperacted LDAP codes. commit 79ffb23cff5d0df9184a4a642e9d290563f2e33c Author: Yashwant Sahu Date: Wed Jan 4 12:11:53 2017 +0530 wl: 8196: ldap, fixed pool commit cc3c3841c040bec1d01450b99b40e581679c83c3 Author: Yashwant Sahu Date: Tue Dec 27 12:31:54 2016 +0530 After hash pin commit a0eb97f9c398f35ddde8b0eae55cfb378a17deb0 Author: Yashwant Sahu Date: Wed Sep 7 18:19:57 2016 +0530 ldap: fixed makefile commit 539891f5dee15baa234351813f0806d0f60553dc Author: Yashwant Sahu Date: Fri Sep 2 15:22:40 2016 +0530 ldap plugin: initial version