-
Notifications
You must be signed in to change notification settings - Fork 481
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PS-5859: Merge MySQL 5.7.28 (part 1) #3476
Conversation
Approved-by: Erlend Dahl <erlend.dahl@oracle.com>
Approved-by: Erlend Dahl <erlend.dahl@oracle.com>
Approved-by: Erlend Dahl <erlend.dahl@oracle.com>
PROBLEM ------- Usage of a freed object while printing error. FIX --- Print the error and then free the associated object Reviewed by : Debarun Banerjee <debarun.banerjee@oracle.com>
PLUGIN CLIENTS Problem: In read uncommitted isolation level, If a tuple has a externally stored blob is updated (or a new tuple is inserted). and if updated operation is not yet completed. Cluster index record has been updated and stored zeros in blob reference field in cluster index record, but externally stored blob data has not been stored yet. At this point of time, another transaction read the same record and finds that the blob column is null because blob reference contains all zeros. In innodb memcache plugin, ib_read_tuple() read blob column data as null and data length 20. which causes the segmentation fault while copying 20 bytes data. Fix: Added a check. If ib_read_tuple() read the blob data as null then set data length to zero. RB: 22128 Reviewed by: Annamalai Gurusami <annamalai.gurusami@oracle.com>
SERVER TO EXIT ON STARTUP Post push patch to fix valgrind test failure in PB2 5.6 RB#22243
…E FOR EVENTS Unit test mem0mem-t was missing to call os_event_global_init. RB: 22281
…HOUT PROPER LOCK PROBLEM ======= When mysqld_main thread is run in parallel with Ndb_binlog thread, mysqld crashes during startup. This is because initialize_storage_engine() tries to de-allocate and allocate memory for global pointer global_variables.table_plugin. During De-allocation the function holds mutex on LOCK_plugin but unlocks the mutex immidietly after releasing the memory. So, when allocating, the function modifies the global pointer(global_variables.table_plugin) with out holding any mutex. This makes the pointer accessible to other threads. So, if there is a context switch before allocation, the value of global_variables. table_plugin will be invalid and any thread accessing it will lead to the crash. FIX === Fix by saving the plugin reference pointed by global_variables.table_plugin to a temp pointer, assign new plugin to global_variables.table_plugin and release the temp pointer at last. This way the global_variables.table_plugin will be always valid. So, if the context switch happens before assignment old value will be read and if the context switch happens after assignment new value will be read. Hence, the pointer can never be invalid and thus avoiding the issue. The code is only used during mysqld startup, so this fix is of low risk. Change-Id: Icbbe9c1b1407478cb738706c5c6bdb76c1517163
…ASK PASSWORD FROM QUERY If a rewritten version of a given query exists (to hide passwords etc.), use that instead of the original query in a) SHOW PROCESSLIST b) information_schema.processlist c) performance_schema.threads in addition to the support for d) performance_schema.events_statements_current e) performance_schema.events_statements_history f) performance_schema.events_statements_history_long v5.6 Approved by: Karthik Kamath <karthik.kamath@oracle.com>
…ASK PASSWORD FROM QUERY If a rewritten version of a given query exists (to hide passwords etc.), use that instead of the original query in a) SHOW PROCESSLIST b) information_schema.processlist c) performance_schema.threads in addition to the support for d) performance_schema.events_statements_current e) performance_schema.events_statements_history f) performance_schema.events_statements_history_long v5.7 Approved by: Karthik Kamath <karthik.kamath@oracle.com>
Approved by: Karthik Kamath <karthik.kamath@oracle.com>
Approved by: Karthik Kamath <karthik.kamath@oracle.com>
This patch is for 5.6 Cmake changes to support: WL#12903 BACKPORT OF WL#12361 - SUPPORT TLS 1.3 TO MYSQL 5.6 & 5.7 WL#13289 Remove yaSSL support from 5.6/5.7 codebase In several CMakeLitst.txt files: remove obsolete cmake code for copying OpenSSL .dll files on Windows. In cmake/ssl.cmake: - Add code to do version check for minor and fix version of ssl. - SSL libraries version 1.1 on windows have changed names, so extend the list of names to search for in FIND_LIBRARY(...) - Remove obsolete cmake code which tried to use openssl .dlls on windows. - Translate WITH_SSL=system on Mac and Windows to known paths (same as 8.0) This is to simplify the work for developers: no need to download tarballs from pushbuild. Note that pushbuild will continue to use WITH_SSL=<path/to/custom/openssl> In libmysql/CMakeLists.txt separate the LIBS macro into LIBS_TO_MERGE and LIBS_TO_LINK, otherwise the code in MERGE_CONVENIENCE_LIBRARIES may fail in mysterious ways. This is a backport from 8.0 Same patch as for 5.7 plus: - disable -Wclass-memaccess warnings for modern C++ compilers. - explicitly set -std=gnu++03 in order to be able to build with modern C++ compilers Changes from the 5.7 patch *not* included - 5.6 has no protobuf code - ndbcluster does not build in 5.6 so cmake changes not backported The current patch keeps "bundled" i.e. YaSSL as default. This will be removed by WL#13289. Change-Id: Id546350978fe579b77b144dfda2f4635c0600852
Change-Id: I559fc98300044e5367ce9080538af65edd1dbab2
This patch is for 5.7 Cmake changes to support: WL#12903 BACKPORT OF WL#12361 - SUPPORT TLS 1.3 TO MYSQL 5.6 & 5.7 WL#13289 Remove yaSSL support from 5.6/5.7 codebase In several CMakeLitst.txt files: remove obsolete cmake code for copying OpenSSL .dll files on Windows. In cmake/ssl.cmake: - Add code to do version check for minor and fix version of ssl. - SSL libraries version 1.1 on windows have changed names, so extend the list of names to search for in FIND_LIBRARY(...) - Remove obsolete cmake code which tried to use openssl .dlls on windows. - Translate WITH_SSL=system on Mac and Windows to known paths (same as 8.0) This is to simplify the work for developers: no need to download tarballs from pushbuild. Note that pushbuild will continue to use WITH_SSL=<path/to/custom/openssl> In libmysql/CMakeLists.txt separate the LIBS macro into LIBS_TO_MERGE and LIBS_TO_LINK, otherwise the code in MERGE_CONVENIENCE_LIBRARIES may fail in mysterious ways. This is a backport from 8.0 Same change for two CMakeLists.txt in storage/ndb, separate LIBS macro into LIBS_TO_MERGE and LIBS_TO_LINK. Also silence cmake warning CMP0075 Also silence some compiler warnings when building protobuf and ndb. The current patch keeps "bundled" i.e. YaSSL as default. This will be removed by WL#13289. Change-Id: I10198277448745346889b0209e320aa45878a1de
fixes rpl_mts_slave_preserve_commit_order_deadlock_error (log_event.cc) fixes processlist_priv_no_prot (rpl_rli.cc) fixes rpl_row_ignorable_event (rpl_rli.cc) Clean-up for Bug#20712046 which was Approved by: Karthik Kamath <karthik.kamath@oracle.com>
Problem: When mysqlpump is run against server with version less than 5.7.8 pump reports an error. Fix: Fix is to allow pump to run against any server version. RB: 22323
Description: ============ MySQL server ends abruptly when a SELECT query with WHERE clause having a predicate with a numeric value in the format of (scientific) E-notation is executed. ANALYSIS: ========= my_strntoull10_8bit is invoked to convert user provided string to unsigned longlong integer value. The 'exponent' variable is used to store the value of exponent part of the user provided literal. But the data type of 'exponent' variable is of int, whereas the exponent part of the user provided literal is greater than INT_MAX. Hence it results into garbage value into 'exponent' variable and then it results the segmentation fault, when we access array d10 using this garbage value. SOLUTION: ========= Change the data type variables used for storing the value of exponent to longlong. Also check the value of exponent so that value greater than LLONG_MAX is not processed further. This is a partial backport of the patch for Bug#22824408 FIX MORE ERRORS REPORTED BY UBSAN - FOUR and Bug#28505423 UBSAN: SIGNED INTEGER OVERFLOW IN MY_STRNTOULL10RND_8BIT Change-Id: I773d048496b37d921b3504b1ec61b0a31f24ca77
PS-5761: gcc-9 compilation warnings (5.6)
https://jira.percona.com/browse/PS-5988 *** Updated man pages from MySQL Server 5.6.46 source tarball. *** Updated 'scripts/fill_help_tables.sql' from MySQL Server 5.6.46 source tarball.
PS-5997: Add LLVM/clang-9 to Travis CI (5.6)
…olved) https://jira.percona.com/browse/PS-NNNN *** VERSION raised to "5.6.46-87.1". univ.i version raised to "87.1". *** Removed remaining code related to HAVE_YASSL *** Fix `storage/tokudb/CMakeLists.txt` after `compiler_options.cmake` sets `-std=gnu++03` for clang-6 or newer *** Fix `main.plugin-load-add-with-path` after `ha_example.so` is being built by default.
https://jira.percona.com/browse/PS-5989 *** Updated man pages from MySQL Server 5.7.28 source tarball. *** Updated 'scripts/fill_help_tables.sql' from MySQL Server 5.7.28 source tarball.
PS-5988: Merge MySQL 5.6.46
…olved) https://jira.percona.com/browse/PS-5859 *** VERSION raised to "5.7.28-31". univ.i version raised to "31". *** Removed remaining code related to HAVE_YASSL
Tested: |
@inikep in https://ps57.cd.percona.com/job/percona-server-5.7-asan-param/5/ |
@percona-ysorokin I followed our guide "Upstream merges" on Confluence to use |
|
Confluence document updated |
https://ps57.cd.percona.com/job/percona-server-5.7-pipeline/7525/consoleText
Also check if this is upstream |
https://ps57.cd.percona.com/job/percona-server-5.7-pipeline/7525/consoleText
Also check if this is upstream |
https://ps57.cd.percona.com/job/percona-server-5.7-pipeline/7525/consoleText
At lease identify which MTR test case generates this. |
https://ps57.cd.percona.com/job/percona-server-5.7-pipeline/7524/consoleText
|
Updated Valgrind run (--big-test) |
Memory leaks are detected on |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
https://jira.percona.com/browse/PS-5859
Updated man pages from MySQL Server 5.7.28 source tarball.
Updated 'scripts/fill_help_tables.sql' from MySQL Server 5.7.28 source tarball.
VERSION raised to "5.7.28-31".
univ.i version raised to "31".
Removed remaining code related to HAVE_YASSL
Reverted PS-5828 in favor of upstream solution.
PS-5828: incorrect length in read_ok_ex() in sql-common/client.c:805
https://jira.percona.com/browse/PS-5828 (commit e788bc5)
https://bugs.mysql.com/bug.php?id=96433 (commit mysql/mysql-server@c44b18041f)
Kept our solution for PS-5836 and reverted upstream.
PS-5836: clang-8 reports broken source encoding in scripts/sql_commands_help_data.h
https://jira.percona.com/browse/PS-5836 (commit e788bc5)
https://bugs.mysql.com/bug.php?id=96449 (commit mysql/mysql-server@19a667b6ac)
Reverted PS-3410 in favor of upstream solution with added our
innodb.percona_bulk_load_insert
.PS-3410: LP #1570114: Long running ALTER TABLE ADD INDEX causes semaphore wait > 600 assertion
https://jira.percona.com/browse/PS-3410 (commit 7ebaef8)
https://bugs.mysql.com/bug.php?id=82940 (commit mysql/mysql-server@f9fb96c20f)
Fixed gcc 9.2.1 warnings in
storage/innobase/log/log0online.cc
andstorage/innobase/os/os0file.cc