Path to this page:
Subject: CVS commit: pkgsrc/databases
From: Adam Ciarcinski
Date: 2018-08-16 18:06:09
Message id: 20180816160609.7DCE3FBEC@cvs.NetBSD.org
Log Message:
mysql57: updated to 5.7.23
5.7.23:
Functionality Added or Changed
Previously, for the --ssl-mode=VERIFY_IDENTITY or --ssl-verify-server-cert \
option, the client checked whether the host name that it used for connecting \
matched the Common Name value in the certificate but not the Subject Alternative \
Name value. Now, if the client uses OpenSSL 1.0.2 or higher, the client checks \
whether the host name matches either the Subject Alternative Name value or the \
Common Name value in the server certificate. Thanks to Daniƫl van Eeden for a \
patch on which this change was based.
Bugs Fixed
Important Change; Partitioning: After creating partitioned InnoDB tables with \
very long names, the table_name columns in the corresponding entries in the \
mysql.innodb_index_stats and mysql.innodb_table_stats system tables were \
truncated. To fix this issue, the length of the table_name column in each of \
these tables has been increased from 64 to 199 characters. In both cases, this \
is now the same as the lengths of these columns in MySQL 8.0.
InnoDB: The ngram full-text search parser permitted comma and period characters \
to be tokenized as words, which caused an inconsistency between boolean and \
natural language mode search results. Comma and period characters are no longer \
tokenized.
InnoDB: An I/O error returned by an fsync() operation is now treated as a hard error.
InnoDB: A schema mismatch error reported during an import tablespace operation \
failed to print mismatched table flags in a readable format.
InnoDB: A DDL operation failed to wait for a FULLTEXT index optimization \
operation to finish.
InnoDB: An unnecessary check for read-only transactions was removed from the \
trx_set_rw_mode() function. Thanks to Sandeep Sethia for the patch.
InnoDB: A DDL operation that added a foreign key constraint raised an assertion \
when it accessed a stale memory object that belonged to the parent table.
InnoDB: A DDL operation on a table with a FULLTEXT index during full-text index \
cache synchronization caused an assertion failure.
InnoDB: A failing assertion occurred after initiating a memcached get operation.
InnoDB: A corrupt index ID encountered during a foreign key check raised an \
assertion.
InnoDB: An internal deadlock during a DDL operation resulted in a long semaphore \
wait followed by a server exit.
InnoDB: A DDL operation encountered a serious error due to an invalid lock upgrade.
InnoDB: On a Windows 64-bit system, invalid buffer pool configuration values \
caused the server to exit on startup.
Partitioning: For a partitioned table, partition update time could be incorrect \
after rebuilding the table or restarting the server.
Partitioning: An extraneous row lock was imposed by an update to a partitioned \
InnoDB table.
Replication: The log messages generated when a member fails to join the group \
have been improved, for example when group_replication_group_name on the member \
joining the group does not match the seed's group_replication_group_name this is \
now described in the log message.
Replication: The ER_GRP_RPL_SQL_SERVICE_FAILED_TO_RUN_SQL_QUERY error was being \
logged incorrectly.
Replication: The use of replication filters or binary log filters can cause \
issues when they are applied to tables that are updated with XA transactions. \
Filtering of tables could cause an XA transaction to be empty on a replication \
slave, and empty XA transactions are not supported. Also, with the settings \
master_info_repository=TABLE and relay_log_info_repository=TABLE on a \
replication slave, which became the defaults in MySQL 8.0, the internal state of \
the data engine transaction is changed following a filtered XA transaction, and \
can become inconsistent with the replication transaction context state.
Due to these issues, the use of replication filters or binary log filters in \
combination with XA transactions is not supported. This fix adds the new error \
ER_XA_REPLICATION_FILTERS, which is logged whenever an XA transaction is \
impacted by a replication filter, whether or not the transaction was empty as a \
result. If the transaction is not empty, the replication slave is able to \
continue running, but you should take steps to discontinue the use of \
replication filters with XA transactions in order to avoid potential issues. If \
the transaction is empty, the replication slave stops. In that event, the \
replication slave might be in an undetermined state in which the consistency of \
the replication process might be compromised. In particular, the gtid_executed \
set on a slave of the slave might be inconsistent with that on the master. To \
resolve this situation, isolate the master and stop all replication, then check \
GTID consistency across the replication topology. Undo the XA tran
saction that generated the error message, then restart replication.
Replication: When a transaction larger than the binary log transaction cache \
size (binlog_cache_size) was flushed to a temporary file during processing, and \
the flush failed due to a lack of space in the temporary directory, the flush \
error was not handled correctly. No message was written to the error log, and \
the binary log cache was not cleared after the transaction was rolled back. Now, \
in this situation, the server takes an appropriate action based on the \
binlog_error_action setting (shut down the server or halt logging), and writes a \
message to the error log. When the transaction is rolled back, the server checks \
for flush errors and clears the binary log cache if any occurred.
Replication: Using an IP address or hostname in any Group Replication related \
configuration on macOS was failing.
Replication: When GTIDs are in use for replication, replicated transactions that \
are filtered out on the slave are persisted. If binary logging is enabled on the \
slave, the filtered-out transaction is written to the binary log as a \
Gtid_log_event followed by an empty transaction containing only BEGIN and COMMIT \
statements. If binary logging is disabled, the GTID of the filtered-out \
transaction is written to the mysql.gtid_executed table. This process ensures \
that there are no gaps in the set of executed GTIDs, and that the filtered-out \
transactions are not retrieved again if the slave reconnects to the master. \
Previously, this process was not done for CREATE DATABASE, ALTER DATABASE, and \
DROP DATABASE statements, but it is now carried out for those statements as well \
as for others.
Replication: On a multithreaded slave, when a STOP SLAVE statement is executed \
on the slave, followed by a START SLAVE statement, the error log can report a \
different position in the binary log for the slave SQL thread when exiting, \
compared to the position reported for the slave SQL thread at the subsequent \
initialization.
For a multithreaded slave, the position reported for the SQL thread on exit is a \
low water mark, up to which the replication stream is consistent and has no \
gaps. Transactions appearing before the position are guaranteed to have \
committed, but transactions after the position may have committed or not. \
However, this low water mark was being reported before the process to stop the \
worker threads was actually carried out, and the low water mark was subsequently \
updated by a checkpoint routine during that process. The timing of the log \
message has now been changed so that the final low water mark is reported as the \
position for the SQL thread on exit.
Replication: In certain situations, such as during distributed recovery \
procedure, the certification info garbage collection was purging more data than \
it should, resulting in conflicts not being detected. The garbage collection \
procedure has been improved to take this case in consideration.
Replication: When the group_replication_applier channel's applier thread \
encountered an error, the master_log_name and end_log_pos in the error message \
were incorrect. In Group Replication, the events of a transaction are replicated \
before they are written to the binary log of the member where the transaction \
originated. The result is that the final master_log_name and the end_log_pos of \
those events are unknown at the time they are applied on the replica by \
group_replication_applier channel's applier thread. To avoid confusion, now any \
such error messages encountered by a group_replication_applier channel do not \
contain the binary log name and the binary log position.
A heap overflow vulnerability in the MySQL client library was fixed.
For generated columns that used the INTERVAL() function, incorrect behavior \
could occur.
The exec_in_background command for mysqltest is now available in MySQL 5.7.
An unencrypted connection could result from a client connection attempt \
specifying that an encrypted connection was required, if the server was not \
configured to support SSL.
A BETWEEN clause comparing negative values could lead to erroneous results.
Audit log filter rules did not permit class names to be specified as an array of \
strings.
Files: