Subject: CVS commit: pkgsrc/databases
From: Adam Ciarcinski
Date: 2021-07-25 22:29:14
Message id:

Log Message:
mysql57: updated to 5.7.35

Changes in MySQL 5.7.35 (2021-07-20, General Availability)

Audit Log Notes

Deprecation and Removal Notes

Packaging Notes

Bugs Fixed

Audit Log Notes

For MySQL Enterprise Audit, the new audit_log_format_unix_timestamp system \ 
variable enables inclusion of a time field in each audit record. The field value \ 
is an integer that represents the UNIX timestamp value indicating the date and \ 
time when the audit event was generated. The time field is supported only for \ 
JSON-format log files.

Deprecation and Removal Notes

The TLSv1 and TLSv1.1 connection protocols now are deprecated and support for \ 
them is subject to removal in a future MySQL version. (For background, refer to \ 
the IETF memo Deprecating TLSv1.0 and TLSv1.1.) It is recommended that \ 
connections be made using the more-secure TLSv1.2 and TLSv1.3 protocols. TLSv1.3 \ 
requires that both the MySQL server and the client application be compiled with \ 
OpenSSL 1.1.1 or higher.

On the server side, this deprecation has the following effects:

If the tls_version system variable is assigned a value containing a deprecated \ 
TLS protocol during server startup, the server writes a warning for each \ 
deprecated protocol to the error log.

If a client successfully connects using a deprecated TLS protocol, the server \ 
writes a warning to the error log.

On the client side, the deprecation has no visible effect. Clients do not issue \ 
a warning if configured to permit a deprecated TLS protocol. This includes:

Client programs that support a --tls-version option for specifying TLS protocols \ 
for connections to the MySQL server.

Statements that enable replicas to specify TLS protocols for connections to the \ 
source server. (CHANGE MASTER TO has a MASTER_TLS_VERSION option.)

Packaging Notes

Binary packages that include curl rather than linking to the system curl library \ 
have been upgraded to use curl 7.77.0.

The bundled lz4 library was upgraded to version 1.9.3.

Bugs Fixed

InnoDB: A deadlock between a user thread and purge thread involving a undo log \ 
page and rollback segment page occurred after an undo tablespace truncate \ 
operation was initiated. The deadlock caused a long semaphore wait and an \ 
eventual failure.

InnoDB: An integer underflow issue was addressed in the InnoDB mecached plugin \ 

InnoDB: An index with a key prefix length greater than 767 bytes was permitted \ 
on a table defined with the REDUNDANT row format, exceeding the index key prefix \ 
length limit for that row format. The ALTER TABLE operation that added the index \ 
validated the index key prefix length for the row format defined by the \ 
innodb_default_row_format variable instead of the actual row format of the \ 
table. The fix ensures that index key prefix length is validated for the correct \ 
row format.

InnoDB: An online buffer pool resizing operation freed the previous buffer pool \ 
page hash, conflicting with a concurrent buffer pool lookup that required the \ 
previous page hash.

InnoDB: Numerous system temporary table pages at the tail of the buffer pool \ 
flush list caused a performance degradation. The flush_list_mutex was held while \ 
the flush list scan traversed over system temporary table pages. The flush list \ 
scan now excludes system temporary table pages.

InnoDB: A binary log rotation deadlock occurred on a system using \ 
statement-based replication where there was high number of concurrent update \ 
operations and low innodb_thread_concurrency setting.

Replication: When the system variable \ 
replication_optimize_for_static_plugin_config was set, the plugins for Group \ 
Replication and semi-synchronous replication could not be uninstalled cleanly on \ 
server shutdown.

Replication: A deadlock could occur when START GROUP_REPLICATION and STOP \ 
GROUP_REPLICATION statements were issued at the same time that a view change was \ 
taking place for the group.

Replication: A deadlock could occur if a STOP GROUP_REPLICATION statement was \ 
issued when a replication channel on a group member was attempting to commit a \ 
transaction. The server now rolls back the transaction immediately if it cannot \ 
acquire the relevant lock, rather than waiting for the lock and the commit to \ 
complete and causing the deadlock.

Replication: On a multithreaded replica, the reference to the active event was \ 
sometimes managed incorrectly when retrying a transaction.

Replication: Replica servers now check and validate the transaction ID part of a \ 
GTID before applying and committing the transaction associated with it.

Replication: Replication could stop on a multithreaded replica if a unique \ 
secondary key was omitted from the writeset hashes used to compute transaction \ 
dependencies, leading to errors when executing the transactions on the \ 
multithreaded replica. Write set hashes now always include unique secondary keys \ 
even if they are not included in the read set and write set.

JSON: Passing NULL to a stored procedure expecting a JSON parameter led to an \ 
assertion failure in debug builds.

Replication could fail if a DML statement was executed immediately after an XA \ 
transaction was rejected or forced to rollback due to a deadlock.

The mysql_change_user() C API function did not properly parse the \ 
COM_CHANGE_USER packet, which could result in silent failure to process optional \ 
query attributes that may have been supplied prior to the mysql_change_user() \ 
call. Thanks for René Cannaò for the contribution.

Repreparation of a prepared statement at the beginning of an implicit \ 
transaction could cause an ER_GTID_NEXT_TYPE_UNDEFINED_GROUP error.

An out-of-memory error occurred when loading large amounts of data into tables \ 
with full-text search indexes. Not all of the memory allocated to the full-text \ 
search cache was accounted for when inserting data into the full-text search \ 
auxiliary tables.

A secondary index over a virtual column became corrupted when the index was \ 
built online.

For UPDATE statements, we fix this as follows: If the virtual column value of \ 
the index record is set to NULL, then we generate this value from the cluster \ 
index record.

Boolean system variables could be assigned a negative value.