Edit File: ChangeLog
commit 733577633b7eec78a51b70636568d735c187e96c Author: Anushree Prakash B <anushree.prakash.b@oracle.com> Date: Wed Sep 13 12:17:36 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 (cherry picked from commit 148b35d25800dfac8855262967eb76408126649b) commit 3fa3a31fc8fdbee002f32991f16ac6768c70c9c0 Author: Anushree Prakash B <anushree.prakash.b@oracle.com> Date: Fri Sep 8 18:30:57 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 (cherry picked from commit c25e5c808ba2957db29a319acd4751bf74864584) commit 3b1b08679365116dc0a3cd7451559736203580ac Author: Piotr Obrzut <piotr.obrzut@oracle.com> Date: Mon Aug 28 12:30:21 2017 +0200 Bug #26501092 mysql server installer cannot detect that visual c++ 2010 is installed. (cherry picked from commit 816d1307409636655afee3424aa96451a4e22be2) commit bdc4aa601950295a602c5320f260d91e66e6ff82 Merge: 0012c45 ebfd0eb Author: Ajo Robert <ajo.robert@oracle.com> Date: Thu Aug 24 17:04:45 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit ebfd0ebe55692c0f115f01d5441050b773674a71 Author: Ajo Robert <ajo.robert@oracle.com> Date: Thu Aug 24 17:03:21 2017 +0530 Bug#26361149 MYSQL SERVER CRASHES AT: COL IN(IFNULL(CONST, COL), NAME_CONST('NAME', NULL)) Backport of Bug#19143243 fix. NAME_CONST item can return NULL_ITEM type in case of incorrect arguments. NULL_ITEM has special processing in Item_func_in function. In Item_func_in::fix_length_and_dec an array of possible comparators is created. Since NAME_CONST function has NULL_ITEM type, corresponding array element is empty. Then NAME_CONST is wrapped to ITEM_CACHE. ITEM_CACHE can not return proper type(NULL_ITEM) in Item_func_in::val_int(), so the NULL_ITEM is attempted compared with an empty comparator. The fix is to disable the caching of Item_name_const item. commit 0012c451bf04e49a50dc113637de2144ddfb89ee Merge: 801b070 0bed495 Author: Arun Kuruvila <arun.kuruvila@oracle.com> Date: Thu Aug 24 14:23:52 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 0bed495b4909b9d72e37c9075f0057263040ab3f Author: Arun Kuruvila <arun.kuruvila@oracle.com> Date: Thu Aug 24 14:19:38 2017 +0530 Bug#26482173: TLS CIPHER NEGOTIATION INCORRECTLY MATCHES ON LAST BYTE ONLY (YASSL) Description:- TLS cipher negociation happens incorrectly leading to the use of a different Analysis:- YaSSL based MySQL server will compare only the last byte of each cipher sent in the Client Hello message. This can cause TLS connections to fail, due to the server picking a cipher which the client doesn't actually support. Fix:- A fix for detecting cipher suites with non leading zeros is included as YaSSL only supports cipher suites with leading zeros. commit 801b0707e21d9e6033b7698abd3ad3a6ee8d89e0 Author: Anushree Prakash B <anushree.prakash.b@oracle.com> Date: Wed Aug 23 13:58:51 2017 +0530 Bug#25510805 - MYSQL CRASHES WHEN TRYING TO CONNECT FROM A HOST WITH AHOSTNAME OF 69 CHARACTERS DESCRIPTION: =========== When a connection is made from a host with a hostname length of more than HOSTNAME_LENGTH characters, MySQL crashes with a buffer overflow. ANALYSIS: ======== If the hostname of the connecting host is greater than HOSTNAME_LENGTH (60 chars), copying the hostname to the performance schema table field which is limited to HOSTNAME_LENGTH characters results in a crash. FIX: === The fix is to truncate the hostname to HOSTNAME_LENGTH number of characters before adding them to the performance schema tables which record host information and details. This makes sure that the client connection is established successfully. commit c8b79b122008e17ce3d0710a0c6a9ee04ceebbb1 Merge: ca782a5 331fb96 Author: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com> Date: Wed Aug 23 13:02:23 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 331fb96afc1af52a44c0d218feb2f9f7e1a1b9a7 Author: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com> Date: Wed Aug 16 13:58:25 2017 +0530 Bug#26390632: CREATE TABLE CAN CAUSE MYSQL TO EXIT. Analysis ======== CREATE TABLE of InnoDB table with a partition name which exceeds the path limit can cause the server to exit. During the preparation of the partition name, there was no check to identify whether the complete path name for partition exceeds the max supported path length, causing the server to exit during subsequent processing. Fix === During the preparation of partition name, check and report an error if the partition path name exceeds the maximum path name limit. This is a 5.5 patch. commit ca782a59ef6d56e3ee555005fd9cd71d6195f313 Merge: 01a355e be9b6bc Author: Tor Didriksen <tor.didriksen@oracle.com> Date: Wed Aug 23 09:26:41 2017 +0200 Merge branch 'mysql-5.5' into mysql-5.6 commit be9b6bc9f9fa758b39eb914732996e68633e8b9c Author: Tor Didriksen <tor.didriksen@oracle.com> Date: Tue Aug 15 13:15:19 2017 +0200 Bug#19875294 ASSERTION `SRC' FAILED IN MY_STRNXFRM_UNICODE (SIG 6 -STRINGS/CTYPE-UTF8.C:5151) Backport from 5.7 to 5.5 Field_set::val_str() should return String("", 0, cs) rather than String(NULL, 0, cs) commit 01a355e5f0c5dd07d89b1f6ec6a15e52192ea176 Merge: f3d8bdc 5a88c15 Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com> Date: Wed Aug 23 09:17:38 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 5a88c153df08d73674197b5cff78dbfcb9c13030 Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com> Date: Wed Aug 23 09:16:12 2017 +0530 Bug#24763131 LOCAL-INFILE DEFAULT SHOULD BE DISABLED Problem & Analysis: Slave's Receiver thread, Applier thread and worker threads are created with LOCAL-INFILE option enabled. As the document says https://dev.mysql.com/doc/refman/5.7/en/load-data-local.html, there are some issues if a thread enables local infile. This flag should be enabled with care. But for the above mentioned internal threads, server is enabling it at the time of creation. Fix: Further analysis on the code shows that none of threads really need this flag to be enabled at any time as Slave never executes "LOAD DATA LOCAL INFILE" after reading it from Relay log. Applier thread removes "LOCAL" before start executing the query. commit f3d8bdcac4e8a137549ad6be9434185a9ee71c3f Author: Venkatesh Duggirala <venkatesh.duggirala@oracle.com> Date: Wed Aug 16 13:30:52 2017 +0530 Bug#22382199 RPL.RPL_DUMP_THREAD_KILL FAILS WHEN RUN WITH --MEM Problem: RPL.RPL_DUMP_THREAD_KILL is failig frequently in test runs. Analysis: When this test script is running in combination with other tests, it is possible that dump threads from those tests are not killed. Every test script has rpl_end.inc but that .inc does not kill dump threads. This test script expects that the number of dump threads are zero before starting the test. Fix: Doing cleanup (stopping dump threads) before the actual test starts. commit ecb28d2b9f359930f2640512ce45bb1a5b81a5ed Author: Erlend Dahl <erlend.dahl@oracle.com> Date: Sat Aug 19 06:56:26 2017 +0200 Revert "Bug#25510805 - MYSQL CRASHES WHEN TRYING TO CONNECT FROM" commit 73e24f75ab587314313f167b7a0415c7d5e9a65c Author: Anushree Prakash B <anushree.prakash.b@oracle.com> Date: Fri Aug 18 16:12:36 2017 +0530 Bug#25510805 - MYSQL CRASHES WHEN TRYING TO CONNECT FROM A HOST WITH AHOSTNAME OF 69 CHARACTERS DESCRIPTION: =========== When a connection is made from a host with a hostname length of more than HOSTNAME_LENGTH characters, MySQL crashes with a buffer overflow. ANALYSIS: ======== If the hostname of the connecting host is greater than HOSTNAME_LENGTH (60 chars), copying the hostname to the performance schema table field which is limited to HOSTNAME_LENGTH characters results in a crash. FIX: === The fix is to truncate the hostname to HOSTNAME_LENGTH number of characters before adding them to the performance schema tables which record host information and details. This makes sure that the client connection is established successfully. commit 5775624c527ebdbbd01f68ba4e721d77bf160b07 Author: Lars Tangvald <lars.tangvald@oracle.com> Date: Tue Aug 15 12:22:46 2017 +0200 Cleanup debian/changelog to just have a generic link to online release notes. commit cfaf4fe9cd52839a6169e328cae9ecdaa17d7a37 Author: Ajo Robert <ajo.robert@oracle.com> Date: Fri Aug 11 15:12:44 2017 +0530 Bug#25782811 5.6: WRONG RESULTS WITH MATERIALIZATION, VIEWS Backport of Bug#21566735 fix. Analysis ======= create_ref_for_key() fails due to table not available for key_use when subquery optimization chooses materialization strategy and have a ref access key to one of the materialized table. This is due to JOIN::update_equalities_for_sjm() checks for real_item() of the materialized table expression with key_use->val of the primary table expresssion. Fix ==== When comparing key_use from materialized tables use key_use-> val->real_item() instead of key_use->val. commit 3ec554b12ec9431227c04e0609e84ddc8a83d944 Author: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com> Date: Thu Aug 10 11:40:46 2017 +0530 BUG18985760 - "FAST" ALTER TABLE CHANGE ON ENUM COLUMN TRIGGERS FULL TABLE REBUILD. Fixing PB2 test failure which resurfaced due to missing clean up. commit d311975bac07372b3437bf5ded62b431ea032a67 Author: Aditya A <aditya.a@oracle.com> Date: Fri Aug 4 18:18:47 2017 +0530 Bug#25687813 REPLICATION REGRESSION WITH RBR AND PARTITIONED TABLES PROBLEM ------- While applying update the slave is trying to initialize all partitions before reading from rnd_pos() call. This is done for each row update because of which the performance is getting effected. FIX --- Initialize only the partition on which rnd_pos() is called. commit d53dc1c608331c292f6a868328a06197afadf185 Author: Thirunarayanan Balathandayuthapani <thirunarayanan.balathandayuth@oracle.com> Date: Wed Aug 2 17:14:34 2017 +0530 Bug #25669686 INNODB CRASH WITH GENERIC DML WORKLOAD AND LONG READ VIEW OPEN - Post push fix to avoid pb2 failure. commit bff5a329abc427ab5341342a12fd01dc7e285be3 Author: Thirunarayanan Balathandayuthapani <thirunarayanan.balathandayuth@oracle.com> Date: Fri Jul 28 15:41:13 2017 +0530 Bug #25669686 INNODB CRASH WITH GENERIC DML WORKLOAD AND LONG READ VIEW OPEN Problem: ======== During end range comparison, record belongs to secondary index but the prebuilt template maps to clustered index. For mapping, InnoDB stores all the clustered index field number of secondary index fields. Mysql template points to whole field instead of prefix index field. In that case, field number didn't match with template field number and it didn't store the respective data in template. It fails while comparing the record with end range value. Solution: ========= Store the column object instead of storing the field number for mapping the secondary index record to clustered index mysql template. Reviewed-by: Jimmy Yang <jimmy.yang@oracle.com> RB: 16813 commit 113050e42f53ef830789fbd1eb92f2a7c3e80abd Author: Karthik Kamath <karthik.kamath@oracle.com> Date: Tue Jul 25 19:01:18 2017 +0530 BUG#22350047: IF CLIENT KILLED AFTER ROLLBACK TO SAVEPOINT PREVIOUS STMTS COMMITTED ANALYSIS: ========= Consider an uncommitted transaction in which we have created a savepoint and executed 'ROLLBACK TO SAVEPOINT <savepoint_name>' and killed the client. When another client is started, the changes that were made before the savepoint creation are still reflected implying that the transaction was committed. In this scenario, when the client is killed, THD::cleanup() is called. During the cleanup, since the binary log is enabled, MYSQL_BIN_LOG::rollback() is called. The logic inside this function is, If thd->lex->sql_command == SQLCOM_ROLLBACK TO SAVEPOINT, we should not perform a engine rollback, instead only the caches need to cleared. Here since the last executed command before the client was killed was 'ROLLBACK TO SAVEPOINT', thd->lex->sql_command will contain SQLCOM_ROLLBACK_TO_SAVEPOINT and hence engine rollback is not done and later the transaction is committed. Thus the changes done before the savepoint creation is reflected. This issue was caused because resetting of thd->lex->sql_command was not done after the execution of each statement. FIX: ==== We are now setting thd->lex->sql_command to SQLCOM_END after execution of each statement. commit 8fc2981f550c1e8ae38215fb19ba8bc1fd17a1b8 Merge: 780cd07 bb79cdb Author: Deepa Dixit <deepa.dixit@oracle.com> Date: Tue Jul 25 12:16:59 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit bb79cdb145e31c1999c91b9b8cd948901def067e Author: Deepa Dixit <deepa.dixit@oracle.com> Date: Tue Jul 25 11:49:51 2017 +0530 Bug#26161247: MTR: --NOREORDER IS SEARCHING FOR TEST SCRIPT ONLY IN MAIN SUITE Issue: ------ Running MTR with the --no-reorder option by specifying test cases on the command line, without prefixing the suite name results in an error saying the test case was not found in the main suite. This is because MTR looks for the test case only in the main suite, and no other suites. Fix: ---- The fix involves searching for the test in every suite if only the test name is specified. This back-ports two bug fixes: Bug#24967869 and Bug#24365783 Reviewed-by: Pavan Naik <pavan.naik@oracle.com> RB: 16812 commit 780cd071be076fef25767262caae69d13504bcc1 Author: Lars Tangvald <lars.tangvald@oracle.com> Date: Fri Jun 2 10:59:19 2017 +0200 Bug #26186911 DEBIAN/UBUNTU "SOURCE" CONTAINS AMD64 BINARIES Make the debug build part of the standard deb package build. Triggered by adding -DDEB_WITH_DEBUG commit 69fed2d95382fc4163f9a3cc37eac16504700353 Merge: d6203f9 702b46e Author: Nawaz Nazeer Ahamed <nawaz.nazeer.ahamed@oracle.com> Date: Mon Jul 17 20:58:24 2017 +0530 Merge branch 'mysql-5.6.37-release' into mysql-5.6 commit d6203f954e4ef179a7ce79174bfe70113389f8dd Author: Srikanth B R <srikanth.b.r@oracle.com> Date: Mon Jul 17 16:33:23 2017 +0530 Bug#26412663 MEMCACHED.MEMC_297_CRASH: REMOVE DEPENDANCY ON PERL MODULES DBI AND DBD::MYSQL Follow up patch to fix failures of mysqlhotcopy tests on pushbuild by restoring checkDBI_DBD-mysql.pl. commit b7ea062b65f3239e7d2d081a7334339d9d393ca1 Merge: c1028cc 8dbc7ce Author: Gipson Pulla <gipson.pulla@oracle.com> Date: Mon Jul 17 16:52:11 2017 +0530 Upmerge of the 5.5.57 build commit 8dbc7cedf12ccac5e9dd78016d0968a2a7e2c9fa Merge: 1af074c 1042f0a Author: Gipson Pulla <gipson.pulla@oracle.com> Date: Mon Jul 17 16:47:22 2017 +0530 Merge branch 'mysql-5.5.57-release' into mysql-5.5 commit c1028cca87a17d61026979ea11d16806f337ab68 Author: Aakanksha Verma <aakanksha.verma@oracle.com> Date: Thu Jul 13 11:21:24 2017 +0530 Bug #24938374 MYSQL CRASHED AFTER LONG WAIT ON DICT OPERATION LOCK WHILE SYNCING FTS INDEX PROBLEM As part of rb#12340, dict_operation_lock was acquired to avoid dropping of FTS index/ table while the sync is in progress in the background. Due to this change server gets killed on long wait for dict_operation_lock while a long sync is in progress. SOLUTION We remove the dict operation lock that is held by sync (fts) in background. We will manage the concurrency of drop index and sync index in 2 ways: 1) If sync is already in progress, Drop index would wait for sync to complete. 2) If alter is already happening and sync is invoked then sync would do a check for index/table to be dropped flags are set or not, if it is it would skip syncing that index. Reviewed by: Jimmy Yang <Jimmy.Yang@oracle.com> RB: 15344 commit 9c1bc9d4f6cc1ce40300136fd79466b98b036884 Author: Srikanth B R <srikanth.b.r@oracle.com> Date: Tue Jul 11 10:48:24 2017 +0530 Bug#26412663 MEMCACHED.MEMC_297_CRASH: REMOVE DEPENDANCY ON PERL MODULES DBI AND DBD::MYSQL The test memcached.memc_297_crash is being skipped on many machines due to the unavailability of DBI and DBD::mysql perl modules. It has been altered to use the mysql client binary bundled with the build. Reviewed-by: Aditya A <aditya.a@oracle.com> commit e17756e1ab8bc70df70ba33cfaaffa43acfcf9bd Author: Arun Kuruvila <arun.kuruvila@oracle.com> Date: Tue Jul 11 10:36:28 2017 +0530 Bug#26405350: MAIN.MYSQLHOTCOPY_ARCHIVE AND MAIN.MYSQLHOTCOPY_MYISAM TESTS FAILING IN PB2-5.6 Description: Mtr tests, main.mysqlhotcopy_archive and main.mysqlhotcopy_myisam are failing recently in PB2-5.6. Analysis: The test failure is due to the mismatch in the exit code returned by the mysqlhotcopy utility when the utility encounters an error. This mismatch is happening due to the unpredictable exit code returned by the "die" command used in the "mysqlhotcopy" perl script. In the perl documentation for "die" command it is mentioned that "the value of the exit code used by die can be non-predictable, so should not be relied upon, other than to be non-zero." Fix: Error number 255 is also added along with 9, 11, 110 and 2304. commit 2f0b0a5368f54a845d658ab8538c11b6c6cb2881 Merge: 401aaf6 1af074c Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> Date: Fri Jul 7 17:46:16 2017 +0530 Merge branch 'mysql-5.5' into mysql-5.6 commit 1af074c99d902d88a008581fbd1f48e4cbc5385a Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> Date: Fri Jul 7 17:43:40 2017 +0530 Bug#26400146 - 5.5 AND 5.6 DOCKER PACKAGES MISSING MYSQLCHECK UPGRADE NOT POSSIBLE - Add mysqlcheck tool to docker rpms for upgrade commit 401aaf6b9882e76062ecf708a631d026e93f5ada Author: Thirunarayanan Balathandayuthapani <thirunarayanan.balathandayuth@oracle.com> Date: Thu Jul 6 18:28:26 2017 +0530 Bug #25586766 INNODB: FAILING ASSERTION: EVENT Analysis: ======== Buffer pool load now command fails with assert in read only server mode. Because the event to signal the buffer pool load thread is not initialized. Fix: ==== Check for read only mode before doing the buffer pool load. Reviewed-by: Jimmy Yang<jimmy.yang@oracle.com> commit eac63a03a505f11cbbcb60ac23df0f61bf23a244 Author: Sreeharsha Ramanavarapu <sreeharsha.ramanavarapu@oracle.com> Date: Wed Jul 5 08:25:12 2017 +0530 Bug #23577867: INCORRECT BEHAVIOR WITH FAULTY STORED FUNC AND DATE COMPARISION Issue: ------ This problem occurs when: 1) A certain type of Stored Function (SF) is called from a subquery. 2) The subquery is an NOT IN condition in the WHERE clause. Root cause: ----------- When an SF (or any other Item object) is marked as a constant, it might be evaluated during the PREPARE phase. After evaluating an SF, a cleanup is called on the related TABLE_LIST objects. This can create a problem when the query attempts to acquire a lock on the same tables after the PREPARE phase and before beginning the EXECUTE phase, because the runtime system currently does not support evaluating functions before tables have been locked. Solution: --------- A stored function is considered as constant only if the tables have been locked. This will make sure that even if a function is marked as DETERMINISTIC, it will be constant only during the EXECUTE phase when the relevant locks have been acquired. For some of the queries containing DETERMINISTIC functions, the conditions weren't evaluated because the const_item_cache is set to false. Now that we have shifted it to a function that correctly checks for table locks, these conditions can be considered constant. The result in some changes in partition_locking.result. commit 4d3d66c18e38ca238b7d35fbbb4894b4ef14e3b7 Author: Shishir Jaiswal <shishir.j.jaiswal@oracle.com> Date: Thu Jun 29 13:58:26 2017 +0530 Bug#25987505 - SUPPRESSION IS TOO STRICT ON SOME SYSTEMS DESCRIPTION =========== Valgrind failure happens for few test cases e.g. "main.mysql_client_test" ANALYSIS ======== File "valgrind.supp" has a suppression which looks like: { OpenSSL still reachable. Memcheck:Leak fun:malloc fun:CRYPTO_malloc fun:sk_new fun:load_builtin_compressions fun:SSL_COMP_get_compression_methods fun:SSL_library_init } The valgrind failure stack is as shows below: { malloc CRYPTO_malloc sk_new ??? SSL_COMP_get_compression_methods SSL_library_init ssl_start init_ssl mysqld_main main } Clearly the frame 'load_builtin_compressions' can't be matched here and hence the reported failure. FIX === Replace the specific frame with wildcard '...' in the suppression. commit bc76a7aeffcd4b2d744bd6fec87073e679a6f58d Author: Maria Couceiro <maria.couceiro@oracle.com> Date: Tue May 30 16:50:55 2017 +0100 BUG#26137159 SLAVE STOPS WITH HA_ERR_KEY_NOT_FOUND (1032) WHEN PARTITIONING + INDEX USED Problem: When table partitions and indexes are used simultaneously, and the index key is not in the partition function, in some situations replication would stop because a given key could not be found when executing an update or delete statement. This issue only happened when slave-rows-search-algorithms is set to hash_scan. Analysis: When slave-rows-search-algorithms is set to hash_scan, the applier searches for keys(hashes) of the rows that will be modified. Since in this case, the index key was not in the partition function, the retrieved rows could not always be a match. If the key to the retrieved row happened to be different than the key currently being searched, we would advance to the next key, even if not all rows up to that key had been retrieved yet. Fix: Advance to the next key to search (or return an error) only when the search for a given key value ends without finding the corresponding key, instead of advancing to the next key when the index key is different than the key being searched. (cherry picked from commit 8fefcc056b7dd704bf381788f9ab52cbcd0d41af) commit f1f44c0311715cd8e30df12041e8eee24461854d Author: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com> Date: Thu Jun 22 12:57:29 2017 +0530 BUG#25033538: ASSERTION FAILURE IN THREAD X IN FILE FTS0QUE.CC LINE 3831 Post push fix for test failure on 32 bit platform. commit 9ba24a80d321c38c513db14bb2e018a281d41d08 Author: Nisha Gopalakrishnan <nisha.gopalakrishnan@oracle.com> Date: Tue Jun 20 16:12:54 2017 +0530 BUG#25033538: ASSERTION FAILURE IN THREAD X IN FILE FTS0QUE.CC LINE 3831 Analysis: ======== Server exits when the full text search results exceeds the configured 'innodb_ft_result_cache_limit'. When the full text search results exceeds the 'innodb_ft_result_cache_limit', an error is raised. During the FTS cleanup, the new result list i.e 'query->intersection' is not freed, triggering the assert which checks if 'query->intersection' is NULL. Also the additional issues which was fixed by BUG 21140111 in 5.7 contributed to the problems reported in the bug. Fix: === During the FTS query cleanup, free the result list 'query->intersection'. Also this fix backports the patch for: BUG 21140111: Explain ... match against: Assertion failed: ret ... The problem here is missing error check in Item_func_match::init_search() after the handler call ft_init_ext_with_hints(), and missing error propagation in the call stack. The fix also includes a new inlined query block property function has_ft_funcs() that is used to avoid an unnecessary and costly function call to optimize full-text searches. commit 73d2027113befdd433f447a3b2a4df4e8363d261 Author: Shishir Jaiswal <shishir.j.jaiswal@oracle.com> Date: Fri Jun 16 17:58:49 2017 +0530 Bug#21421642 - SERVER CRASH WHEN CONNECTING SHA USER WITH BLANK PWD FROM PYTHON CONNECTOR DESCRIPTION =========== When a user (created using sha256_password plugin) tries to connect to server through Python connector using a blank password, it results into server exit! ANALYSIS ======== In the reported scenario during authentication process in sha256_password_authenticate(), 'pkt_len' which is an outcome of vio->read_packet() is calculated as 0. Later in the same flow, 'pkt_len-1' (which becomes an arbitary large number when casted to unsigned int) is passed as an argument to my_crypt_genhash() which is used for memory manipulations (such as memcpy() in case of YASSL) and hence the exit. When blank password is provided through client, 'pkt_len' is calculated to be 1 and is handled accordingly. This has to be extended for the case when 'pkt_len' is calculated to be 0 (e.g. When python connector is used to connect with blank password). All other values of 'pkt_len' are rightly handled in the code. FIX === We avoid calling my_crypt_genhash() when 'pkt_len' is 0 and *buf is empty. In other words when the password is blank, return before calling my_crypt_genhash(). The return value, however depends upon if the 'auth_string' (corresponding column value from the mysql.user table for the given user) is empty (OK) or not (Error). NOTE ==== The above fix takes its inspiration from the following: 1. native_password_authenticate() - Handling when 'pkt_len' is 0 2. connecting through client - Checking emptiness of 'auth_string' commit 44eec513f267db22cec665ae9716f706c00c3659 Author: Bharathy Satish <bharathy.x.satish@oracle.com> Date: Wed Jun 14 07:50:43 2017 +0200 Bug#23531150: MYSQLDUMP GET_VIEW_STRUCTURE DOES NOT FREE MYSQL_RES IN ONE ERROR PATH Fix memory leak in mysqldump in case of an error. commit 88fcfa5eb662de56e84d50098a2663e06f457462 Author: Aditya A <aditya.a@oracle.com> Date: Mon Jun 12 17:07:50 2017 +0530 Bug #25909540 UNINSTALL PLUGIN DAEMON_MEMCACHED MAKE MYSQLD CRASHED ANALYSIS innodb_conn_clean() doesn't check if conn_data->thd is NULL before attaching it to the thread. FIX Check if conn_data->thd is present before attaching. [rb 16426 Approved by jimmy ] commit d4b222d53d56b79426d4f847e9c5929fab9647b6 Author: Neha Kumari <neha.n.kumari@oracle.com> Date: Fri Jun 9 12:50:35 2017 +0530 Bug#24679056:MULTI-THREADED SLAVE LEAKS WORKER THREADS IN CASE OF THREAD CREATE FAILURE Problem: If one adds SHOW PROCESSLIST to the end of rpl.rpl_mts_debug.test, it will show an orphaned SQL worker thread that is there regardless that the slave is stopped. It is a thread created by mts_worker_thread_fails failure injection point testcase, which tries to set up MTS with two worker threads and simulates a pthread_create failure for one of them. Analysis: The root cause is that the variable slave_parallel_workers will not be incremented in case of failure in slave_start_single_worker (caused here by "mts_worker_thread_fails" injection). This will end up causing an early exist in slave_stop_worker void slave_stop_workers(Relay_log_info rli, bool mts_inited) { int i; THD thd= rli->info_thd; if (!mts_inited) return; else if (rli->slave_parallel_workers == 0) goto end; Fix: Incremenet the variable slave_parallel_worker for every successful call to the method slave_start_single_worker(). In this way the early exist will be avoided when there are worker threads present which needed to be stopped. commit 1042f0a113cd7b2be1a38092e9f78eaad4025df4 Author: Piotr Obrzut <piotr.obrzut@oracle.com> Date: Mon Jun 5 08:09:07 2017 +0200 Bug#26171638 MYSQL 5.5.57 - MSI COMMUNITY PACKAGES NOT GETTING INSTALLED Corrected the revert. (cherry picked from commit f637e524bf9b692c3ed46d856e2beac193b42a3e) commit 065b1bc0081360b9aa6425d20fe01ff39f4adb0e Merge: 757e313 f637e52 Author: Piotr Obrzut <piotr.obrzut@oracle.com> Date: Mon Jun 5 08:12:19 2017 +0200 Merge branch 'mysql-5.5' into mysql-5.6 commit f637e524bf9b692c3ed46d856e2beac193b42a3e Author: Piotr Obrzut <piotr.obrzut@oracle.com> Date: Mon Jun 5 08:09:07 2017 +0200 Bug#26171638 MYSQL 5.5.57 - MSI COMMUNITY PACKAGES NOT GETTING INSTALLED Corrected the revert. commit f3c4fa0dfb74a0c7132e1af51a591085b43e3b05 Author: Piotr Obrzut <piotr.obrzut@oracle.com> Date: Fri Jun 2 19:17:30 2017 +0200 Bug#26171638 MYSQL 5.5.57 - MSI COMMUNITY PACKAGES NOT GETTING INSTALLED Temporary revert of the VS2008 redist check. (cherry picked from commit 36ec550fe5fa6b2a997cb39d3b9e33988f525c96) commit dd6ce85bbe59b9c0842e0418131616ccdba1b720 Author: Piotr Obrzut <piotr.obrzut@oracle.com> Date: Thu Jun 1 15:25:04 2017 +0200 Bug#26181622 MSI BUILD FAIL DUE TO DUPLICATED FILE ID Fixed generated mysql_server.wxs not to contain duplicates, or too long ids (cherry picked from commit bf47fb74dcc3e84057314817c56e6f8e05af094c) commit 757e3132e5679e3d503b9bf828ac7650f52a534b Merge: 6ddc838 36ec550 Author: Piotr Obrzut <piotr.obrzut@oracle.com> Date: Fri Jun 2 19:27:47 2017 +0200 Merge branch 'mysql-5.5' into mysql-5.6 commit 36ec550fe5fa6b2a997cb39d3b9e33988f525c96 Author: Piotr Obrzut <piotr.obrzut@oracle.com> Date: Fri Jun 2 19:17:30 2017 +0200 Bug#26171638 MYSQL 5.5.57 - MSI COMMUNITY PACKAGES NOT GETTING INSTALLED Temporary revert of the VS2008 redist check. commit 6ddc838acd11da6d43d2b86f2e73f0b7ebf125c2 Merge: c04822b bf47fb7 Author: Piotr Obrzut <piotr.obrzut@oracle.com> Date: Fri Jun 2 11:56:42 2017 +0200 Merge branch 'mysql-5.5' into mysql-5.6 commit bf47fb74dcc3e84057314817c56e6f8e05af094c Author: Piotr Obrzut <piotr.obrzut@oracle.com> Date: Thu Jun 1 15:25:04 2017 +0200 Bug#26181622 MSI BUILD FAIL DUE TO DUPLICATED FILE ID Fixed generated mysql_server.wxs not to contain duplicates, or too long ids commit c04822bd9ab68efbc4ff62fa0df442d88b5c88ee Author: Piotr Obrzut <piotr.obrzut@oracle.com> Date: Thu Jun 1 07:41:27 2017 +0200 Bug# 26168832: TEST DATABASE DOESNOT EXIST IN MSI PACKAGES Fixed accidental removal of the initial data base installation. commit 36ba15b7e41d01b3c16962f8d9a435642383967b Author: Ivo Roylev <ivo.roylev@oracle.com> Date: Tue May 30 15:59:51 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. The fix is to escape the USE parameters whenever quotes are used. RB# 16316 commit 65f1e5a205ee90eab3dee21524ac9697b3bd005f Merge: a8c1489 33de929 Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> Date: Mon May 29 14:59:03 2017 +0530 Raise version number after cloning 5.6.37 commit 33de929874c61dfee74225b2234652f904450058 Author: Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> Date: Mon May 29 14:52:50 2017 +0530 Raise version number after cloning 5.5.57