# Functionality Added or Changed
* yaSSL was upgraded to version 2.3.8.
* yaSSL was upgraded to version 2.3.7d. This fixes a connection-failure issue when used with the thread pool plugin.
# Bugs Fixed
* InnoDB: A data corruption occurred on ARM64. GCC builtins did not issue the correct fences when setting or unsetting the lock word.
* InnoDB: In READ COMMITTED mode, a REPLACE operation on a unique secondary index resulted in a constraint violation. Thanks to Alexey Kopytov for the patch.
* InnoDB: The IBUF_BITMAP_FREE bit indicated that there was more free space in the leaf page than was actually available.
* InnoDB: Setting lower_case_table_names=0 on a case-insensitive file system could result in a hang condition when running an INSERT INTO ... SELECT ... FROM tbl_name operation with the wrong tbl_name letter case. An error message is now printed and the server exits when attempting to start the server with --lower_case_table_names=0 on a case-insensitive file system.
* Partitioning: CREATE TABLE statements that used an invalid function in a subpartitioning expression did not always fail gracefully as expected.
* Partitioning: ALTER TABLE when executed from a stored procedure did not always work correctly with tables partitioned by RANGE.
* Certain subqueries as arguments to PROCEDURE ANALYSE() could cause a server exit.
* mysql_ssl_rsa_setup could create an unwanted .rnd file in the data directory. (The file is actually created by openssl, which mysql_ssl_ras_setup invokes. mysql_ssl_rsa_setup now cleans up the file.)
* An assertion could be raised due to incorrect error handling if a SELECT ... FOR UPDATE subquery resulted in deadlock and caused a rollback.
* Servers linked against yaSSL and compiled with GCC 4.8.2 could fail to respond correctly to connection attempts until several seconds after startup.
* For tables with subpartitions, the server could exit due to incorrect error handling during partition pruning if the partition could be identified but not the subpartition.
* DELETE could check privileges for the wrong database when table aliases were used.
* Within a trigger, use of a cursor that accessed OLD or NEW values from a row could cause a server exit.
* MySQL sometimes produced no warning when it was unable to interpret a character in a given character set.
* For MySQL distributions linked against yaSSL, a corrupt client key file could cause clients to exit.
* Execution of certain BINLOG statements while temporary tables were open by HANDLER statements could cause a server exit.
* On Windows, setting query_cache_min_res_unit to too large a value could result in a value of 0 and a subsequent server exit.
* RPM installation scripts if configuration files contained multiple datadir lines. Now the last datadir line is used.
* For wait events, the Performance Schema uses the CYCLE timer by default, but failed to fall back to a different timer if CYCLE was unavailable.
* Updating VARCHAR and TEXT columns in the same UPDATE statement could produce incorrect results. When a VARCHAR column was assigned to a TEXT column and the VARCHAR column was then set to a different value, the TEXT column's result contained the VARCHAR column's new value.
* mysqladmin -u root -p could exit with a segmentation fault.
* mysqlimport --use-threads did not actually use multiple threads.
* View creation from a UNION failed with a duplicate-column error if a SELECT statement in the UNION other than the first used the same column name multiple times.
* Empty XML elements having the form <element/> were not handled correctly by the LOAD XML statement.