Also reported as: https://github.com/mariadb-corporation/galera/issues/613. THD::cleanup() cleared THD::wsrep_client_thread. Besides connection close, THD::cleanup() is also called from THD::change_user() when handling COM_CHANGE_USER and COM_RESET_CONNECTION. THD::init() does not set the flag back, and the only place that sets it is thd_prepare_connection(). After either command the session was no longer treated as a wsrep client connection: WSREP_CLIENT() returned false for the rest of the session. As a result wsrep_sync_wait was silently ignored, so causal reads could return stale data. Such connections were also skipped by wsrep_close_client_connections() and wsrep_wait_committing_connections_close(). Connection pools issue COM_RESET_CONNECTION whenever a connection is reused, so in practice most pooled sessions were affected. Fix by moving the reset of wsrep_client_thread from THD::cleanup() to end_connection(), after wsrep_close(). The galera.galera_change_user test is extended to do a causal read on a fresh connection, after COM_CHANGE_USER and after COM_RESET_CONNECTION. Each read must increase the provider's wsrep_causal_reads status counter.
Code status:
MariaDB: The innovative open source database
MariaDB was designed as a drop-in replacement of MySQL(R) with more features, new storage engines, fewer bugs, and better performance.
MariaDB is brought to you by the MariaDB Foundation and the MariaDB Corporation. Please read the CREDITS file for details about the MariaDB Foundation, and who is developing MariaDB.
MariaDB is developed by many of the original developers of MySQL who now work for the MariaDB Corporation, the MariaDB Foundation and by many people in the community.
MySQL, which is the base of MariaDB, is a product and trademark of Oracle Corporation, Inc. For a list of developers and other contributors, see the Credits appendix. You can also run 'SHOW authors' to get a list of active contributors.
A description of the MariaDB project and a manual can be found at:
https://mariadb.com/docs/release-notes
Getting the code, building it and testing it
Refer to the following guide: https://mariadb.org/get-involved/getting-started-for-developers/get-code-build-test/ which outlines how to build the source code correctly and run the MariaDB testing framework, as well as which branch to target for your contributions.
Help
More help is available from the Maria Discuss mailing list https://lists.mariadb.org/postorius/lists/discuss.lists.mariadb.org/ and MariaDB's Zulip instance, https://mariadb.zulipchat.com/
Licensing
MariaDB is specifically available only under version 2 of the GNU General Public License (GPLv2). (I.e. Without the "any later version" clause.) This is inherited from MySQL. Please see the README file in the MySQL distribution for more information.
License information can be found in the COPYING file. Third party license information can be found in the THIRDPARTY file.
Bug Reports
Bug and/or error reports regarding MariaDB should be submitted at: https://jira.mariadb.org
For reporting security vulnerabilities see: https://mariadb.org/about/security-policy/
The code for MariaDB, including all revision history, can be found at: https://github.com/MariaDB/server