| Server IP : 172.67.187.206 / Your IP : 172.71.28.155 Web Server : Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30 System : Windows NT WIN-ECQAAA40806 6.2 build 9200 (Windows Server 2012 Standard Edition) i586 User : SYSTEM ( 0) PHP Version : 5.6.30 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /Inetpub/MySQL/docs/ |
Upload File : |
commit 97f03bbaed5b9ff80ea49520bd72416b37c8bed2
Author: Terje Rosten <[email protected]>
Date: Fri Aug 19 09:27:31 2016 +0200
Bug#24482156 EXTEND WL#7150: REMOVE USE OF DATADIR IN MYSQLD_SAFE TO SCRIPTS
Don't read config file in datadir in SysV initscript.
(cherry picked from commit 20f91166e073e4279ce14a608fc062f1c9ea5a5f)
commit ace8a7d2e7ff6623f7cc41219a6d428abf0f4187
Author: Sivert Sorumgard <[email protected]>
Date: Mon Aug 22 14:30:02 2016 +0200
Bug#24388753: PRIVILEGE ESCALATION USING MYSQLD_SAFE
[This is the 5.7/8.0 version of the bugfix].
The problem was that it was possible to write log files ending
in .ini/.cnf that later could be parsed as an options file.
This made it possible for users to specify startup options
without the permissions to do so.
This patch fixes the problem by disallowing general query log
and slow query log to be written to files ending in .ini and .cnf.
(cherry picked from commit 173c8ae067098acdedf031740ab78b99652abbdb)
commit ba8d5332f03cfc06b15154c7964d26e71fd17f43
Author: Jon Olav Hauglid <[email protected]>
Date: Fri Aug 19 09:32:18 2016 +0200
Merge branch 'mysql-5.6' into mysql-5.7
(cherry picked from commit ef2eb6f448ec57693aab96cd6edb452d35e4a3d9)
commit 7c64a88ef865f8ca55c21c1be1e22c2cae2d1462
Author: Terje Rosten <[email protected]>
Date: Thu Aug 18 16:57:32 2016 +0200
Merge branch 'mysql-5.6' into mysql-5.7
(cherry picked from commit e014f447d5a9c946461029d2c479befdc42c354a)
commit 161fde5f93d421e5e651ed1c134e51b0747fd17e
Merge: 7fa447a e945f3b6
Author: Deepa Dixit <[email protected]>
Date: Fri Aug 5 16:11:21 2016 +0530
Merge branch 'mysql-5.6' into mysql-5.7
commit e945f3b6e99d23c89dc9580885e4bf89ab006ccf
Author: Deepa Dixit <[email protected]>
Date: Fri Aug 5 16:09:51 2016 +0530
Bug#22818781: EXPLAIN_JSON_VALIDATE.TEST FAILS ON WINDOWS PRE-PUSH TESTING
Issue:
------
The explain_json_validate test calls a python script which accepts arguments.
If the arguments are passed with wildcard characters, Windows cannot parse
them and hence the test fails.
Fix:
----
The fix involved adding an additional check if the test was running on Windows
so that the arguments can be parsed correctly.
Also, Python is not installed on Windows by default, and therefore the
script is now ported to perl. Before the test used to be skipped if the machine
did not have either Python or JSON support, but now it fails if it does not
have JSON or perl support.
Since the python script has been removed, all the tests which were using that
script are now using the perl script.
Reviewed-by: Horst Hunger <[email protected]>
Reviewed-by: Guilhem Bichot <[email protected]>
RB: 12537
commit 7fa447ad78f60a08226024aea12c6d67d22b5fb3
Author: Lars Tangvald <[email protected]>
Date: Fri Aug 5 08:20:57 2016 +0200
Deb: Change back to only accept localhost connections by default
5.7.13 and earlier have bind-address=127.0.0.1 in the default config for Debian/Ubuntu.
This was removed in 5.7.14, which is more in line with other platforms, but not something
we should change for the existing GA.
commit 8b0d3fc0390807826e57c4357125ac5cf1ae1598
Author: Norvald H. Ryeng <[email protected]>
Date: Fri Aug 5 09:51:28 2016 +0200
Bug#24399819 SQL/RPL_WRITE_SET_HANDLER.CC INCLUDES PRIVATE LZ4 HEADER
FILE
Problem: The fix for bug #23607230 used xxhash symbols from liblz4,
but even though the xxhash symbols are exported by liblz4, the header
file is not part of the API, so compilation fails when building with
WITH_LZ4=system.
Fix: Build xxhash separately from liblz4 so that it's available both
when using system and bundled lz4 libraries.
commit 9610879b8b3e53b270c4b0e4fcaf5024c6f261fe
Merge: 5981838 63a16c3
Author: Shaohua Wang <[email protected]>
Date: Fri Aug 5 09:25:37 2016 +0200
Merge branch 'mysql-5.6' into mysql-5.7
commit 63a16c346f535990309f9985ffc4aabf1fe6cd5e
Author: Shaohua Wang <[email protected]>
Date: Fri Aug 5 09:05:18 2016 +0200
BUG#23760086 INNODB: ASSERTION FAILURE: MACH0DATA.IC:56:(N | 0XFFFFUL)
<= 0XFFFFUL
Analysis: In row_log_table_delete(), extern size could be greater
than 2 bytes int if there are enough index on blob columns.
Solution: Use 4 bytes int other than 2 bytes for extern size.
Reviewed-by: Marko Mäkelä <[email protected]>
RB: 13573
commit 5981838dfd51524f447a7c6665809db62f6d70c6
Merge: 856d170 e20773a
Author: Neha Kumari <[email protected]>
Date: Fri Aug 5 12:35:52 2016 +0530
Merge branch 'mysql-5.6' into mysql-5.7
commit e20773a9cc7f5a0754fd0448836af1f37297cfdb
Merge: 8a9431a b3e3e9c
Author: Neha Kumari <[email protected]>
Date: Fri Aug 5 12:34:21 2016 +0530
Merge branch 'mysql-5.5' into mysql-5.6
commit b3e3e9c7ed5526dff4f0bc222e674239b352ee27
Author: Neha Kumari <[email protected]>
Date: Fri Aug 5 12:17:11 2016 +0530
Bug#23540182:MYSQLBINLOG DOES NOT FREE THE EXISTING CONNECTION BEFORE OPENING NEW REMOTE ONE
It happens when you are trying to read two or more log files from a
remote server using mysqlbinlog utility.
The reason for this is no matching mysql_close() that concludes the
life time of 'mysql' struct describing connection to the server.
This happens when mysqlbinlog is invoked with connecting to the server
and requesting more than one binlog file. In such case
dump_remote_log_entries() keeps calling safe_connect() per eachfile,
never caring to invoke mysql_close(). Only the final safe_connect()'s
allocation effect are cleaned by the base code.
That is with 2 files there's one 'mysql' connection descriptor struct
uncleaned/deallocated.
We are backporting the bug 21255763 (pushed in mysql-trunk)
in the earlier version of MySQL starting from 5.5 to 5.7.
which was pushed in mysql-trunk.
Fix:
Invoke mysql_close() just before mysql_init() in safe_connect()
defined in mysqlbinlog.cc. That makes possibly previously used 'mysql' be
reclaimed prior a new one is allocated.
commit 856d1702b02dddc160947c173dd8f63b740020bf
Author: Lukasz Kotula <[email protected]>
Date: Fri Aug 5 06:45:53 2016 +0200
Bug#24303169 XPLUGIN SOCKET/TCP CONNECT ISSUES FOR CONCCURENT CONNECTIONS
Description
There are two issues in the bug. First one related to limited number
of file descriptors and X Plugin prints trace errors (it only occurs
with UNIX sockets). Second one is about using invalid file descriptor
by X Plugin.
Analysis of first problem
The limit of descriptors was set to 1024 which is less than system
variable `max_connection` (900) and should be sufficient for the test.
X Plugin accesses user table at startup (mysql.user) which also creates
a descriptor. We get two descriptors per connection, thus the limit of
descriptors should be set to 1800.
The issue isn't reproducable with TCP sockets because the sockets are
much slower and they get sufficient time not to release the mysql.user
file descriptor (not are opened simultaneously).
Analysis of second problem
`Connecton_listener_interface` can return a Vio structure with invalid
socket inside. `ngs::Server::on_accept` didn't check if `Vio` is valid.
Solution
Fixed second problem by validating the socket and returning NULL pointer
to `Vio` object, `ngs::Server` counts such objects as accept failure.
To prevent trace error overflow added additional counting of accept
failures and printing the error when `num_of_accept_error %244 == 0`.
RB: 13538
Reviewed-by: Grzegorz Szwarc <[email protected]>
commit a10f58e2880821d2ec8c4cf6fa8c4427876cf0ed
Author: Lukasz Kotula <[email protected]>
Date: Thu Aug 4 21:27:26 2016 +0200
BUG#24296005 XPLUGIN UNIX SOCK NOT CLEANED AFTER SERVER CLEAN SHUTDOWN/XPLUGIN NOT INSTALLED
Description:
Unix socket file and lock file were not deleted by X Plugin.
Solution:
In case of successful allocation of UNIX socket the plugin when
exiting is going to call `unlink` on both socket and lock file.
RB: 13542
Reviewed-by: Grzegorz Szwarc <[email protected]>
commit 4f596ce08fdd82c665d82f3882f267bdba394e1b
Author: Venkatesh Duggirala <[email protected]>
Date: Wed Aug 3 14:21:21 2016 +0530
Bug#24397517 ADD CASCADE FOREIGN KEY INFORMATION TO
TRANS_TABLE_INFO STRUTURE
Group replication plugin requires the information from the server whether
a table has 'foreign key' with 'CASCADE' clause or not.
Trans_table_info is the structure that is communicated between server and GR
plugin. Adding this cascade foreign key information to
Trans_table_info_struture which will be used by GR plugin code.
commit 4b89a1ce401adf42d2153dfc7554f5dedc12fee4
Author: Lukasz Kotula <[email protected]>
Date: Thu Aug 4 18:34:37 2016 +0200
Follow up to BUG#23575086 - fix for failing test x.connection_skip_networking_win
commit c93b2a6384874ffdf2a00d0095036cd165de5702
Author: Lukasz Kotula <[email protected]>
Date: Thu Aug 4 16:34:11 2016 +0200
BUG#23336595 MYSQL X PLUGIN - ADD LINK TO DOCUMENTATION ON HOW TO CONFIGURE SSL
Description:
The requested talks about putting a link to X Plugin which
describes how to setup SSL.
Solution:
Added new trace, which reference the MySQL documentation:
"For more information, please see the Using Secure Connections"
" with X Plugin section in the MySQL documentation"
Made additional cleanup in the trace messages.
RB: 13578
Reviewed-by: Grzegorz Szwarc <[email protected]>
commit f21ff77c72e7199a53b757f73d110c1ec977098a
Author: Lukasz Kotula <[email protected]>
Date: Wed Aug 3 12:28:23 2016 +0200
BUG#23575086 - X PLUGIN STARTUP ERROR MESSAGES
Description:
X Plugin startup messages could be confusing without knowing
source code
Solution:
Cleanup of startup messages was already done under wl 9306,
one missing thing is the reference to documentation. Added
following trace in case of error while setting up I/O interface:
'Please see the MySQL documentation for '%s' system variable to fix the error'
RB: 13565
Reviewed-by: Grzegorz Szwarc <[email protected]>
commit 99e7eb5330c5fe1cd06986317e43954405254099
Merge: 3d331cc 8a9431a
Author: Kailasnath Nagarkar <[email protected]>
Date: Thu Aug 4 12:51:48 2016 +0530
Merge branch 'mysql-5.6' into mysql-5.7
commit 8a9431a180225f1aeb8238ffcc1a6deebfba1f25
Merge: c32616e 3cde802
Author: Kailasnath Nagarkar <[email protected]>
Date: Thu Aug 4 12:50:48 2016 +0530
Merge branch 'mysql-5.5' into mysql-5.6
commit 3cde80250f0592cf4270986f28946fdb1d440fc4
Author: Kailasnath Nagarkar <[email protected]>
Date: Thu Aug 4 12:49:50 2016 +0530
Bug #19984392 : MEDIUMINT: STACK BUFFER OVERFLOW IN PROTOCOL_TEXT::STORE_LONG
Reverting the patch due to some issues.
commit 3d331cc9b9c79d9ade0589dbb63ff7a4eeb1aae9
Author: Shaohua Wang <[email protected]>
Date: Thu Aug 4 08:59:03 2016 +0800
Followup: BUG#23477773 OPTION TO TURN OFF/ON DEADLOCK CHECKER
Fix innodb_deadlock_detect_basic failure on pb2.
commit bce570f387a5fe14bd7e0e564d4cf8ea1ec7c152
Author: Tor Didriksen <[email protected]>
Date: Tue Aug 2 12:52:47 2016 +0200
Bug#24353920 CLIENT LIBRARIES NOT BUILDABLE ON SOLARIS 11 WITH SUN STUDIO USING LIBCSTD
src/control_events.cpp", line 345: Error: Could not find a match for
std::vector<unsigned char>::insert(unsigned char*, const char*, const char*)
client/check/mysqlcheck.cc", line 555: Error: Could not find a match
for std::vector<std::string>::vector(char**, char**)
Solution is based on patch for:
WL#8896: Enable use of C++11 in MySQL server
commit 6e4ca0089d9f3f72c21092b6af54722727a3a273
Merge: 26b2018 c32616e
Author: Kailasnath Nagarkar <[email protected]>
Date: Wed Aug 3 12:59:44 2016 +0530
Merge branch 'mysql-5.6' into mysql-5.7
commit c32616e41ad7b4f5dbe5fbdee44fd8be686f8d04
Merge: ee675f2 c3743ff
Author: Kailasnath Nagarkar <[email protected]>
Date: Wed Aug 3 12:57:38 2016 +0530
Merge branch 'mysql-5.5' into mysql-5.6
commit c3743ff9b7813e9942d11ae8856a1732f830c941
Author: Kailasnath Nagarkar <[email protected]>
Date: Wed Aug 3 12:54:58 2016 +0530
Bug #19984392 : MEDIUMINT: STACK BUFFER OVERFLOW IN PROTOCOL_TEXT::STORE_LONG
ISSUE: Queries with mediumint as column when operated with
long long type of data results in buffer overflow in
store_long function.
The merging rule specified for (MYSQL_TYPE_LONGLONG
MYSQL_TYPE_INT24) is MYSQL_TYPE_LONG. Due to this store_long
function was getting called which resulted in buffer overflow.
SOLUTION:
The correct merging rule for (MYSQL_TYPE_LONGLONG,
MYSQL_TYPE_INT24) should be MYSQL_TYPE_LONGLONG.
So, instead of function store_long, function store_longlong
is called which correctly handles the type MYSQL_TYPE_LONGLONG.
External Bug #23645238 is a duplicate of this issue.
commit 26b2018022417f6bc6615ca3c67bfde191d552b0
Merge: a15cf63 ee675f2
Author: Sreeharsha Ramanavarapu <[email protected]>
Date: Wed Aug 3 10:01:01 2016 +0530
Merge branch 'mysql-5.6' into mysql-5.7
commit ee675f2d77915b7ebc55cd7e90365581261f90ff
Merge: 6a9abb6 2a774df
Author: Sreeharsha Ramanavarapu <[email protected]>
Date: Wed Aug 3 09:59:37 2016 +0530
Merge branch 'mysql-5.5' into mysql-5.6
commit 2a774df598b8651897a4394e20ca2bfac6de2512
Author: Sreeharsha Ramanavarapu <[email protected]>
Date: Wed Aug 3 09:58:36 2016 +0530
Bug #24380263: INCORRECT BEHAVIOR WITH PARAMETER AND
DERIVED TABLE IN JOIN
ISSUE:
------
This problem occurs under the following conditions:
1) A parameter is used in the select-list of a derived table.
2) The derived table is part of a JOIN.
SOLUTION:
---------
When a derived table is materialized, a temporary table is
created. This temporary table creates a field each for the
items in the select-list of the derived table. This set of
fields is later used to setup the join.
Currently no field is created in the temporary table if a
parameter is used in the select-list.
Create a field for the parameter. By default Item_param's
result type in a prepared statement is set to
STRING_RESULT. This can change during the execute phase
depending on the user variable. But since the execute phase
creates its own temporary table, it will be handled
separately.
This is a backport of the fix for BUG#22392374.
commit a15cf6393a7a02de126d891351e235548d156e19
Author: Allen Lai <[email protected]>
Date: Tue Aug 2 11:06:53 2016 +0800
Bug#24381804 ASSERT :: ALTER TABLE CRASH ::COMPRESSION AND ALGORITH=COPY
This bug caused by the checking in create_table_info_t::innobase_table_flags().
For alter a table to encryption="Y", we need to check the file per table flag also.
Reviewed-by: Jimmy Yang<[email protected]>
RB: 13545
commit 86eb78dd070eb20b164141840aab226deac5df1c
Author: Sreeharsha Ramanavarapu <[email protected]>
Date: Wed Aug 3 08:51:38 2016 +0530
Bug #23205454: GCOLS: MEMORY LEAK AND GRADUAL PERFORMANCE
DEGRADATION
ISSUE:
------
This bug is in the function TABLE::refix_gc_items(). This
function will be called for each query that uses the TABLE
object. When the function calls fix_fields_gcol_func(), new
items might be created. In this case new Item_cache_real
objects are created. The items created by the call to
fix_fields_gcol_func() are created in the table's mem_root.
They are added to the field's gcol_info->item_free_list by
the following code:
// We need append the new items to orignal item lists
Item *item= vfield->gcol_info->item_free_list;
while(item->next)
item= item->next;
item->next= gcol_arena.free_list;
The bug occurs due to the following:
-each time refix_gc_items() is called for this generated
column expression, two new item objects are produced and
added to the end of the item_free_list which is on table's
mem_root.
-memory increase happens because item_free_list is growing.
-the performance drop happens due to spending time in the
above while loop to find the end of the ever growing
item_free_list.
The code that adds new items to the
gcol_info->item_free_list was added in the fix for
Bug#22392268. Before that fix, items added to the item tree
for the generated column expression as part of calling
TABLE::refix_gc_items() would be deleted when the statement
ended, since they were created on the THD's stmt_arena. If
the item was part of a permanent transformation, the next
time this TABLE object was used, we could access deleted
memory when using the item tree for the generated column
expression.
The fix for Bug#22392268 was to make sure that any created
items that are added to gcol_info->item_free_list have the
same life-span as the TABLE object. This worked fine for
generated column expressions where TABLE::refix_gc_items()
does permanent changes to the item tree but not in cases
where new items are produced on every call to
fix_fields_gcol_func().
SOLUTION:
---------
A new boolean flag permanent_changes_completed is added to
the Generated_column class. This flag is set only when the
permanent changes to the gcol function's item tree are
completed.
The fix for Bug#22392268 has been made subject to
permanent_changes_completed. We create objects on the
table's mem_root only when the permanent changes to the
gcol function's item tree haven't been completed.
commit 681b5f384fb0d20ef3b993f4121bf7d7982267da
Author: Allen Lai <[email protected]>
Date: Wed Aug 3 10:49:58 2016 +0800
Followup patch for bug#24329079 Crash with InnoDB Encryption, 5.7.13,
FusionIO & innodb_flush_method=O_DIRECT
Fixed test case check_sector_size failure by adding an .opt file.
commit 078605cd413027d4d624be59aa5bfc42ca391eb9
Author: Allen Lai <[email protected]>
Date: Wed Aug 3 09:35:20 2016 +0800
Bug#24329079 Crash with InnoDB Encryption, 5.7.13, FusionIO
& innodb_flush_method=O_DIRECT
When O_DIRECT is set, we should use the disk sector to align the write
buffer, instead of UNIV_SECTOR_SIZE, which is always 512. Since in
FusionIO device, the sector size could be larger than 512, like 1024,
2048 and 4096 etc..
Compression has the same problem.
Reviewed-by: Sunny Bains <[email protected]>
RB:13329
commit 693d9449fdaf351318108c5ffb76f6d61e80efdd
Author: Tor Didriksen <[email protected]>
Date: Thu Jul 28 08:34:58 2016 +0200
Bug#23508762 THE MYSQL_SERVER DEFINE NOT DEFINED DUE TO SPELLING ERROR IN PLUGIN.CMAKE
The MYSQL_ADD_PLUGIN macro has a spelling error causing the MYSQL_SERVER
define not to be defined. This causes the storage engine plugins to be
compiled without MYSQL_SERVER defined and thus may get a different set of
function signatures, functions and symbols unless the source of the plugins
themself define the MYSQL_SERVER define.
Fix the spelling error.
The addition of -DMYSQL_SERVER to all plugins uncovers some other bugs
when compiling performance-schema related code, so more plugins need
to be recompiled for embedded mode (without performance schema)
Before this fix, several plugins were not properly instrumented.
Remove -DMYSQL_SERVER from the 'innobase' plugin, it breaks embedded build.
The alternative would be to do RECOMPILE_FOR_EMBEDDED, but that's a lot
of extra work.
The standalone test utilities hp_test1 and hp_test2 need to be linked
against a library built without performance schema.
The standalone myisam utilities (myisam_ftdump et.al.) also need to
be linked against a library build without performance schema.
Do not include mysys_priv.h from storage/archive/azlib.h,
it breaks PFS instrumentation code.
(it includes my_dir.h anyways, and gets my_global.h from there)
Now that the MYSQL_ADD_PLUGIN macro has been fixed, we need to quote the
'curr' variable in NDB_ADD_TARGET_PROPERTY (${curr} is a list)
commit 120d5066bacfd9f1fc69a5107e1a18eecc6ea8de
Author: Bharathy Satish <[email protected]>
Date: Tue Aug 2 11:39:02 2016 +0530
Bug #23721446 MYSQLPUMP DOES NOT DUMPS ALL THE GRANT STATEMENTS OF USERS
Problem: When a user is given multiple grants then mysqlpump does
not dump all grant statement.
This patch fixes this problem by reading through every result read
from SHOW GRANTS for any given user.
commit adb933faf2030237b38145b1f0a46e1e664f9f4f
Merge: ee402eb 6a9abb6
Author: Srikanth B R <[email protected]>
Date: Mon Aug 1 19:19:24 2016 +0530
Merge branch 'mysql-5.6' into mysql-5.7
commit 6a9abb618aebb0624eb307a0f9f58604047e01c8
Author: Srikanth B R <[email protected]>
Date: Mon Aug 1 18:53:44 2016 +0530
Bug#22342399: MTR LIMITS PARALLEL TESTS TO 50
Issue:
------
The number of parallel workers in mysql-test-run has an artificial
limit of 50. On some hardware, more CPU's are present and having
--parallel > 50 leads to MTR running out of unique build thread ids
as it has a hard-coded upper limit(50 build thread id's) for them.
Fix:
----
The patch attached removes the arbitrary limit and sets the upper
build thread limit based on the value given to --parallel. Two other
small changes relevant for running with high parallel settings have
been included:
1)The number of parallel workers is now restricted to number of tests
for avoiding idle workers.
2)The maximum number of parallel workers was restricted to 8 for
--parallel=auto in case the environment variable MTR_MAX_PARALLEL
was not set. This restriction has been removed as it hinders MTR
performance on powerful machines.
Reviewed-by: Bjorn Munch <[email protected]>
RB: 13472
commit 33b15f9f52214ad1663345e9f123ad613f6f4a28
Author: Srikanth B R <[email protected]>
Date: Mon Aug 1 18:31:13 2016 +0530
Bug#23742016: MTR --PARALLEL=AUTO IS ALWAYS 1 ON OSX
Issue:
------
MTR currently checks for CPU information using '/proc/cpuinfo' on
linux and 'kstat' on solaris. As no information can be obtained
from them on OS-X, a dummy CPU is added and the number of CPU's is
reported as 1 by default. Hence, using --parallel=auto leads to
MTR running tests on a single worker.
Fix:
----
A routine has been added to get CPU information on OS-X using the
'sysctl' command. The number of parallel MTR workers is set to the
number of processors in the machine.
Reviewed-by: Sayantan Dutta <[email protected]>
RB: 13389
commit ee402eb92c6ff7c2580da82ce23d21b93e458b3d
Author: Tor Didriksen <[email protected]>
Date: Mon Aug 1 14:21:05 2016 +0200
Bug#24303829 ADD SUPPORT FOR SOLARIS STUDIO 12.5 AKA 5.14 TO MYSQL 5.6
Additional patch for cmake version 2.8.12.2
commit b8cf69586f7bfb8346f887a530dfb2b695853bcd
Merge: 1b8fe75 6ea08b4
Author: Tor Didriksen <[email protected]>
Date: Mon Aug 1 14:15:19 2016 +0200
Merge branch 'mysql-5.6' into mysql-5.7
commit 6ea08b4fa03d656873b816fca073f00170dfc7a2
Author: Tor Didriksen <[email protected]>
Date: Mon Aug 1 13:23:31 2016 +0200
Bug#24303829 ADD SUPPORT FOR SOLARIS STUDIO 12.5 AKA 5.14 TO MYSQL 5.6
Additional patch for cmake version 2.8.12.2
commit 1b8fe7510045ca948cd05764f2f3cebb452c3cab
Author: Joao Gramacho <[email protected]>
Date: Mon Aug 1 06:56:56 2016 +0100
Bug#24338358 CHANNEL SERVICE INTERFACE MAY CRASH SERVER WHEN RELAY-LOG
OPTION IS CHANGED
Post-push fix to solve issues in non-debug builds.
commit 2d8328d9988dfe5fbd5ce50b49a0797188ec2ab2
Author: Bharathy Satish <[email protected]>
Date: Mon Aug 1 10:05:42 2016 +0530
Bug #23072245 MYSQLPUMP OUTPUT FAILS TO LOAD WHEN IT INCLUDES TRIGGERS
Problem: If trigger is defined with multiple statements in trigger body,
then during restore we get a sytax error. This patch fixes this issue by
enclosing the trigger ddl in a delimiter.
commit 2a7c80731d36741f7c33da0061d7bbdc70be9556
Author: Joao Gramacho <[email protected]>
Date: Fri Jul 22 14:54:54 2016 +0100
Bug#24338358 CHANNEL SERVICE INTERFACE MAY CRASH SERVER WHEN RELAY-LOG
OPTION IS CHANGED
Problem and analysis:
After changing relay-log parameter content, a plug-in using the channel
service interface can make the server to fail when calling channel_create().
The channel service interface has introduced the change_master() function
parameter "preserve_log" in order to tell change_master() to not purge the
current relay logs for a channel regardless of the channel parameters to be
changed.
This is making change_master() function to reach a situation that is
impossible without using the channel service interface.
In the situation where a relay log info repository was "broken" because of
the change of relay-log parameter, doing a RESET SLAVE is enough to purge all
channel relay logs (that it assumes as missing because of the relay-log
change), and creating new ones with the new relay-log parameter.
As a plug-in may call the channel_create() function telling it to preserve
the relay logs, it would lead to a server failure because the server will
assume the relay log files to exist (and they may exist, but with another
name because of the relay-log parameter change).
Fix:
When the relay log repository is not initialized yet (not used or has failed
to initialize properly), the change_master function should not respect the
preserve_logs parameter used by channel_create() function.
Note: fixed also an issue in the channel service interface that was setting
the use of GTID auto positions even when asked to let it as default in a
change master operation.
commit 4a234e62db9b750b1fdc2faef0828ae09cbd4645
Merge: 8e66769 f31d2752
Author: Prashant Tekriwal <[email protected]>
Date: Fri Jul 29 14:51:09 2016 +0200
Upmerge of the 5.6.32 build
commit f31d2752f2309fdafe550beb10381065991445ea
Merge: 6a86a16 f84c952
Author: Prashant Tekriwal <[email protected]>
Date: Fri Jul 29 14:23:36 2016 +0200
Merge branch 'mysql-5.6.32-release' into mysql-5.6
commit 8e66769c60353cd64f217b5b30911231203b6b39
Merge: 9f71fd9 6a86a16
Author: Nawaz Nazeer Ahamed <[email protected]>
Date: Fri Jul 29 16:55:09 2016 +0530
Upmerge of the 5.5.51 build
commit 6a86a16ee00e275ff1d72472b9c1e61e7c36e9a0
Merge: e206e0a 3bc2b57
Author: Nawaz Nazeer Ahamed <[email protected]>
Date: Fri Jul 29 16:52:58 2016 +0530
Upmerge of the 5.5.51 build
commit 3bc2b572967a4a67a6a3a0b41a0199f81d4339c4
Merge: a0738f7 0496931
Author: Nawaz Nazeer Ahamed <[email protected]>
Date: Fri Jul 29 16:46:56 2016 +0530
Merge branch 'mysql-5.5.51-release' into mysql-5.5
commit 9f71fd9c3f61e5d5e34cb8ea2738e4fbe315c853
Merge: 3152dce e206e0a
Author: Tor Didriksen <[email protected]>
Date: Fri Jul 29 10:34:38 2016 +0200
NULL Merge branch 'mysql-5.6' into mysql-5.7
Conflicts:
configure.cmake
commit 3152dce396b93ff89a71e0507f137e1c2dc1af5f
Merge: e617824 04c9384
Author: Hery Ramilison <[email protected]>
Date: Fri Jul 29 09:28:00 2016 +0200
Merge branch 'mysql-5.7.14-release' into mysql-5.7
commit e61782448297c137cb73d1e34f0b511e16627fdc
Author: Lukasz Kotula <[email protected]>
Date: Thu Jul 28 22:43:05 2016 +0200
Follow up commit for wl#9306, fix for toggling audit_log_mysqlx_unixsocket.test
Description:
Race condition is triggered because the test runs
with valgrind (slow execution)
Solution:
Wait until previous connection is released by MySQL Server
(new wait condition between mysqlxtest connections).
commit b9df2b2566c743fa3f94407f7f1e3b895ebc3251
Author: Thayumanavar S <[email protected]>
Date: Fri Jul 29 10:15:46 2016 +0530
BUG#23744004 - KEVENT()/CLOSE() DEADLOCK ON MAC 10.12
MAC OS 10.12 beta (build 16A201w) causes mysqld to hang on exit.
This happens during the deinitialization of statement timer subsystem.
During the deinitialization, the timer notify thread is signalled to exit
via USER kevent and then race on to close the kqueue fd. If the timer notifier
user kevent doesn't fire before the close of kqueue, it shall cause the close
to hang. In the new release of MACOS, close can't interrupt a kevent syscall.
The fix is to move the close of kqueue fd to timer notifier thread. This kqueue
fd is closed once we exit of the timer event handling loop thereby preventing
the hang.
commit 38791f161605b0713a054dca4daa6780442ddc2d
Author: Georgi Kodinov <[email protected]>
Date: Wed Jul 27 17:00:02 2016 +0300
WL#9480: password_validation plugin must check if the password matches
the user name
commit e206e0a6e43790084070cf50617505ffbd19ab24
Author: Tor Didriksen <[email protected]>
Date: Fri Jul 15 16:48:33 2016 +0200
Bug#24303829 ADD SUPPORT FOR SOLARIS STUDIO 12.5 AKA 5.14 TO MYSQL 5.6
Parse new output from 'CC -V'
Remove '-Xa' from COMMON_C_FLAGS (prefer ISO C rather than K&R C semantics)
It is not needed, and it cannot be used together with the -std=xxx flag.
This is a partial backport of the fix for:
Bug#23212938 ADD SUPPORT FOR SOLARIS STUDIO 12.5 AKA 5.14
commit cf807442d4ce5d41650831e64ec775d8c573181c
Author: Shaohua Wang <[email protected]>
Date: Thu Jul 28 13:08:52 2016 +0800
BUG#23477773 OPTION TO TURN OFF/ON DEADLOCK CHECKER
Backport WL#9383 INNODB: ADD AN OPTION TO TURN OFF/ON DEADLOCK CHECKER
(rb#12873) to 5.7.
commit 58173e1fe67931c7653c379e8f6b2eec78a8fa36
Author: Daogang Qu <[email protected]>
Date: Thu Jul 28 11:28:25 2016 +0800
Bug #24351747 CRASH ON PARALLEL UNINSTALL AND START GR CMD
Problem
=======
When 'UNINSTALL PLUGIN' and 'START GROUP_REPLICATION' command runs
in parallel, there is a crash caused by trying to destroy a locked
mutex.
Analysis
========
The problem can be caused by the following scenario:
Step1: The 'UNINSTALL PLUGIN' thread holds the plugin_running_mutex
to stop GROUP_REPLICATION, then switch the execution to
'START GROUP_REPLICATION' thread.
Step2: The 'START GROUP_REPLICATION' thread waits before acquiring
the plugin_running_mutex, then switch the execution to
'UNINSTALL PLUGIN' thread.
Step3: The 'UNINSTALL PLUGIN' thread releases the plugin_running_mutex
after stopping GROUP_REPLICATION, then switch the execution to
'START GROUP_REPLICATION' thread.
Step4: The 'START GROUP_REPLICATION' thread holds the
plugin_running_mutex to start GROUP_REPLICATION, then switch
the execution to 'UNINSTALL PLUGIN' thread.
Step5. The 'UNINSTALL PLUGIN' thread destroys the
plugin_running_mutex locked by the
'START GROUP_REPLICATION' thread.
The 'UNINSTALL PLUGIN' thread calls group_replication_cleanup() to
stop GROUP_REPLICATION and set group_replication_handler to NULL. The
'START GROUP_REPLICATION' thread calls group_replication_start() to
start GROUP_REPLICATION if group_replication_handler is not NULL. To
avoid above problem, the executions of group_replication_cleanup()
and group_replication_start() must be mutual exclusive.
Fix
===
To fix the problem, introduce a new global mutual lock to
make the executions of group replication plugin handler
function accessors be mutual exclusive.
commit 01215b0c2dc94a58bcef1376baf9c7a42ade71ed
Merge: f2f7461 3044190
Author: Shaohua Wang <[email protected]>
Date: Wed Jul 27 13:45:01 2016 +0200
Merge branch 'mysql-5.6' into mysql-5.7
commit 3044190d26089ad5cc54e229a58e41018a4debe0
Author: Shaohua Wang <[email protected]>
Date: Wed Jul 27 10:39:19 2016 +0200
Followup: BUG#23479595 SEGMENTATION FAULT WHEN SELECT FTS INDEX
TABLES IN INFORMATION SCHEMA
BUG#23742339 FAILING ASSERTION: SYM_NODE->TABLE != NULL
Analysis: When we access fts aux tables in information schema,the
fts aux tables are dropped by DROP DATABASE in another session.
Solution: Drop parent table if it's a fts aux table, and drop
table will drop fts aux tables together.
Reviewed-by: Jimmy Yang <[email protected]>
RB: 13264
commit f2f7461fa2fc1441181ce07d2b31c863e092dd63
Merge: 29560b2 800b876
Author: Shaohua Wang <[email protected]>
Date: Wed Jul 27 09:57:35 2016 +0200
Merge branch 'mysql-5.6' into mysql-5.7
commit 800b8766bde7353293b8784e604b60af20dacce5
Author: Shaohua Wang <[email protected]>
Date: Wed Jul 27 09:37:20 2016 +0200
BUG#24315031 FAILING ASSERTION: !TABLE->CAN_BE_EVICTED
Analysis:
the old table is dropped, just after it's added into drop list,
and new table with the same name is created, then we try to drop
the new table in background.
Solution:
Don't drop a table in background if table->to_be_dropped is false.
Reviewed-by: Jimmy Yang <[email protected]>
RB: 13414
commit 29560b24038b4f74492777121f5616c603e3fe45
Merge: 7e8f62d c5728a8
Author: Shaohua Wang <[email protected]>
Date: Wed Jul 27 08:58:26 2016 +0200
Merge branch 'mysql-5.6' into mysql-5.7
commit c5728a8a29ed496c09c58751a860db9af962ae59
Author: Shaohua Wang <[email protected]>
Date: Wed Jul 27 03:43:52 2016 +0200
BUG#24009272 SEGFAULT WITH CREATE+SELECT FROM IS+DROP FTS TABLE
CONCURRENTLY
Analysis:
When we access fts_internal_tbl_name in i_s_fts_config_fill (),
it can be set to NULL by another session.
Solution:
Define fts_internal_tbl_name2 for global variable innodb_ft_aux_table,
if it's NULL, set fts_internal_tbl_name to "default".
Reviewed-by: Jimmy Yang <[email protected]>
RB: 13401
commit 7e8f62d261ad526317fe5ce1770cffecbe3ba0c0
Author: Joao Gramacho <[email protected]>
Date: Tue Jul 26 08:44:33 2016 +0100
Bug#23618316 MONITORING THREAD MIGHT MISS THREAD STOP SIGNAL FROM RPL THREADS HOOKS
Post push fix to not run the test case on MTS configurations.
commit a7921df96b4a0498c548ff9d98ca692eaf1bd0df
Merge: fca787d 4d4c42e
Author: Dmitry Lenev <[email protected]>
Date: Tue Jul 26 11:22:00 2016 +0300
Merge branch 'mysql-5.6' into mysql-5.7
commit 4d4c42e2ba8a44c9c7160ecf1192de8e635c0312
Author: Dmitry Lenev <[email protected]>
Date: Mon Jul 25 16:06:52 2016 +0300
Fix for bug #16672723 "CAN'T FIND TEMPORARY TABLE".
Attempt to execute prepared CREATE TABLE SELECT statement which used
temporary table in the subquery in FROM clause and stored function
failed with unwarranted ER_NO_SUCH_TABLE error. The same happened
when such statement was used in stored procedure and this procedure
was re-executed.
The problem occurred because execution of such prepared statement/its
re-execution as part of stored procedure incorrectly set
Query_table_list::query_tables_own_last marker, indicating the last
table which is directly used by statement. As result temporary table
used in the subquery was treated as indirectly used/belonging to
prelocking list and was not pre-opened by open_temporary_tables()
call before statement execution. Thus causing ER_NO_SUCH_TABLE errors
since our code assumes that temporary tables need to be correctly
pre-opened before statement execution.
This problem became visible only in version 5.6 after patches related to
bug 11746602/27480 "EXTEND CREATE TEMPORARY TABLES PRIVILEGE TO ALLOW
TEMP TABLE OPERATIONS" since they have introduced pre-opening of temporary
tables for statements.
Incorrect setting of Query_table_list::query_tables_own_last happened
in LEX::first_lists_tables_same() method which is called by CREATE TABLE
SELECT implementation as part of LEX::unlink_first_table(), which temporary
excludes table list element for table being created from the query table
list before handling SELECT part.
LEX::first_lists_tables_same() tries to ensure that global table list of
the statement starts with the first table list element from the first
statement select. To do this it moves such table list element to the head
of the global table list. If this table happens to be last directly-used
table for the statement, query_tables_own_last marker is pointing to it.
Since this marker was not updated when table list element was moved we
ended up with all tables except the first table separated by it as if
they were not directly used by statement (i.e. belonged to prelocked
tables list).
This fix changes code of LEX::first_lists_tables_same() to update
query_tables_own_last marker in cases when it points to the table
being moved. It is set to the table which precedes table being moved
in this case.
commit fca787d6ec45cdaed3a5d291a88cd7631c54c835
Merge: e8f8e37 27dfa58
Author: Neha Kumari <[email protected]>
Date: Mon Jul 25 21:35:12 2016 +0530
Merge branch 'mysql-5.6' into mysql-5.7
and resolved the conflicts.
commit 27dfa58cb07c6e58c2b58a673e18b7b824516c13
Merge: f470c10 a0738f7
Author: Neha Kumari <[email protected]>
Date: Mon Jul 25 21:20:52 2016 +0530
Merge branch 'mysql-5.5' into mysql-5.6
And fixed conflicts.
commit a0738f703e20b5530fe319f47fc1e5c8ad9e9667
Author: Neha Kumari <[email protected]>
Date: Mon Jul 25 20:34:20 2016 +0530
BUG#23509275 :DBUG_PRINT in THD::decide_logging_format prints incorrectly, access out-of-bound
Problem:
In debug builds, there is a chance that an out-of-bounds
read is performed when tables are locked in
LTM_PRELOCKED_UNDER_LOCK_TABLES mode. It can happen because
the debug code uses enum values as index for an array of
mode descriptions, but it only takes into consideration 3
out of 4 of the enum values.
Fix:
This patch fixes it by implementing a getter for the enum which
returns a string representation of the enum,
effectively removing the out-of-bounds read.
Moreover, it also fixes the lock mode descriptions that
would be print out in debug builds.
commit e8f8e37d6be462ebe12a8ef9500920dad852f025
Author: Arun Kuruvila <[email protected]>
Date: Mon Jul 25 14:57:17 2016 +0530
Bug#22922023: PASSWORD VALIDATION PLUGIN FLAW - FAILED
PASSWORDS LOGGED IN CLEAR TEXT
Post push patch to fix pb2 test failure.
commit 59f9a0e91bafc2fbbb10ebf4ae97311dce428f25
Merge: e6b311a f470c10
Author: Thayumanavar S <[email protected]>
Date: Mon Jul 25 07:54:35 2016 +0200
Merge branch 'mysql-5.6' into mysql-5.7
commit f470c103b29250cedfd3a124f6f0dedcebab3e57
Merge: bc715f5 9c7309c
Author: Thayumanavar S <[email protected]>
Date: Mon Jul 25 07:50:47 2016 +0200
Merge branch 'mysql-5.5' into mysql-5.6
commit 9c7309c0d5bc1d663df96a730076d88f625a322c
Author: Thayumanavar S <[email protected]>
Date: Mon Jul 25 06:43:16 2016 +0100
BUG#23703568 - IS CLIENT LIBRARY SUPPOSED TO RETRY EINTR INDEFINITELY OR NOT
Commit#ebd24626ca38e7fa1e3da2acdcf88540be70fabe obsoleted the THREAD and
THREAD_SAFE_CLIENT preprocessor symbols. This is not removed in the
sql/net_serv.cc thereby the code that retries on EINTR became dead code.
Remove the THREAD_SAFE_CLIENT preprocessor directive form sql/net_serv.cc.
Also check errno for EINTR only if there is an error in preceding read call.
commit e6b311ae1632043796b62d125d32b90fb4c865eb
Author: Nuno Carvalho <[email protected]>
Date: Thu Jul 21 13:22:40 2016 +0200
BUG#24331927: REMOVE PARALLEL APPLIER ENABLE SAFETY CHECKS WHEN GROUP REPLICATION IS ON
Until now, parallel applier was not supported on Group Replication,
to prevent errors there are safety checks on MySQL server to
disallow DBA to enable it.
Now Group Replication does support parallel applier and so we can
remove the safety checks.
commit c1a71a192bfceb656f2037d5b9a58b329411ab53
Merge: 7056238 bc715f5
Author: Arun Kuruvila <[email protected]>
Date: Fri Jul 22 13:19:52 2016 +0530
Merge branch 'mysql-5.6' into mysql-5.7
commit bc715f5e681ebafa2bf468ba030bcf2ee18f54a7
Merge: ab63d81 39a1f7d
Author: Arun Kuruvila <[email protected]>
Date: Fri Jul 22 13:17:41 2016 +0530
Merge branch 'mysql-5.5' into mysql-5.6
commit 39a1f7d8f19300c1e0f49f5db983b94ce3ae1854
Author: Arun Kuruvila <[email protected]>
Date: Fri Jul 22 13:15:32 2016 +0530
Bug #23295288: HANDLE_FATAL_SIGNAL (SIG=11) IN
GET_SERVER_FROM_TABLE_TO_CACHE
Description:- Server received SIG11 in the function,
"get_server_from_table_to_cache()".
Analysis:- Defining a server with a blank name is not
handled properly.
Fix:- Modified "get_server_from_table_to_cache()" to
take care of blank server name.
commit 7056238de53a61cd2c680ead7ba32654a082a54a
Merge: bf4c7b7 ab63d81
Author: Sujatha Sivakumar <[email protected]>
Date: Fri Jul 22 11:00:20 2016 +0530
Merge branch 'mysql-5.6' into mysql-5.7
commit ab63d814c81a50d586fff7b57dfe07ac10758333
Author: Sujatha Sivakumar <[email protected]>
Date: Fri Jul 22 10:55:25 2016 +0530
Bug#22510353: UNNECESSARY USING TEMPORARY FOR UPDATE
Problem:
=======
when the binlog_row_image is FULL, we set read_set and
write_set all before update. This leads to setting
used_key_is_modified true, which lead to mysql_update use
temporary at last. Actually there is no need to use
temporary in most cases. The root cause is that we set
read_set and write_set too early.
Analysis:
=========
As reported in problem description table's read_set and
write_set are set earlier.
'mark_columns_per_binlog_row_image' is the function call
which sets these read and write sets. But this is called
at an earlier stage during execution and in the case of
binlog_row_image=FULL it will set all the bits of read and
write sets. This will make the update query to think that
a key is being modified by the existing update query. Even
though it is not modifying the key field. This will force
the update query to use a temporary table even though it may
not be required. The same problem exists even in the case of
binlog_row_image=NOBLOB. This problem is specific to single
table updates.
This issue is not present in the case of multi table update.
As in the multi table update case, the check for 'used key
is modified or not' is done before marking
read_set/write_set as per binlog_row_image. Hence binary log
specific bits are not influencing query to use temporary
table.
Fix:
===
Implemented single table update to follow the same mechanism
that multi table update follows. i.e Mark the columns in
table's read_set/write_set as the binlog_row_image after the
'used key is modified or not' decision is taken.
commit bf4c7b7add80c4f07bd64d779ad0c71f59dc0003
Author: Arun Kuruvila <[email protected]>
Date: Fri Jul 22 10:47:37 2016 +0530
Bug#22922023: PASSWORD VALIDATION PLUGIN FLAW - FAILED
PASSWORDS LOGGED IN CLEAR TEXT
Description:- Passwords which fail validation by the
password validation plugin are logged in mysqld error log
as warning messages in clear text.
Analysis:- Logging of warning message for completely failed
"GRANT/REVOKE users" queries is added as part of another bug
fix. The intention of that bug fix was to handle partial
execution of queries by adding an incident event in the
binary log. But along with addition of incident event in the
binary log for partial execution, a warning message is also
added for quires which fails completely.
Fix:- Logging of warning message to the mysqld error log
is removed which will in turn solve this issue.
commit 14b859937f8aa24e0fea537dcd753ff857e3e5b3
Merge: c9f003c 926ec9c
Author: Sreeharsha Ramanavarapu <[email protected]>
Date: Fri Jul 22 07:36:36 2016 +0530
Merge branch 'mysql-5.6' into mysql-5.7
commit 926ec9c656582bcbc2e69087eeb11a1c197ac717
Merge: 74cfd7c 8235e91
Author: Sreeharsha Ramanavarapu <[email protected]>
Date: Fri Jul 22 07:35:57 2016 +0530
Merge branch 'mysql-5.5' into mysql-5.6
commit 8235e9184c5a0cab08d74dfa4d47ff0faed8c31a
Author: Sreeharsha Ramanavarapu <[email protected]>
Date: Fri Jul 22 07:33:43 2016 +0530
Bug #23280699: MYSQLD GOT SIGNAL 11 IN IS_NULL ON SELECT
FROM I_S
Issue:
------
There is a difference in the field type created when the
following DDLs are used:
1) CREATE TABLE t0 AS SELECT NULL;
2) CREATE TABLE t0 AS SELECT GREATEST(NULL,NULL);
The first statement creates field of type Field_string and
the second one creates a field of type Field_null.
This creates a problem when the query mentioned in this bug
is used. Since the null_ptr is calculated differently for
Field_null.
Solution:
---------
When there is a function returning null in the select list
as mentioned above, the field should be of type
Field_string.
This was fixed in 5.6+ as part of Bug#14021323. This is a
backport to mysql-5.5.
An incorrect comment in innodb_bug54044.test has been
corrected in all versions.
commit c9f003c13875e37a66bf4f7ed714e6b25b663e4f
Author: Grzegorz Szwarc <[email protected]>
Date: Wed Jul 6 17:02:27 2016 +0200
BUG#23738896: CRUD.FIND BUILDS INVALID SQL QUERY WITH AGGREGATION FUNCTION IN GROUP_CRITERIA
Description:
Elements returned in JSON_OBJECT were extracted to subquery. The
'grouping_criteria' field is interpreted as they would refer to json
object generated in main query, still they put as columns in sub-query.
Solution:
Generation of sql query has been improved by moving 'grouping_criteria'
expression to main query. Additionally error messages have been reworded
for better pointing place of potential inconsistency in expected query.
Reviewed-by: Lukasz Kotula <[email protected]>
RB:13327
commit 1b8be2fd9106a97b40c3996450d41c46c1ee8815
Author: Balasubramanian Kandasamy <[email protected]>
Date: Thu Jul 21 15:42:24 2016 +0530
BUG#24011900 - MYSQLX_UNIX_ADDR FOR RPMS SHOULD BE /VAR/RUN/MYSQLD/MYSQLX.SOCK
Override MYSQLX_UNIX_ADDR values to /var/run/mysqld/mysqlx.sock for el/fedora rpms and
/var/run/mysql/mysqlx.sock for sles rpms.
commit ac95747b57589d91221823fafdbb119a03b8694f
Author: Sreeharsha Ramanavarapu <[email protected]>
Date: Thu Jul 21 07:25:47 2016 +0530
Bug #23049975: GROUP BY SENDING DIFFERENT RESULTS BETWEEN
5.6 AND 5.7
ISSUE:
------
This issue occurs in the following scenario:
1) A subquery in the SELECT list of a query.
2) The subquery contains a where condition which
references a value in the outer query.
3) The outer query contains a group by which requires the
creation of a temporary table.
An example query is:
SELECT (SELECT t3.t3_val
FROM t3
WHERE t3.t3_t1_val = t1.t1_id) as CMS,
t2.t2_val, t1.t1_id
FROM t1 INNER JOIN t2 ON t1.join_val = t2.join_val
WHERE t1.t1_id = 1 GROUP BY t2.t2_val;
The following is the common behavior in 5.6 and trunk:
a) A temp table is created with a field for t1_id. This
field is supposed to refer to the outer query's value
of t1.t1_id and copy it when there is a new value.
b) The temp table's t1.t1_id is in-turn used to copy it's
value into the field of t3.t3_t1_val. This will check
for the value in the index on t3_t1_val.
Steps followed in 5.6:
1) QEP_tmp_table::put_record copies the value from t1.t1_id
into the temporary table's t1_id.
2) While evaluating the inner query, the
"subselect_single_select_engine::exec" also contains
optimize phase of the join. This will copy the value
from the temporary table to the field t3.t3_t1_val.
3) The value copied into t3_t1_val will be used to check the
values in the index.
Steps followed in 5.7:
1) Optimization of inner subquery occurs before the execute
phase. Value from the temp table is attempted to be
copied into t3_t1_val. Since there is no value in the
temp table at this stage, we end up copying a null value.
2) QEP_tmp_table::put_record copies the value from t1.t1_id
into the temporary table's t1_id.
3) Unlike in 5.6, "subselect_single_select_engine::exec"
doesn't want to optimize since that step has already
happend.
4) Value in t3_t1_val (which is null) is used to search the
index and this fails.
Notice that the steps 1 and 2 have been flipped in 5.6 and
5.7. Removing the optimize phase from
"subselect_single_select_engine::exec" has introduced this
problem.
This was changed as part of "WL#6369: EXPLAIN for other
thread".
SOLUTION:
---------
The problem is when generating the ref-key for the subquery
evaluation. The source for the ref-key is an outer reference
to table t1, which is a const value, thus the value is
available in the row buffer for t1. However, the copy
function looks in the result buffer, which has not been
populated yet since this occurs during optimization phase.
Currently the value used by t3_t1_val is considered as a
constant. Replace result_field with field in the Item_field
representing the ref-key source. It makes the corresponding
temp_table field redundant.
commit a297626384cc16a34cd4b84490c5e6da44d82381
Author: Pedro Gomes <[email protected]>
Date: Wed Jul 20 20:44:47 2016 +0200
Bug#24324800 SERVER PARAMETER EXTRACTION FOR GROUP REPLICATION LACKS THE SERVER VERSION
The server code in place for plugins to extract server parameters
lacked a way to get the server version.
That is now fixed.
commit d8f12c7a7836388b5663f1a67c8cd7d274ce6fd9
Author: Venkatesh Duggirala <[email protected]>
Date: Wed Jul 20 12:30:34 2016 +0530
Bug#23604483 GCOLS: MINIMAL BINLOG_ROW_IMAGE LEAD TO
CORRUPTION/CRASH ON SLAVE
Fixing a post push to fix pb2 failure
commit 062f162e96f1d57fab6ea2738fe4f53a590bd614
Author: Darshan M N <[email protected]>
Date: Wed Jul 20 10:00:26 2016 +0530
Bug#23631471 BUF_BLOCK_ALIGN() MAKES INCORRECT ASSUMPTIONS ABOUT CHUNK SIZE
Issue:
======
Currently the approach we take to find the chunk corresponding to a given
pointer uses srv_buf_pool_chunk_unit based on the assumption that
srv_buf_pool_chunk_unit is the total size of all pages in a buffer pool
chunk. We first step back by srv_buf_pool_chunk_unit bytes and use
std::map::upper_bound() to find the first chunk in the map whose key >= the
resulting pointer.
However, the real size of a chunk (and thus, the total size of its pages)
may differ from the value configured with innodb_buffer_pool_chunk_size
due to rounding up to the OS page size. So, in some cases the above logic
gives us the wrong chunk.
Fix:
====
We find out the chunk corresponding to the give pointer without using
srv_buf_pool_chunk_unit. This is done by using std::map::upper_bound()
to find the next chunk in the map which appears right after the pointer and
decrementing the iterator, which would give us the chunk the pointer
belongs to.
Contribution by Alexey Kopytov.
RB: 13347
Reviewed-by: Debarun Banerjee <[email protected]>
commit 9e517d34034eb014a68a6f4224ba2682d3aa8ddc
Merge: 30e0cb1 74cfd7c
Author: Chaithra Gopalareddy <[email protected]>
Date: Tue Jul 19 08:05:38 2016 +0530
Merge branch 'mysql-5.6' into mysql-5.7
commit 74cfd7cfab19ea0d0bc52c7cab3616ef8165f4bc
Merge: efd84b4 a9911d0
Author: Chaithra Gopalareddy <[email protected]>
Date: Tue Jul 19 08:04:29 2016 +0530
Merge branch 'mysql-5.5' into mysql-5.6
commit a9911d0b31e874c7ad6d3f088e755e04beb49e38
Author: Chaithra Gopalareddy <[email protected]>
Date: Tue Jul 19 08:03:09 2016 +0530
Bug#23280059: ITEM_ROW::ILLEGAL_METHOD_CALL(CONST CHAR*):
ASSERTION `0' FAILED ON SELECT AREA
Problem:
Optimizer tries to get the points to calculate area without
checking the return value of uint4korr for 0 "points". As a
result server exits.
Solution:
Check the return value from uint4korr().
commit 30e0cb1b805f34c2ec4e64df8fe27385c26bdc6f
Author: Lukasz Kotula <[email protected]>
Date: Mon Jul 18 14:15:57 2016 +0200
WL#9306: X Protocol connectivity through unix sockets
Follow up fix: mysqlxtest is missing description of "-v" command line
option also connection_require_secure_transport.test uses wrong option when running mysqlxtest.
Reviewed-by: Andrzej Religa <[email protected]>
commit 9b72e2f9ee46b3fa40cf7365b9b428a84425cfdb
Author: Joao Gramacho <[email protected]>
Date: Mon Jun 20 16:00:53 2016 +0100
Bug#23618316 MONITORING THREAD MIGHT MISS THREAD STOP SIGNAL FROM RPL
THREADS HOOKS
Problem:
In order to know when receiver and applier thread have stopped, a plug-in
(like GR) can monitor thread stop activities by registering to be notified by
replication thread stop hooks.
A common scenario is to:
1) start the replications threads;
2) register to monitor thread stop activities;
3) check if the thread stopped between 1 and 2. This is necessary because
thread start command can succeed but the thread might fail right after
trying to start work.
Unfortunately for step 3 above, the way channel service interface offer to
know if the thread has stopped may provide an information stating the
replication thread is still active when it is about to stop, after passing
the thread stop hook. In this case, the step 3 above would obtain that the
thread didn't stopped, but it will soon and will not notify the monitoring
thread because the thread stop hook point has passed.
Fix:
Created a new status variable at rpl_info object to state if the replication
thread (either applier or receiver thread) is stopping or not.
Created a new function at channel service interface to get the "is_stopping"
information from the replication threads.
commit 7a0447ee9b7c6960694ab640abb4119c3d928938
Author: Lukasz Kotula <[email protected]>
Date: Fri Jul 15 13:45:17 2016 +0200
WL#9306: X Protocol connectivity through unix sockets
Follow up fix: connection_require_secure_transport.test isn't stable on some platforms.
Test is restarting the server without waiting for the X Plugin to be initialized.
Solution:
Veriyi that the plugin was started correctly by doing a XConnection after
plugin install.
Reviewed-by: Andrzej Religa <[email protected]>
commit 456cab8d41466dea63f71f5b7a5568675c2184c4
Merge: 83165db efd84b4
Author: Thirunarayanan Balathandayuthapani <[email protected]>
Date: Fri Jul 15 14:49:32 2016 +0530
Merge branch 'mysql-5.6' into mysql-5.7
commit efd84b4bcba3516e15699be833f1292670144e22
Author: Thirunarayanan Balathandayuthapani <[email protected]>
Date: Fri Jul 15 14:39:37 2016 +0530
Bug #23475211 COMBINING ALTER OPERATIONS TRIGGERS TABLE REBUILD
Problem:
=======
Inplace alter algorithm determines the table to be rebuild if the table
undergoes row format change, key block size if handler flag contains only
change table create option. If alter with inplace ignore flag operations and change table create options then it leads to table rebuild operation.
Solution:
========
During the check for rebuild, ignore the inplace ignore flag and check for
table create options.
Reviewed-by: Jimmy Yang <[email protected]>
Reviewed-by: Marko Makela <[email protected]>
RB: 13172
commit 83165dbecca6e768d0fa883f05b147a6293ee645
Author: Grzegorz Szwarc <[email protected]>
Date: Thu Jul 14 14:00:38 2016 +0200
WL#9281: X Protocol use named parameters for admin commands
Post-push fix: Stabilization of periodically failing test
Reviewed-by: Lukasz Kotula <[email protected]>
commit 8da1b0f9278e1469cda5f1270abbe6af150a92ec
Author: Georgi Kodinov <[email protected]>
Date: Wed Jul 13 16:26:59 2016 +0300
Addendum to the fix for bug #23747899: fixed the sysschema test to
expect a properly terminated basedir
commit 1efa31edf4d8dff9cd052aec0dcc9339a66bd4a7
Author: Lukasz Kotula <[email protected]>
Date: Wed Jul 13 14:20:58 2016 +0200
Follow up commit for wl#9306, fix for compilation warnings on OSX
Description:
OSX doesn't detect properly that "msgid" variable is properly
initialized in one of sub-calls.
Solution:
Changed the source code to be better understandable for the
compiler, from:
while(!stop) { ... }
to:
do { ... } while(!stop);
Reviewed-by: Andrzej Religa <[email protected]>
commit 2405a07d9609239fe5016c7e6306e84fe721cb1e
Author: Lars Tangvald <[email protected]>
Date: Wed Jul 13 11:15:58 2016 +0200
Added packaging support for Ubuntu 16.10 (Yakkety Yak)
commit 3fa1c1eca9c1402e8845b09a0212d09239729ccb
Merge: cb1ba12 47c0fdf
Author: Georgi Kodinov <[email protected]>
Date: Wed Jul 13 10:49:38 2016 +0300
Merge branch 'mysql-5.6' into mysql-5.7
commit 47c0fdfced7f5bb5e1ae9af9bdaeb369b5f8583b
Author: Georgi Kodinov <[email protected]>
Date: Thu Jul 7 15:37:25 2016 +0300
Bug #23747899: @@BASEDIR SYSVAR VALUE NOT NORMALIZED IF SET THROUGH
THE COMMAND LINE/INI FILE
The system variable basedir is of type charptr and can take command line
arguments. This means that it operates on a "char *" global and every time
a command line argument is supplied a new string buffer is allocated and
assigned to this variable.
The global char * used for this variable is called base_dir_ptr.
Originally this char * is assigned to a global char array called base_dir.
And the rest of the server code uses the base_dir array directly.
But setting a new value on the command line set the base_dir_ptr to the
something different than the base_dir.
Then, in mysqld_get_one_option(), the contents of that new buffer is copied
to base_dir, but the base_dir_ptr is not reset to point back to base_dir.
Thus it does not reflect the subsequent processing done directly over base_dir
This processing includes (among other things) normalization of the path
separators used. As a result the system variable returns the data exactly as
set on the command line or through the INI file instead of the normalized
value that's stored in base_dir.
Note that no other code uses base_dir_ptr, thus the problem is constrained
to the value returned for @@basedir.
Fixed by reseting base_dir_ptr to point to base_dir in mysqld_get_one_option
right after copying the new value back. This makes it similar to the other
path containing system variables.
Test case added.
commit cb1ba12732bbe2c13044dba04754594fb413614d
Author: Lukasz Kotula <[email protected]>
Date: Tue Jul 12 18:33:32 2016 +0200
wl#9306 X Protocol connectivity through unix sockets
Approved by Lalit Choudhary <[email protected]>
commit f8f0611a25df6ae1122fc3b27485d5d14d535e81
Author: Venkatesh Duggirala <[email protected]>
Date: Tue Jul 12 12:15:50 2016 +0530
Bug#23604483 GCOLS: MINIMAL BINLOG_ROW_IMAGE LEAD TO CORRUPTION/CRASH ON SLAVE
========
Problem:
========
Slave crashes when it is trying to apply an UPDATE row event
(with virtual generated columns) that came from a Master with
BINLOG_ROW_IMAGE=MINIMAL setting.
=========
Analysis:
=========
=============================================================
read_set/write_set bits requirement for GCol computation:
=============================================================
Stored generated columns are computed during an operation and
the value is stored inside storage engine. The computed value will be used
incase of next operation on that column. But Virtual generated column
values, unlike storged generated columns, computed always on the fly and
will not be stored anywhere. But if there is an index on top of virtual
generated columns, it will be maintained by Storage engine. The code
that is required to compute the Virtual generated columns on the fly
is added to all the handler functions (ha_rnd_pos, ha_rnd_next,
ha_index_read_map and etc.,). But due to performance reasons,
it will be computed only when the caller explictly asked to do so by
setting it's flag in read_set bitmap.
mark_generated_columns() function is used to set read_set/write_set
flags that are required to do generated columns modifications
(insert/update/delete).
=========================================================================
'Innodb' Storage engine behaviour/expecation in case of DMLs (update operations)
=========================================================================
In case DMLs are the ongoing operations and exclusive lock is acquired on
the table (which is true for all DMLs), fetch_all_key is set to true i.e.,
storage engine ignores table->read_set and fetches all the column values.
If a primary key (or the keys that can retrieve the tuple uniquely) is provided
to storage engine, storage engine will retrieve all column values from the clustered index
and fills the tuple struture (struct record) with all the column values
irrespective of what is there in table->read_set bitmap.
Also, Storage engine expects all the column values are ready in before_image
before calling ha_update_row, so that the value of a column from the image
can be used as key to find second index entry in case the index entry needs
to be updated.
=============================================================
RBR behaviour when BINLOG_ROW_IMAGE=MINIMAL and setting of
read_set/write_set bits in that setting:
=============================================================
In MySQL row-based replication, each row change event contains two images, a
“before” image whose columns are matched against when searching for the row
to be updated, and an “after” image containing the changes.
In case of MINIMAL setting, for the before image, it is necessary only that
the minimum set of columns required to uniquely identify rows is logged.
If the table containing the row has a primary key, then only the primary key
column or columns are written to the binary log. In the replication flow,
read_set and write_set bitmaps are also used to decide what all the columns
needs to be packed to write into the binary log.
=============================
Analysis on the server crash
=============================
Only DDLs and DMLs are replicated (SELECTs are never replicated).
With the above explanation, storage engines always return all the column
values in case of DMLs (i.e., fetch_all_key is true always for DMLs).
So in pure replication flow (i.e., RBR on slave does not go through regular
optimzer layer) never sets read_set bits to decide what needs to be retrieved
from the storage engine as it was getting all the column values from the
storage engine irrespective of what is there in 'read_set' bitmap.
But since virtual generated columns are not maintained by storage engine
and the retriveal/computation of virtual generated columns are depends on
its bit value in read_set bitmap, it is not computed now. Hence it is not
filled in before_image struture when RBR logic called handler function(in this
example, ha_rnd_pos).
Later when RBR called ha_update_row and storage engine wanted to update secondary
index created on virtua column(which is maintained by storage engine), it tries
to find secondary index entry for the given virtual column value (which is
NULL) and crashes there.
====
Fix:
====
Call mark_generated_columns() before calling any handler functions to
retrieve the before_image. This function will make sure to set all
the read_set/write_set bits that are required to compute/update
virutal columns.
binlog_prepare_row_image() function, which will be called from
binlogging functions (binlog_update_row() and binlog_delete_row())
will take care of removing these spurious fields required during execution
but not needed for binlogging. In case of inserts, there are no spurious
fields (all the columns are required to be written into the binlog)
Along with the fix, the patch is removing some code that was added
for testing purpose (in all three paths, INDEX_SCAN, TABLE_SCAN and
HASH_SCAN).
- // Temporary fix to find out why it fails [/Matz]
- memcpy(m_table->read_set->bitmap, m_cols.bitmap, (m_table->read_set->n_bits + 7) / 8);
commit f84c9522f86cdee413b8c7461de3d7fd01044ace
Author: Shaohua Wang <[email protected]>
Date: Thu Jul 7 11:41:31 2016 +0800
Followup: BUG#23479595 SEGMENTATION FAULT WHEN SELECT FTS INDEX
TABLES IN INFORMATION SCHEMA
BUG#23742339 FAILING ASSERTION: SYM_NODE->TABLE != NULL
Problem: When we access fts aux tables in information schema,the
fts aux tables are dropped by DROP DATABASE in another session.
Solution: Block DDL by s-locking dict_operation_lock.
Reviewed-by: Jimmy Yang <[email protected]>
RB: 13264
(cherry picked from commit c45124a0b582d57ac6cf20b786e0c643ec9ce941)
commit be7b121f2cb49de03fa993599d203f616072853b
Author: Aakanksha Verma <[email protected]>
Date: Mon Jul 11 12:24:54 2016 +0530
Revert "Bug #22733635 CACHE LINE CONTENTION ON UT_RND_ULINT_COUNTER"
This reverts commit 1994f43daafbb1b6b2cd44894ba6a7944bc22260.
commit 26ca6d919de4df5bf74857d5203ae284348b4fc8
Merge: 7e3e49a ae4d5db
Author: Srikanth B R <[email protected]>
Date: Mon Jul 11 10:34:45 2016 +0530
Merge branch 'mysql-5.6' into mysql-5.7
commit ae4d5db19450380f448b0763d97a3a98277704b4
Author: Srikanth B R <[email protected]>
Date: Mon Jul 11 10:14:23 2016 +0530
Bug#23060553 MTR SPAWNS ONLY ONE WORKER WHEN USING --PARALLEL=AUTO
ON WINDOWS
Follow-up fix: Restoring original file permissions of mysql-test-run.pl
Reviewed by: Erlend Dahl <[email protected]>
commit 7e3e49a9ed0df13c787c5796af542f91c8b98ed8
Author: Neha Kumari <[email protected]>
Date: Fri Jul 8 14:33:53 2016 +0530
BUG#23016254:MTR- binlog test suite failed to cleanup
Following four test-cases of binlog suite are failing due to improper cleanup,
as these do not remove the saved binlog files which were created on the fly
during the execution of the test-cases:
- binlog_bug36391
- binlog_tmp_table
- binlog_checksum
- binlog_mysqlbinlog-cp932
Fix:
Test-cases now do proper cleaning by removing the saved binlog files in the
cleanup section.
commit 0ef608e116abdcac7a2ce572d12eb1a14026937f
Author: Grzegorz Szwarc <[email protected]>
Date: Wed Jul 6 17:16:11 2016 +0200
WL#9269: X Protocol StmtExecute new admin command ensure_collection
Post-push fix: Compilation error on 32bit Solaris
Reviewed-by: Andrzej Religa <[email protected]>
commit 22c917e15faf36f07b012a51a58597c8d6b8a163
Merge: 3ece43a b587f4a
Author: Srikanth B R <[email protected]>
Date: Fri Jul 8 14:34:35 2016 +0530
Merge branch 'mysql-5.6' into mysql-5.7
commit b587f4a2531b20b4f15792527fa0b46fc5138dde
Author: Srikanth B R <[email protected]>
Date: Fri Jul 8 14:33:55 2016 +0530
Bug#23060553 MTR SPAWNS ONLY ONE WORKER WHEN USING --PARALLEL=AUTO
ON WINDOWS
Issue:
------
MTR does not compute the number of parallel workers when the option
--parallel=auto is given on Windows and spawns only one worker by
default. An additional check throttles the number of parallel workers
to one in case of virtual machines on Windows.
Fix:
----
Number of parallel MTR workers is now set to the number of processors
using the environment variable 'NUMBER_OF_PROCESSORS' when --parallel
=auto is given on Windows. Also, a line which checks if a Windows machine
is a virtual one and sets the --parallel value to one has been removed
as Windows VM's are stable with huge amount of threads these days.
Reviewed-by:
Sayantan Dutta <[email protected]>
RB #12523
commit 3ece43ac68651ea3a2bdf7f06a3759146239c76e
Author: Lukasz Kotula <[email protected]>
Date: Wed Jul 6 00:17:47 2016 +0200
Bug#23707238 - PROTOBUF LIMITS THE NUMBER OF NESTED OBJECTS TO 100 RECURSIONS
Description:
When X Plugin receives X Protocol message that contains 101 nested objects,
the decoding operation fails and client received following error:
"Invalid message" and gets disconnected.
Analysis:
Decoding failure is caused by Protobuf which limits the number of nested objects.
There isn't any way to verify the cause of the failure, which leaves us with
a generic message. When decoding this message manualy (by "protoc") it doesn't
give any usefull information about the cause.
Fix:
Fix sets the limit to 100 (in explicit to ensure that we do not overwrite the stack)
It is done by calling following method:
google::protobuf::io::CodedInputStream::SetRecursionLimit
Used a workaround for checking the error. When decoding failed, plugin call
DecrementRecursionDepth and IncrementRecursionDepth on CodedInputStream,
if the increment fails this mean that the limit was reached and correspondin error information is
send back.
RB: 13186
Reviewed-by: Grzegorz Szwarc <[email protected]>
Reviewed-by: Andrzej Religa <[email protected]>
commit 04969317137464074556c969950d3782f551fbdf
Author: Balasubramanian Kandasamy <[email protected]>
Date: Tue Jul 5 17:08:37 2016 +0530
Bug#23736787 - YUM UPDATE FAIL FROM 5.5.51(COMUNITY/COMMERCIAL) TO 5.6.32(COMUNITY/COMMERCIAL)
Remove mysql_config from client sub-package
(cherry picked from commit 45c4bfa0f3f1c70756591f48710bb3e76ffde9bc)
commit e5384bd7b3368eb64e8b01b6e1a83da2bcd1654d
Author: Balasubramanian Kandasamy <[email protected]>
Date: Tue Jul 5 17:12:56 2016 +0530
Merge branch 'mysql-5.5' into mysql-5.6
(cherry picked from commit 308f9b88e75f6179add209a2fe6affdb49b7c2ee)
commit 371dee3ff3e41ac007d816389292f2dabdc5ba94
Merge: 202be09 c45124a
Author: Shaohua Wang <[email protected]>
Date: Thu Jul 7 11:49:29 2016 +0800
Merge branch 'mysql-5.6' into mysql-5.7
commit c45124a0b582d57ac6cf20b786e0c643ec9ce941
Author: Shaohua Wang <[email protected]>
Date: Thu Jul 7 11:41:31 2016 +0800
Followup: BUG#23479595 SEGMENTATION FAULT WHEN SELECT FTS INDEX
TABLES IN INFORMATION SCHEMA
BUG#23742339 FAILING ASSERTION: SYM_NODE->TABLE != NULL
Problem: When we access fts aux tables in information schema,the
fts aux tables are dropped by DROP DATABASE in another session.
Solution: Block DDL by s-locking dict_operation_lock.
Reviewed-by: Jimmy Yang <[email protected]>
RB: 13264
commit 202be0993b889e027756b3f3a58c68be241de646
Author: Robert Golebiowski <[email protected]>
Date: Tue Jul 5 15:16:19 2016 +0200
Post "Bug #23337926 DATA ACCESS LAYER SHOULD BE CREATED ONCE IN KEYRING FRAMEWORK" push bug fix
commit cad4871f39bf04852559d30885fbf1b522073677
Merge: 69bfb55 308f9b8
Author: Balasubramanian Kandasamy <[email protected]>
Date: Tue Jul 5 17:16:53 2016 +0530
Merge branch 'mysql-5.6' into mysql-5.7
commit 308f9b88e75f6179add209a2fe6affdb49b7c2ee
Merge: 140d08c 45c4bfa
Author: Balasubramanian Kandasamy <[email protected]>
Date: Tue Jul 5 17:12:56 2016 +0530
Merge branch 'mysql-5.5' into mysql-5.6
commit 45c4bfa0f3f1c70756591f48710bb3e76ffde9bc
Author: Balasubramanian Kandasamy <[email protected]>
Date: Tue Jul 5 17:08:37 2016 +0530
Bug#23736787 - YUM UPDATE FAIL FROM 5.5.51(COMUNITY/COMMERCIAL) TO 5.6.32(COMUNITY/COMMERCIAL)
Remove mysql_config from client sub-package
commit 69bfb55742d1e0755fa306f35011f3420e08e551
Author: Robert Golebiowski <[email protected]>
Date: Mon May 23 17:04:05 2016 +0200
Bug #23337926 DATA ACCESS LAYER SHOULD BE CREATED ONCE IN KEYRING FRAMEWORK
commit c723c5ac6fac8aade214e2dd1bd4be387f7f5efa
Author: Balasubramanian Kandasamy <[email protected]>
Date: Mon Jul 4 15:41:43 2016 +0530
Raise version number after cloning 5.7.14