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
Marko Mäkelä b82c602db5 MDEV-12602 InnoDB: Failing assertion: space->n_pending_ops == 0
This fixes a regression caused by MDEV-12428.
When we introduced a variant of fil_space_acquire() that could
increment space->n_pending_ops after space->stop_new_ops was set,
the logic of fil_check_pending_operations() was broken.

fil_space_t::n_pending_ios: A new field to track read or write
access from the buffer pool routines immediately before a block
write or after a block read in the file system.

fil_space_acquire_for_io(), fil_space_release_for_io(): Similar
to fil_space_acquire_silent() and fil_space_release(), but
modify fil_space_t::n_pending_ios instead of fil_space_t::n_pending_ops.

Adjust a number of places accordingly, and remove some redundant
tablespace lookups.

The following parts of this fix differ from the 10.2 version of this fix:

buf_page_get_corrupt(): Add a tablespace parameter.

In 10.2, we already had a two-phase process of freeing fil_space objects
(first, fil_space_detach(), then release fil_system->mutex, and finally
free the fil_space and fil_node objects).

fil_space_free_and_mutex_exit(): Renamed from fil_space_free().
Detach the tablespace from the fil_system cache, release the
fil_system->mutex, and then wait for space->n_pending_ios to reach 0,
to avoid accessing freed data in a concurrent thread.
During the wait, future calls to fil_space_acquire_for_io() will
not find this tablespace, and the count can only be decremented to 0,
at which point it is safe to free the objects.

fil_node_free_part1(), fil_node_free_part2(): Refactored from
fil_node_free().
2017-04-28 14:12:52 +03:00
BUILD Correct FSF address 2017-03-10 18:21:29 +01:00
client MDEV-9566 prepare mysqltest for mariabackup 2017-04-27 19:12:38 +02:00
cmake MDEV-9566 build mariabackup with libarchive for release 2017-04-27 19:12:41 +02:00
dbug MDEV-11752 Unsafe strmov - function definition in include/m_string.h 2017-03-10 18:21:29 +01:00
debian SST script for mariabackup. 2017-04-27 19:12:41 +02:00
Docs Merge branch '10.0' into 10.1 2016-03-21 13:02:53 +01:00
extra compiler warnings 2017-04-27 19:12:43 +02:00
include MDEV-11663 Create services for functionality used by plugins 2017-04-27 19:12:38 +02:00
libmysql small plugin API related fixes 2017-03-10 18:21:28 +01:00
libmysqld remove old API for SHA2 2017-03-10 18:21:27 +01:00
libservices MDEV-11663 Create services for functionality used by plugins 2017-04-27 19:12:38 +02:00
man MDEV-11964 my_safe_process, tokuft_logdump stub man pages 2017-04-19 07:08:15 +04:00
mysql-test MDEV-10594 SSL hostname verification fails for SubjectAltNames 2017-04-27 19:12:44 +02:00
mysys Merge branch '10.0' into 10.1 2017-03-21 19:20:44 +01:00
mysys_ssl MDEV-11663 Create services for functionality used by plugins 2017-04-27 19:12:38 +02:00
pcre Merge 10.0 into 10.1 2017-03-09 08:53:08 +02:00
plugin MDEV-11660 Make encryption plugins "pure" 2017-04-27 19:12:38 +02:00
randgen/conf Group commit for maria engine. 2010-02-12 15:12:28 +02:00
scripts SST script for mariabackup. 2017-04-27 19:12:41 +02:00
sql MDEV-9566 Server code changes in preparation for mariabackup 2017-04-27 19:12:39 +02:00
sql-bench fix sql-bench test-table-elimination view leak. see MDEV-10310 for details 2016-07-12 22:21:49 +02:00
sql-common MDEV-10594 SSL hostname verification fails for SubjectAltNames 2017-04-27 19:12:44 +02:00
storage MDEV-12602 InnoDB: Failing assertion: space->n_pending_ops == 0 2017-04-28 14:12:52 +03:00
strings Correct FSF address 2017-03-10 18:21:29 +01:00
support-files Merge 10.0 into 10.1 2017-03-09 08:53:08 +02:00
tests Merge 10.0 into 10.1 2017-03-09 08:53:08 +02:00
unittest Correct FSF address 2017-03-10 18:21:29 +01:00
vio Merge branch '10.0' into 10.1 2016-08-25 12:40:09 +02:00
win MDEV-9566 MariaBackup packaging 2017-04-27 19:12:40 +02:00
wsrep Correct FSF address 2017-03-10 18:21:29 +01:00
zlib Backport from trunk: 2014-05-07 17:09:14 +02:00
.gitattributes Merge branch 'connect/10.1' into 10.1 2016-06-28 22:12:50 +02:00
.gitignore .gitignore mariabackup 2017-04-27 19:12:43 +02:00
BUILD-CMAKE various documentation updates 2012-06-18 16:57:58 -04:00
CMakeLists.txt Merge branch '10.0' into 10.1 2017-03-21 19:20:44 +01:00
config.h.cmake Merge 10.0 into 10.1 2017-03-09 08:53:08 +02:00
configure.cmake Merge branch '10.0' into 10.1 2016-12-11 09:53:42 +01:00
COPYING Use a new version of "COPYING", the GPL text. 2010-03-04 14:26:27 +01:00
COPYING.thirdparty Correct FSF address 2017-03-10 18:21:29 +01:00
CREDITS Update MariaDB Foundation sponsors 2017-02-28 17:15:36 +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 various documentation updates 2012-06-18 16:57:58 -04:00
README Merge branch '10.0' into 10.1 2016-02-23 21:35:05 +01:00
VERSION bump the VERSION 2017-03-14 09:56:05 -04:00

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.
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 Foundation and the MariaDB Corporation, 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:
http://mariadb.org/
https://mariadb.com/kb/en/
https://mariadb.com/kb/en/mariadb-vs-mysql-features/
https://mariadb.com/kb/en/mariadb-versus-mysql-features/
https://mariadb.com/kb/en/mariadb-versus-mysql-compatibility/

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

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

***************************************************************************

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, COPYING.LESSER,
and COPYING.thirdparty files.

***************************************************************************

IMPORTANT:

Bug and/or error reports regarding MariaDB should be submitted at
http://mariadb.org/jira

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

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

***************************************************************************