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
unknown 9534b8f1ec Bug#19881: slave cores at close_temporary_tables under shutdown
The bug was found in rpl_stm_000001 testing. In essence the following happens

   SLAVE thread receives          what happens
   start
                           init THD and its temp_table (tt0)
   stop
                           storing tt0 pointer to rli->save...
   start
                           restoring temp_tables - new pointer tt1
                           executing regular binlog event DROP temp_table
                           at the end of which tt1-refered list
                           must be empty (slave_open_temp_tables == 0)
                           but the pointer refers to tt0 location!
   shutdown
                           end_slave calls cleaning of temp_tables and crashes.

   The reason of the crash is that tt1 values is not zero upon DROPing the single temp table.
   This is due to alg of removing links from temp_tables list which "adapted" 5.0 code
   but w/o accounting that thd->temporary_tables in slave thread in prone to freeing.
   Upon freeing there is no more original '0' value available to denote empty list.

   temporary_tables must not refer to any "external" location, one of which thd->temporary_tables represents (since belong to THD instance).
   The fix done in sql_base.cc for two functions, look at there for details.


sql/sql_base.cc:
     refining prepend and remove link operation to thd->temporary_tables.
     The list turns to be "flat" double-linked, i.e "prev" accessor refers to an item instead of pointer to one as it was previously with "open_prev".
     On removal an invariant involving slave_open_temp_tables counter is checked.
     When it is zero thd->temporary_tables is set to zero explicitly. This can not be done, for what previous code hoped, because thd object changes when slave stop/start while
     slave's temporary_tables are maintained all the time, until reset/shutdow
2006-06-19 20:14:14 +03:00
BitKeeper pekka:get - push push push 2006-05-02 21:47:53 +02:00
BUILD Fix InnoDB building on MacOSX when autorun.sh is used 2006-05-09 16:24:57 +03:00
client Merge poseidon.ndb.mysql.com:/home/tomas/mysql-5.0 2006-05-16 10:37:40 +02:00
cmd-line-utils Merge neptunus.(none):/home/msvensson/mysql/bug16557/my50-bug16557 2006-02-21 08:57:18 +01:00
config/ac-macros Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1-new 2006-05-15 20:35:17 +02:00
dbug Rename cmakelists.txt -> CMakeLists.txt 2006-05-12 10:51:07 +02:00
Docs Remove old cruft from the tree: mysqltestmanager, mysql_test_run_new, 2006-04-11 18:54:24 -07:00
extra Merge neptunus.(none):/home/msvensson/mysql/mysql-5.1-md 2006-05-12 11:19:37 +02:00
include Merge poseidon.ndb.mysql.com:/home/tomas/mysql-5.0 2006-05-16 10:37:40 +02:00
libmysql Merge neptunus.(none):/home/msvensson/mysql/mysql-5.1-md 2006-05-12 11:19:37 +02:00
libmysql_r fixes for 'make dist' and 'make distcheck' 2006-04-12 14:08:24 +02:00
libmysqld Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.1-new 2006-05-15 20:35:17 +02:00
man - Removed obsolete and outdated man page files from the man 2005-10-27 14:51:58 +02:00
mysql-test Merge mkindahl@bk-internal.mysql.com:/home/bk/mysql-5.1-new-rpl 2006-06-02 16:11:17 +02:00
mysys Rename cmakelists.txt -> CMakeLists.txt 2006-05-12 10:51:07 +02:00
netware Merge 2006-04-04 23:37:44 +02:00
plugin fixes 2006-04-30 15:52:30 -04:00
pstack Makefile.am, configure.in: 2005-09-24 15:51:45 +02:00
regex Rename cmakelists.txt -> CMakeLists.txt 2006-05-12 10:51:07 +02:00
scripts Bug #6061 mysql-log-rotate script - error logging doesn't use new file 2006-05-10 11:33:36 -06:00
server-tools Rename cmakelists.txt -> CMakeLists.txt 2006-05-12 10:51:07 +02:00
sql Bug#19881: slave cores at close_temporary_tables under shutdown 2006-06-19 20:14:14 +03:00
sql-common Bug#18997: DATE_ADD and DATE_SUB perform year2K autoconversion magic on 4-digit year value 2006-05-16 03:32:24 +02:00
storage Applied innodb-5.1-ss594 snapshot. 2006-06-01 10:34:04 +04:00
strings Rename cmakelists.txt -> CMakeLists.txt 2006-05-12 10:51:07 +02:00
support-files Merge jonas@perch:src/mysql-5.0 2006-05-16 11:05:50 +02:00
tests Rename cmakelists.txt -> CMakeLists.txt 2006-05-12 10:51:07 +02:00
unittest Several "unittest" files : Ensure that the configure result is used when compiling them. 2006-05-10 17:29:28 +02:00
VC++Files Merge mysql.com:/home/my/mysql-5.0 2006-05-04 15:58:30 +03:00
vio Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1-new 2006-05-12 13:37:56 +03:00
win Update readme file with instructions for VCExpress and Platform SDK 2006-04-10 18:44:55 +02:00
zlib Rename cmakelists.txt -> CMakeLists.txt 2006-05-12 10:51:07 +02:00
.bzrignore Merge xiphis.org:/home/antony/work2/mysql-5.1 2006-05-01 22:45:31 -07:00
.cvsignore Import changeset 2000-07-31 21:29:14 +02:00
CMakeLists.txt performing a set of bk mv on each CMakeLists.txt file to try and restore the mixed case filenames since this seems to be required with Cmake 2.4 beta 1. 2006-05-11 11:29:08 -05:00
configure.in Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-5.1-new 2006-05-08 23:36:22 +02:00
COPYING - manual.texi will be replaced with a manual written in DocBook/XML. This ChangeSet removes all 2005-04-13 11:51:38 +02:00
Makefile.am Rename cmakelists.txt -> CMakeLists.txt 2006-05-12 10:51:07 +02:00
README README: 2006-04-01 04:13:33 +02:00

This is a release of MySQL, a dual-license SQL database server.
MySQL is brought to you by the MySQL team at MySQL AB.

License information can be found in these files:
- For GPL (free) distributions, see the COPYING file.
- For commercial distributions, see the MySQLEULA.txt file.


For further information about MySQL or additional documentation, see:
- The latest information about MySQL: http://www.mysql.com
- The current MySQL documentation: http://dev.mysql.com/doc

Some manual sections of special interest:

- If you are migrating from an older version of MySQL, please read the
  "Upgrading from..." section first!
- To see what MySQL can do, take a look at the features section.
- For installation instructions, see the Installation chapter.
- For future plans, see the TODO appendix.
- For the new features/bugfix history, see the News appendix.
- For the currently known bugs/misfeatures (known errors) see the problems
  appendix.
- For a list of developers and other contributors, see the Credits
  appendix.

A local copy of the MySQL Reference Manual can be found in the Docs
directory in GNU Info format.  You can also browse the manual online or
download it in any of several formats at the URL given earlier in this
file.

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

IMPORTANT:

Bug or error reports should be sent to http://bugs.mysql.com.