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.
  • MariaDB\ 71.8%
  • C++ 16.4%
  • C 10.4%
  • Shell 0.5%
  • Perl 0.4%
  • Other 0.3%
Find a file
unknown c0887e5461 Bug#18544 - LOCK TABLES timeout causes MyISAM table corruption
After a locking error the open table(s) were not fully
cleaned up for reuse. But they were put into the open table
cache even before the lock was tried. The next statement
reused the table(s) with a wrong lock type set up. This
tricked MyISAM into believing that it don't need to update
the table statistics. Hence CHECK TABLE reported a mismatch
of record count and table size.

Fortunately nothing worse has been detected yet. The effect
of the test case was that the insert worked on a read locked
table. (!)

I added a new function that clears the lock type from all
tables that were prepared for a lock. I call this function
when a lock failes.

No test case. One test would add 50 seconds to the
test suite. Another test requires file mode modifications.
I added a test script to the bug report. It contains three
cases for failing locks. All could reproduce a table
corruption. All are fixed by this patch.

This bug was not lock timeout specific.


sql/lock.cc:
  Bug#18544 - LOCK TABLES timeout causes MyISAM table corruption
  Resetting the lock type in the open table(s) lock data
  after a locking error.
2006-04-19 22:54:25 +05:00
bdb
BitKeeper Merge mysql.com:/space/my/mysql-4.0 2005-12-07 06:46:43 +01:00
BUILD Merge 2005-12-18 14:55:05 +01:00
client mysqltest.c: 2006-03-03 13:57:49 -06:00
cmd-line-utils
dbug
Docs Merge mysql.com:/Users/kent/mysql/bk/mysql-4.0 2006-04-03 03:40:54 +02:00
extra Merge mysql.com:/M40/push-4.0 into mysql.com:/M41/merge-4.1 2006-01-13 17:45:01 +01:00
heap
include config-win.h: 2006-03-23 17:25:49 +01:00
innobase Fixed BUG#15653, BUG#16582. 2006-01-30 22:33:02 +03:00
isam
libmysql libmysql.c: 2006-04-06 11:47:46 +05:00
libmysql_r
libmysqld Merge mysql.com:/home/mydev/mysql-4.1 2005-12-27 10:36:19 +01:00
man
merge
myisam BUG#17917 - SELECT from compressed MyISAM table crashes MySQL server 2006-04-13 14:37:03 +05:00
myisammrg
mysql-test Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-4.1 2006-04-14 17:25:58 +04:00
mysys Merge mysql.com:/home/mydev/mysql-4.1 2006-03-04 14:06:52 +01:00
ndb Merge mysql.com:/home/stewart/Documents/MySQL/4.1/bug18843 2006-04-18 17:22:25 +10:00
netware Merge mysql.com:/Users/kent/mysql/bk/mysql-4.0 2006-04-03 03:40:54 +02:00
os2
pstack
regex
scripts Merge mysql.com:/Users/kent/mysql/bk/mysql-4.0 2006-04-03 03:40:54 +02:00
sql Bug#18544 - LOCK TABLES timeout causes MyISAM table corruption 2006-04-19 22:54:25 +05:00
sql-bench
sql-common Fixed BUG #12440: "Incorrect processing of time values containing 2005-12-15 18:48:08 +03:00
SSL
strings conf_to_src.c: 2006-04-06 10:17:01 +05:00
support-files Makefile.am: 2006-04-01 05:44:10 +02:00
tests Cleanup during review of new pushed code 2006-03-30 03:11:37 +03:00
tools
VC++Files vcproj files: 2006-04-01 02:14:54 +02:00
vio
zlib Makefile.am: 2005-12-15 02:11:21 -03:00
.bzrignore BUG#3074: Unversioned symbols in shared library 2006-01-17 18:51:08 +04:00
.cvsignore
acinclude.m4 Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.0 2006-04-11 14:49:33 +03:00
config.guess
config.sub
configure.in Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.0 2006-04-11 14:49:33 +03:00
COPYING
depcomp
install-sh
ltconfig
ltmain.sh
Makefile.am
missing
mkinstalldirs
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.