Bugs Fixed:
- Replication: When GTIDs are enabled on a replication master and slave, and the slave connects to the master with the MASTER_AUTO_POSITION=1 option set, the master must send the slave all the transactions that the slave has not already received, committed, or both. If any of the transactions that should be sent by the master have been already purged from the master's binary log, the master sends the error ER_MASTER_HAS_PURGED_REQUIRED_GTIDS (1789) to the slave, and replication does not start.
The message provided for the error ER_MASTER_HAS_PURGED_REQUIRED_GTIDS has been changed to provide advice on the correct action in this situation, which is for the slave to replicate the missing transactions from another source, or for the slave to be replaced by a new slave created from a more recent backup. The message advises that the master's binary log expiration period can be revised to avoid the situation in future. In addition, the master now identifies the GTIDs of the purged transactions and supplies them in its error log in the warning message ER_FOUND_MISSING_GTIDS (11809), so that you do not need to calculate the missing GTIDs manually.
- With multiple sessions executing concurrent INSERT ... ON DUPLICATE KEY UPDATE statements into a table with an AUTO_INCREMENT column but not specifying the AUTO_INCREMENT value, inserts could fail with a unique index violation.
- A SELECT using a WHERE condition of the form A AND (B OR C [OR ...]) resulting in an impossible range led to an unplanned exit of the server.
- An incomplete connection packet could cause clients not to properly initialize the authentication plugin name.
Approved by: mmokhi (maintainer, implicit)
MFH: 2020Q1
Security: a6cf65ad-37d2-11ea-a1c7-b499baebfeaf
Sponsored by: Netzkommune GmbH
Bugs Fixed:
- InnoDB: os_file_get_parent_dir warnings were encountered when compiling MySQL with GCC 9.2.0.
- InnoDB: An internal function (btr_push_update_extern_fields()) used to fetch newly added externally stored fields and update them during a pessimistic update or when going back to a previous version of a record was no longer required. Newly added externally stored fields are updated by a different function. Also, the method used to determine the number of externally stored fields was corrected.
- InnoDB: A comparison function found two records to be equal when attempting to merge non-leaf pages of a spatial index. The function was unable to handle this unexpected condition, which resulted in a long semaphore wait and an eventual assertion failure.
- Replication: A memory leak could occur when a failed replication group member tried to rejoin a minority group and was disallowed from doing so.
- Docker packages were missing the LDAP authentication plugins.
More Infos: https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-29.html
Approved by: mmokhi (maintainer, implicit)
MFH: 2020Q1
Security: a6cf65ad-37d2-11ea-a1c7-b499baebfeaf
Sponsored by: Netzkommune GmbH
- New FPROFILE_GENERATE and FPROFILE_USE CMake options are available for experimenting with profile guided optimization (PGO) with GCC. See the cmake/fprofile.cmake in a MySQL source distribution for information about using them. These options have been tested with GCC 8 and 9, and with Clang.
- Enabling FPROFILE_USE also enables WITH_LTO (link time optimization).
- Innodb_system_rows_read, Innodb_system_rows_inserted, Innodb_system_rows_deleted status variables were added for counting row operations on InnoDB tables that belong to system-created schemas. The new status variables are similar to the existing Innodb_rows_read, Innodb_rows_inserted, Innodb_rows_deleted status variables, which count operations on InnoDB tables that belong to both user-created and system-created schemas.
- The new status variables are useful in replication environments where relay_log_info_repository and master_info_repository variables are set to TABLE, resulting in higher row operation counts on slaves due to operations performed on the slave_master_info, slave_replay_log_info, and slave_worker_info tables, which belong to the system-created mysql schema. For a valid comparison of master and slave row operation counts, operations on tables in system-created schemas can now be excluded using the count data provided by the new status variables.
More infos: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-19.html
Submitted by: fluffy
Approved by: mmokhi (maintainer, implicit)
Sponsored by: Netzkommune GmbH
Add JAVA_VERSION="7 8" to db6
Add REWARNFILE=/dev/null to db6 and db5
Reported by: Tommy P <tommyhp2@gmail.com>
PR: 243278
MFH: 2020Q1 (blanket, fix broken build)
aiosqlite allows interaction with SQLite databases on the main AsyncIO event
loop without blocking execution of other coroutines while waiting for queries
or data fetches. It does this by using a single, shared thread per connection.
This thread executes all actions within a shared request queue to prevent
overlapping actions.
Connection objects are proxies to the real connections, contain the shared
execution thread, and provide context managers to handle automatically closing
connections. Cursors are similarly proxies to the real cursors, and provide
async iterators to query results.
WWW: https://pypi.python.org/pypi/aiosqlite
* The cp1252 encoding is used when charset is "latin1". (#390)
* The auth_plugin option is added. (#389)
* charset option is passed to mysql_options(mysql, MYSQL_SET_CHARSET_NAME, charset) before mysql_real_connect is called. This avoid extra SET NAMES <charset> query when creating connection.
* --static build supports libmariadbclient.a
* Try mariadb_config when mysql_config is not found
* Fixed warning happend in Python 3.8 (#359)
* Fixed SEGV MySQLdb.escape_string("1") when libmariadb is used and no connection is created. (#367)
* Fixed many circular references are created in Cursor.executemany(). (#375)
PR: 243076
Submitted by: fluffy
Approved by: maintainer timeout (>1w)
switch patch-files to mysql80-server to make it easy for maintain.
Bugfix:
- CMake now enables use of fastcov if it is available. fastcov is faster than lcov or gcov. This requires GCC and gcov versions of 9 or higher.
- The DISABLE_SHARED CMake option was unused and has been removed.
- The CMake code to find Protobuf executables now works on platforms that split these into multiple packages.
- The new ADD_GDB_INDEX CMake option determines whether to enable generation of a .gdb_index section in binaries, which makes loading them in a debugger faster. The option is disabled by default. It has no effect if a linker other than lld or GNU gold is used.
- For the INSTALL_LAYOUT CMake option, the SLES and WIN option values were not used and have been removed.
- The max_prepared_stmt_count system variable maximum value has been increased from 1 million (1,048,576) to 4 million (4,194,304). The default value remains unchanged at 16,382.
- MySQL 8.0 no longer supports building using wolfSSL. All MySQL builds now use OpenSSL.
- The RE2 library is no longer used by MySQL. The library is no longer bundled with source distributions and the WITH_RE2 CMake option is obsolete.
More Infos: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-18.html
A big thanks to @fluffy for his help with this update
MFH: 2020Q1
Security: fc91f2ef-fd7b-11e9-a1c7-b499baebfeaf
Sponsored by: Netzkommune GmbH