pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/databases mysql57: updated to 5.7.33



details:   https://anonhg.NetBSD.org/pkgsrc/rev/38051b443e3b
branches:  trunk
changeset: 446139:38051b443e3b
user:      adam <adam%pkgsrc.org@localhost>
date:      Thu Feb 04 20:26:10 2021 +0000

description:
mysql57: updated to 5.7.33

Changes in MySQL 5.7.33

Optimizer Notes

MySQL attempts to use an ordered index for any ORDER BY or GROUP BY query that has a LIMIT clause, overriding any other choices made by the optimizer, whenever it determines that this would result in 
faster execution. Because the algorithm for making this determination makes certain assumptions about data distribution and other conditions, it may not always be completely correct, and it is 
possible in some cases that choosing a different optimization for such queries can provide better performance. To handle such occurrences, it is now possible to disable this optimization by setting 
the optimizer_switch system variable's prefer_ordering_index flag to off.

For more information about this flag and examples of its use, see Switchable Optimizations, and LIMIT Query Optimization.

Our thanks to Jeremy Cole for the contribution.
Security Notes

The linked OpenSSL library for MySQL Server has been updated to version 1.1.1i. Issues fixed in the new OpenSSL version are described at https://www.openssl.org/news/cl111.txt and 
https://www.openssl.org/news/vulnerabilities.html.

Functionality Added or Changed

When invoked with the --all-databases option, mysqldump now dumps the mysql database first, so that when the dump file is reloaded, any accounts named in the DEFINER clause of other objects will 
already have been created.

Bugs Fixed

InnoDB: The full-text search synchronization thread attempted to read a previously-freed word from the index cache.

InnoDB: Calls to numa_all_nodes_ptr were replaced by the numa_get_mems_allowed() function. Thanks to Daniel Black for the contribution.

Replication: When the system variable transaction_write_set_extraction=XXHASH64 is set, which is the default in MySQL 8.0 and a requirement for Group Replication, the collection of writes for a 
transaction previously had no upper size limit. Now, for standard source to replica replication, the numeric limit on write sets specified by binlog_transaction_dependency_history_size is applied, 
after which the write set information is discarded but the transaction continues to execute. Because the write set information is then unavailable for the dependency calculation, the transaction is 
marked as non-concurrent, and is processed sequentially on the replica. For Group Replication, the process of extracting the writes from a transaction is required for conflict detection and 
certification on all group members, so the write set information cannot be discarded if the transaction is to complete. The byte limit set by group_replication_transaction_size_limit is applied 
instead of the numeric limit, and if the limit is exceeded, the transaction fails to execute.

Replication: As the number of replicas replicating from a semisynchronous source server increased, locking contention could result in a performance degradation. The locking mechanisms used by the 
plugins have been changed to use shared locks where possible, avoid unnecessary lock acquisitions, and limit callbacks. The new behaviors can be implemented by enabling the following system variables:

replication_sender_observe_commit_only=1 limits callbacks.

replication_optimize_for_static_plugin_config=1 adds shared locks and avoids unnecessary lock acquisitions. This system variable must be disabled if you want to uninstall the plugin.

Both system variables can be enabled before or after installing the semisynchronous replication plugin, and can be enabled while replication is running. Semisynchronous replication source servers can 
also get performance benefits from enabling these system variables, because they use the same locking mechanisms as the replicas.

Replication: On a multi-threaded replica where the commit order is preserved, worker threads must wait for all transactions that occur earlier in the relay log to commit before committing their own 
transactions. If a deadlock occurs because a thread waiting to commit a transaction later in the commit order has locked rows needed by a transaction earlier in the commit order, a deadlock detection 
algorithm signals the waiting thread to roll back its transaction. Previously, if transaction retries were not available, the worker thread that rolled back its transaction would exit immediately 
without signalling other worker threads in the commit order, which could stall replication. A worker thread in this situation now waits for its turn to call the rollback function, which means it 
signals the other threads correctly.

Replication: GTIDs are only available on a server instance up to the number of non-negative values for a signed 64-bit integer (2 to the power of 63 minus 1). If you set the value of gtid_purged to a 
number that approaches this limit, subsequent commits can cause the server to run out of GTIDs and take the action specified by binlog_error_action. From MySQL 8.0.23, a warning message is issued 
when the server instance is approaching the limit.

Microsoft Windows: On Windows, running the MySQL server as a service caused shared-memory connections to fail.

The server did not handle all cases of the WHERE_CONDITION optimization correctly.

For the engines which support primary key extension, when the total key length exceeded MAX_KEY_LENGTH or the number of key parts exceeded MAX_REF_PARTS, key parts of primary keys which did not fit 
within these limits were not added to the secondary key, but key parts of primary keys were unconditionally marked as part of secondary keys.

This led to a situation in which the secondary key was treated as a covering index, which meant sometimes the wrong access method was chosen.

This is fixed by modifying the way in which key parts of primary keys are added to secondary keys so that those which do not fit within which do not fit within the limits mentioned previously 
mentioned are cleared.

Privileges for some INFORMATION_SCHEMA tables were checked incorrectly.

In certain cases, the server did not handle multiply-nested subqueries correctly.

Certain accounts could cause server startup failure if the skip_name_resolve system variable was enabled.

Client programs could unexpectedly exit if communication packets contained bad data.

A buffer overflow in the client library was fixed.

mysql_config_editor incorrectly treated # in password values as a comment character.

diffstat:

 databases/mysql57-client/Makefile                                      |   3 +-
 databases/mysql57-client/Makefile.common                               |   6 +-
 databases/mysql57-client/PLIST                                         |   4 +-
 databases/mysql57-client/distinfo                                      |  11 ++-
 databases/mysql57-client/patches/patch-sql_locks_shared__spin__lock.cc |  19 +++++++
 databases/mysql57-server/Makefile                                      |   3 +-
 databases/mysql57-server/PLIST                                         |  26 +++++++++-
 7 files changed, 57 insertions(+), 15 deletions(-)

diffs (212 lines):

diff -r db76d3179a5d -r 38051b443e3b databases/mysql57-client/Makefile
--- a/databases/mysql57-client/Makefile Thu Feb 04 20:15:31 2021 +0000
+++ b/databases/mysql57-client/Makefile Thu Feb 04 20:26:10 2021 +0000
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.35 2021/01/01 08:24:38 ryoon Exp $
+# $NetBSD: Makefile,v 1.36 2021/02/04 20:26:10 adam Exp $
 
 PKGNAME=       ${DISTNAME:S/-/-client-/}
-PKGREVISION=   1
 COMMENT=       MySQL 5, a free SQL database (client)
 
 CONFLICTS=     mysql3-client-[0-9]*
diff -r db76d3179a5d -r 38051b443e3b databases/mysql57-client/Makefile.common
--- a/databases/mysql57-client/Makefile.common  Thu Feb 04 20:15:31 2021 +0000
+++ b/databases/mysql57-client/Makefile.common  Thu Feb 04 20:26:10 2021 +0000
@@ -1,9 +1,9 @@
-# $NetBSD: Makefile.common,v 1.30 2020/12/31 20:04:11 nia Exp $
+# $NetBSD: Makefile.common,v 1.31 2021/02/04 20:26:10 adam Exp $
 #
 # used by databases/mysql57-client/Makefile
 # used by databases/mysql57-server/Makefile
 
-DISTNAME=      mysql-5.7.32
+DISTNAME=      mysql-5.7.33
 CATEGORIES=    databases
 MASTER_SITES=  ${MASTER_SITE_MYSQL:=MySQL-5.7/}
 
@@ -15,7 +15,7 @@
 PATCHDIR?=     ${.CURDIR}/../../databases/mysql57-client/patches
 
 USE_CMAKE=             yes
-USE_LANGUAGES=         c c++
+USE_LANGUAGES=         c c++14
 USE_TOOLS+=            bash bison gmake perl:run
 USE_GCC_RUNTIME=       yes
 USE_BUILTIN.libevent=  no
diff -r db76d3179a5d -r 38051b443e3b databases/mysql57-client/PLIST
--- a/databases/mysql57-client/PLIST    Thu Feb 04 20:15:31 2021 +0000
+++ b/databases/mysql57-client/PLIST    Thu Feb 04 20:26:10 2021 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.19 2020/10/21 13:34:50 adam Exp $
+@comment $NetBSD: PLIST,v 1.20 2021/02/04 20:26:10 adam Exp $
 bin/mysql
 bin/mysql_client_test
 bin/mysql_config
@@ -122,7 +122,7 @@
 lib/libmysqlclient.a
 lib/libmysqlclient.so
 lib/libmysqlclient.so.20
-lib/libmysqlclient.so.20.3.19
+lib/libmysqlclient.so.20.3.20
 lib/pkgconfig/mysqlclient.pc
 man/man1/comp_err.1
 man/man1/innochecksum.1
diff -r db76d3179a5d -r 38051b443e3b databases/mysql57-client/distinfo
--- a/databases/mysql57-client/distinfo Thu Feb 04 20:15:31 2021 +0000
+++ b/databases/mysql57-client/distinfo Thu Feb 04 20:26:10 2021 +0000
@@ -1,9 +1,9 @@
-$NetBSD: distinfo,v 1.39 2020/10/21 13:34:50 adam Exp $
+$NetBSD: distinfo,v 1.40 2021/02/04 20:26:10 adam Exp $
 
-SHA1 (mysql-5.7.32.tar.gz) = ef8e61325901edf011c29fd0dca35c4c8f07ca74
-RMD160 (mysql-5.7.32.tar.gz) = 848533114b445f91a3fb2abf7d840f81b38c9679
-SHA512 (mysql-5.7.32.tar.gz) = 01336bd2e81514223bdb23220f9bda02432951bfc3e9f3ae0688d4c371f5aade608d6cb57df06c60c54a3810da43007d671b8b423805d7ec0992388fc605b411
-Size (mysql-5.7.32.tar.gz) = 56154080 bytes
+SHA1 (mysql-5.7.33.tar.gz) = 08d288b77f5450e920272738232c7c20be891772
+RMD160 (mysql-5.7.33.tar.gz) = b041f96c892083f03228eb2e4a24f05cce452f3f
+SHA512 (mysql-5.7.33.tar.gz) = 62349fdf2c2d9078ead383f150ccf52d719df9bb475e90910882595194f8038eb1b0333b2f5f153972a0b7309eab369a9f7d5178f2d71a12816e634df2be059b
+Size (mysql-5.7.33.tar.gz) = 56179381 bytes
 SHA1 (patch-CMakeLists.txt) = 1409a98380c999c6973fa3106dc35684b7c3b3cc
 SHA1 (patch-client_CMakeLists.txt) = 4af2fb3f3d05a66a9ee89f3653e2fcccadfa5f79
 SHA1 (patch-client_completion_hash.cc) = b86ec80beac624b2aa21c7587e351ff126400ecb
@@ -38,6 +38,7 @@
 SHA1 (patch-sql_CMakeLists.txt) = 697add15adb66bf55cf561a6e43e0bf514d1e068
 SHA1 (patch-sql_conn__handler_socket__connection.cc) = 12cf83e061edbe59eb073037b1036903b7ba4b00
 SHA1 (patch-sql_item__geofunc__internal.cc) = 752862c3a30231e694e508ced1a215a610649fc6
+SHA1 (patch-sql_locks_shared__spin__lock.cc) = 0fcdc9db76bb8a25c083e124334245f53cee871d
 SHA1 (patch-sql_log_event.h) = 311dc7fb04ea832df229dc2a28bcfbf263670ebf
 SHA1 (patch-sql_sys__vars.cc) = 202b8756c20549393d0e2a14952e1f060037b88a
 SHA1 (patch-storage_archive_CMakeLists.txt) = 4cf5ed97a226a3844e184c46958b5202eefb9dd5
diff -r db76d3179a5d -r 38051b443e3b databases/mysql57-client/patches/patch-sql_locks_shared__spin__lock.cc
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/databases/mysql57-client/patches/patch-sql_locks_shared__spin__lock.cc    Thu Feb 04 20:26:10 2021 +0000
@@ -0,0 +1,19 @@
+$NetBSD: patch-sql_locks_shared__spin__lock.cc,v 1.1 2021/02/04 20:26:10 adam Exp $
+
+Fix buidling on Darwin.
+https://bugs.mysql.com/bug.php?id=102288
+
+--- sql/locks/shared_spin_lock.cc.orig 2021-02-04 09:40:46.000000000 +0000
++++ sql/locks/shared_spin_lock.cc
+@@ -239,7 +239,11 @@ lock::Shared_spin_lock &lock::Shared_spi
+   {
+     this->spin_exclusive_lock();
+   }
++#if defined(__APPLE__) || defined(__NetBSD__)
++  my_atomic_store64(&this->m_exclusive_owner, reinterpret_cast<int64>(self));
++#else
+   my_atomic_store64(&this->m_exclusive_owner, self);
++#endif
+   return (*this);
+ }
+ 
diff -r db76d3179a5d -r 38051b443e3b databases/mysql57-server/Makefile
--- a/databases/mysql57-server/Makefile Thu Feb 04 20:15:31 2021 +0000
+++ b/databases/mysql57-server/Makefile Thu Feb 04 20:26:10 2021 +0000
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.36 2021/01/01 08:24:39 ryoon Exp $
+# $NetBSD: Makefile,v 1.37 2021/02/04 20:26:10 adam Exp $
 
 PKGNAME=       ${DISTNAME:S/-/-server-/}
-PKGREVISION=   1
 COMMENT=       MySQL 5, a free SQL database (server)
 
 CONFLICTS=     mysql3-server-[0-9]*
diff -r db76d3179a5d -r 38051b443e3b databases/mysql57-server/PLIST
--- a/databases/mysql57-server/PLIST    Thu Feb 04 20:15:31 2021 +0000
+++ b/databases/mysql57-server/PLIST    Thu Feb 04 20:26:10 2021 +0000
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.19 2020/10/21 13:34:50 adam Exp $
+@comment $NetBSD: PLIST,v 1.20 2021/02/04 20:26:10 adam Exp $
 bin/innochecksum
 bin/lz4_decompress
 bin/my_print_defaults
@@ -1598,6 +1598,7 @@
 share/mysql/test/r/mysqldump-no-binlog.result
 share/mysql/test/r/mysqldump.result
 share/mysql/test/r/mysqldump_bug29998457.result
+share/mysql/test/r/mysqldump_bugs.result
 share/mysql/test/r/mysqldump_restore.result
 share/mysql/test/r/mysqldumpslow.result
 share/mysql/test/r/mysqlimport.result
@@ -9890,6 +9891,8 @@
 share/mysql/test/suite/rpl/r/rpl_mts_slave_preserve_commit_order_deadlock.result
 share/mysql/test/suite/rpl/r/rpl_mts_slave_preserve_commit_order_deadlock_error.result
 share/mysql/test/suite/rpl/r/rpl_mts_slave_preserve_commit_order_error.result
+share/mysql/test/suite/rpl/r/rpl_mts_spco_deadlock_hang_on_non_temp_error.result
+share/mysql/test/suite/rpl/r/rpl_mts_spco_deadlock_slave_trans_retries_hang.result
 share/mysql/test/suite/rpl/r/rpl_mts_stop_slave.result
 share/mysql/test/suite/rpl/r/rpl_mts_stop_slave_report_pos.result
 share/mysql/test/suite/rpl/r/rpl_mts_submode_switch.result
@@ -10118,8 +10121,11 @@
 share/mysql/test/suite/rpl/r/rpl_semi_sync_group_commit_deadlock_ssl.result
 share/mysql/test/suite/rpl/r/rpl_semi_sync_install_at_start_server.result
 share/mysql/test/suite/rpl/r/rpl_semi_sync_non_group_commit_deadlock.result
+share/mysql/test/suite/rpl/r/rpl_semi_sync_optimize_for_static_plugin_config.result
+share/mysql/test/suite/rpl/r/rpl_semi_sync_sender_observe_commit_only.result
 share/mysql/test/suite/rpl/r/rpl_semi_sync_shutdown_hang.result
 share/mysql/test/suite/rpl/r/rpl_semi_sync_slave_compressed_protocol.result
+share/mysql/test/suite/rpl/r/rpl_semi_sync_turn_on_off_optimize_for_static_plugin_config.result
 share/mysql/test/suite/rpl/r/rpl_semi_sync_uninstall_plugin.result
 share/mysql/test/suite/rpl/r/rpl_semi_sync_wait_slave_count.result
 share/mysql/test/suite/rpl/r/rpl_sequential.result
@@ -10702,6 +10708,8 @@
 share/mysql/test/suite/rpl/t/rpl_mts_slave_preserve_commit_order_deadlock_error.test
 share/mysql/test/suite/rpl/t/rpl_mts_slave_preserve_commit_order_error-slave.opt
 share/mysql/test/suite/rpl/t/rpl_mts_slave_preserve_commit_order_error.test
+share/mysql/test/suite/rpl/t/rpl_mts_spco_deadlock_hang_on_non_temp_error.test
+share/mysql/test/suite/rpl/t/rpl_mts_spco_deadlock_slave_trans_retries_hang.test
 share/mysql/test/suite/rpl/t/rpl_mts_stop_slave-slave.opt
 share/mysql/test/suite/rpl/t/rpl_mts_stop_slave.test
 share/mysql/test/suite/rpl/t/rpl_mts_stop_slave_report_pos-slave.opt
@@ -11069,12 +11077,22 @@
 share/mysql/test/suite/rpl/t/rpl_semi_sync_non_group_commit_deadlock-master.opt
 share/mysql/test/suite/rpl/t/rpl_semi_sync_non_group_commit_deadlock-slave.opt
 share/mysql/test/suite/rpl/t/rpl_semi_sync_non_group_commit_deadlock.test
+share/mysql/test/suite/rpl/t/rpl_semi_sync_optimize_for_static_plugin_config-master.opt
+share/mysql/test/suite/rpl/t/rpl_semi_sync_optimize_for_static_plugin_config-slave.opt
+share/mysql/test/suite/rpl/t/rpl_semi_sync_optimize_for_static_plugin_config.test
+share/mysql/test/suite/rpl/t/rpl_semi_sync_sender_observe_commit_only-master.opt
+share/mysql/test/suite/rpl/t/rpl_semi_sync_sender_observe_commit_only-slave.opt
+share/mysql/test/suite/rpl/t/rpl_semi_sync_sender_observe_commit_only.test
 share/mysql/test/suite/rpl/t/rpl_semi_sync_shutdown_hang-master.opt
 share/mysql/test/suite/rpl/t/rpl_semi_sync_shutdown_hang-slave.opt
 share/mysql/test/suite/rpl/t/rpl_semi_sync_shutdown_hang.test
 share/mysql/test/suite/rpl/t/rpl_semi_sync_slave_compressed_protocol-master.opt
 share/mysql/test/suite/rpl/t/rpl_semi_sync_slave_compressed_protocol-slave.opt
 share/mysql/test/suite/rpl/t/rpl_semi_sync_slave_compressed_protocol.test
+share/mysql/test/suite/rpl/t/rpl_semi_sync_turn_on_off_optimize_for_static_plugin_config-master.opt
+share/mysql/test/suite/rpl/t/rpl_semi_sync_turn_on_off_optimize_for_static_plugin_config-slave.opt
+share/mysql/test/suite/rpl/t/rpl_semi_sync_turn_on_off_optimize_for_static_plugin_config.cnf
+share/mysql/test/suite/rpl/t/rpl_semi_sync_turn_on_off_optimize_for_static_plugin_config.test
 share/mysql/test/suite/rpl/t/rpl_semi_sync_uninstall_plugin-master.opt
 share/mysql/test/suite/rpl/t/rpl_semi_sync_uninstall_plugin-slave.opt
 share/mysql/test/suite/rpl/t/rpl_semi_sync_uninstall_plugin.test
@@ -11923,6 +11941,8 @@
 share/mysql/test/suite/sys_vars/r/relay_log_purge_basic.result
 share/mysql/test/suite/sys_vars/r/relay_log_recovery_basic.result
 share/mysql/test/suite/sys_vars/r/relay_log_space_limit_basic.result
+share/mysql/test/suite/sys_vars/r/replication_optimize_for_static_plugin_config.result
+share/mysql/test/suite/sys_vars/r/replication_sender_observe_commit_only.result
 share/mysql/test/suite/sys_vars/r/report_host_basic.result
 share/mysql/test/suite/sys_vars/r/report_password_basic.result
 share/mysql/test/suite/sys_vars/r/report_port_basic.result
@@ -12685,6 +12705,9 @@
 share/mysql/test/suite/sys_vars/t/relay_log_purge_basic.test
 share/mysql/test/suite/sys_vars/t/relay_log_recovery_basic.test
 share/mysql/test/suite/sys_vars/t/relay_log_space_limit_basic.test
+share/mysql/test/suite/sys_vars/t/replication_optimize_for_static_plugin_config-master.opt
+share/mysql/test/suite/sys_vars/t/replication_optimize_for_static_plugin_config.test
+share/mysql/test/suite/sys_vars/t/replication_sender_observe_commit_only.test
 share/mysql/test/suite/sys_vars/t/report_host_basic.test
 share/mysql/test/suite/sys_vars/t/report_password_basic.test
 share/mysql/test/suite/sys_vars/t/report_port_basic.test
@@ -14138,6 +14161,7 @@
 share/mysql/test/t/mysqldump-no-binlog.test
 share/mysql/test/t/mysqldump.test
 share/mysql/test/t/mysqldump_bug29998457.test
+share/mysql/test/t/mysqldump_bugs.test
 share/mysql/test/t/mysqldump_restore.test
 share/mysql/test/t/mysqldumpslow.test
 share/mysql/test/t/mysqlimport.test



Home | Main Index | Thread Index | Old Index