MariaDB server is a community developed fork of MySQL server. Started by core members of the original MySQL team, MariaDB actively works with outside developers to deliver the most featureful, stable, and sanely licensed open SQL server in the industry.
Find a file
seppo 4111a53079 MDEV-21096 async slave crash with gtid_log_pos table access (#1413)
The original crash happened when async replication IO thread was updating mysql.gtid_slave_pos table. Operations on this table should remain node local, but it appears that protection (THD::wsrep_ignore_table flag) to prevent wsrep replication for this table mas missing for innodb write_row() and update_row().
It was somewhat difficult to reproduce the issue, because mtr seems to create the affected table mysql.gtid_log_pos as of Aria engine type, and Aria engine operations will not be replicated anyhow. It looks, though, that in release installation, mysql.gtid_slave_pos table is of InnoDB engine.
It was possible to trigger somewhat related problem by running test galera.galera_as_slave_gtid with configuration: gtid_pos_auto_engines=InnoDB. However, this test mode, causes earlier crash when replication background thread creates aditional table: mysql.gtid_slave_pos_InnoDB, and this table create triggered wsrep TOI replication, which also failed for assertion. Actually, async replication IO and background threads should not replicate anything to cluster.

This pull request contains new test galera.galera_as_slave_gtid_auto_engine, which basically just runs galera.galera_as_slave_gtid with configuration of gtid_pos_auto_engines=InnoDB.
Test galera.galera_as_slave_gtid is also modified for better code reuse.
Actual fix for MDEV-21096 is in storage/innobase/handler/ha_innodb.cc, where THD::wsrep_ignore_table flag is now honored before wsrep key population.
There is additional fix in sql/service_wsrep.cc where async replication IO and background threads are marked as non-local. This fences these threads out of wsrep replication altogether. Note that this change, actually makes the use of THD::wsrep_ignore-table redundant. We may want to refactor THD::wsrep_ignore_table out in the future, if there is no other use case for it in sight.
2019-11-25 11:19:33 +02:00
BUILD Merge branch '10.3' into 10.4 2019-09-06 11:53:10 +02:00
client MDEV-21062 Buildbot, Windows - sporadically missing lines from mtr's "exec" 2019-11-15 15:39:31 +01:00
cmake Merge 10.3 into 10.4 2019-11-01 15:23:18 +02:00
dbug Merge branch '10.2' into 10.3 2019-10-31 10:58:06 +01:00
debian Merge 10.3 into 10.4 2019-11-14 13:20:57 +02:00
Docs Merge branch '10.3' into 10.4 2019-06-14 22:10:50 +02:00
extra Fix a couple of clang-cl warnings 2019-11-15 15:39:31 +01:00
include MDEV-21062 Buildbot, Windows - sporadically missing lines from mtr's "exec" 2019-11-15 15:39:31 +01:00
libmariadb@980f2dbea6 new CC 3.1 due to typo in it 2019-10-31 06:13:38 +01:00
libmysqld Merge branch '10.3' into 10.4 2019-09-06 11:53:10 +02:00
libservices Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
man MDEV-19847: Update mysqladmin man page 2019-07-01 12:09:40 +04:00
mysql-test MDEV-21096 async slave crash with gtid_log_pos table access (#1413) 2019-11-25 11:19:33 +02:00
mysys MDEV-21062 Buildbot, Windows - sporadically missing lines from mtr's "exec" 2019-11-15 15:39:31 +01:00
mysys_ssl Update WolfSSL, remove older workarounds. 2019-07-28 13:45:15 +02:00
pcre Merge branch '10.2' into 10.3 2019-09-03 13:17:32 +03:00
plugin MDEV-19882 pam v2: auth_pam_tool truncates passwords that are not null-terminated 2019-10-28 19:45:43 +01:00
randgen/conf Group commit for maria engine. 2010-02-12 15:12:28 +02:00
scripts Merge 10.3 into 10.4 2019-11-12 16:55:44 +02:00
sql MDEV-21096 async slave crash with gtid_log_pos table access (#1413) 2019-11-25 11:19:33 +02:00
sql-bench Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
sql-common Merge 10.3 into 10.4 2019-10-10 11:19:25 +03:00
storage MDEV-21096 async slave crash with gtid_log_pos table access (#1413) 2019-11-25 11:19:33 +02:00
strings Merge 10.3 into 10.4 2019-11-01 15:23:18 +02:00
support-files Merge 10.3 into 10.4 2019-11-06 13:44:56 +02:00
tests MDEV-17592 Create MariaDB named commands/symlinks 2019-06-17 12:26:26 +02:00
unittest Merge 10.3 into 10.4 2019-08-14 18:06:51 +03:00
vio Do not compile socket IO code in WolfSSL 2019-07-28 13:45:34 +02:00
win Merge branch '10.3' into 10.4 2019-07-28 13:43:26 +02:00
wsrep-lib@c9513bd2e4 MDEV-17099 Preliminary changes for Galera XA support (#1404) 2019-10-30 10:45:22 +02:00
zlib Merge remote-tracking branch 'connect/10.2' into 10.2 2019-08-30 16:52:43 +02:00
.clang-format MDEV-13631 Make use of clang-format 2019-06-12 22:36:43 +03:00
.gitattributes Merge branch '10.0' into 10.1 2018-05-05 14:01:59 +02:00
.gitignore Fixed that mariadb-# binaries reads their corresponding entry from my.cnf 2019-07-18 15:32:22 +03:00
.gitmodules Fix github urls of submodules 2019-07-02 17:25:36 +04:00
.travis.compiler.sh travis: use galera-4 in 10.4 branch (#1226) 2019-03-14 08:20:32 +02:00
.travis.yml travis: use galera-4 in 10.4 branch (#1226) 2019-03-14 08:20:32 +02:00
appveyor.yml Appveyor configuration and addition of badge 2019-05-09 10:56:15 +02:00
BUILD-CMAKE Minor spelling fixes in code comments, docs and output 2018-01-12 16:49:02 +02:00
CMakeLists.txt always build wsrep libraries static 2019-08-26 23:33:42 +02:00
config.h.cmake MDEV-19696 - Cleanup gcc sync builtins 2019-07-03 12:11:22 +03:00
configure.cmake MDEV-19696 - Cleanup gcc sync builtins 2019-07-03 12:11:22 +03:00
CONTRIBUTING.md Add CONTRIBUTING file and modify README file about live QA regarding new contributors 2018-12-04 23:15:33 +04:00
COPYING Update FSF Address 2019-05-11 21:29:06 +03:00
CREDITS Update contributors 2018-09-10 16:47:44 +04:00
EXCEPTIONS-CLIENT MDEV-5645 MariaDB-5.5.35 - references are made to an "EXCEPTIONS-CLIENT" file but it does not exist 2014-05-31 13:18:56 +02:00
INSTALL-SOURCE Update AskMonty and Atlassian references to MariaDB 2016-03-08 15:24:01 +02:00
INSTALL-WIN-SOURCE Update AskMonty and Atlassian references to MariaDB 2016-03-08 15:24:01 +02:00
KNOWN_BUGS.txt Changed some MySQL names in messages to MariaDB 2018-12-09 20:49:05 +02:00
README.md Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
THIRDPARTY Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
VERSION bump the VERSION 2019-11-08 09:53:06 -05:00

Code status:

  • Travis CI status travis-ci.org (10.4 branch)
  • Appveyor CI status ci.appveyor.com

MariaDB: drop-in replacement for MySQL

MariaDB is 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/kb/en/

https://mariadb.com/kb/en/mariadb-vs-mysql-features/

https://mariadb.com/kb/en/mariadb-versus-mysql-compatibility/

https://mariadb.com/kb/en/library/new-and-old-releases/

https://mariadb.org/

As MariaDB is a full replacement of MySQL, the MySQL manual at http://dev.mysql.com/doc is generally applicable.

Help

More help is available from the Maria Discuss mailing list https://launchpad.net/~maria-discuss and the #maria IRC channel on Freenode.

Live QA for beginner contributors

MariaDB has a dedicated time each week when we answer new contributor questions live on Zulip and IRC. From 8:00 to 10:00 UTC on Mondays, and 10:00 to 12:00 UTC on Thursdays, anyone can ask any questions theyd like, and a live developer will be available to assist.

New contributors can ask questions any time, but we will provide immediate feedback during that interval.

Licensing


NOTE:

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/

Bugs in the MySQL code can also be submitted at: https://bugs.mysql.com

The code for MariaDB, including all revision history, can be found at: https://github.com/MariaDB/server