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
Davi Arnaut 72e978828e Bug#43230: SELECT ... FOR UPDATE can hang with FLUSH TABLES WITH READ LOCK indefinitely
The problem is that a SELECT .. FOR UPDATE statement might open
a table and later wait for a impeding global read lock without
noticing whether it is holding a table that is being waited upon
the the flush phase of the process that took the global read
lock.

The same problem also affected the following statements:

LOCK TABLES .. WRITE
UPDATE .. SET (update and multi-table update)
TRUNCATE TABLE ..
LOAD DATA ..

The solution is to make the above statements wait for a impending
global read lock before opening the tables. If there is no
impending global read lock, the statement raises a temporary
protection against global read locks and progresses smoothly
towards completion.

Important notice: the patch does not try to address all possible
cases, only those which are common and can be fixed unintrusively
enough for 5.0.

mysql-test/r/lock_multi.result:
  Add test case result for Bug#43230
mysql-test/t/lock_multi.test:
  Add test case for Bug#43230
sql/sql_lex.cc:
  Initialize flag.
sql/sql_lex.h:
  Add a flag to the lexer.
sql/sql_parse.cc:
  Wait for the global read lock is a write lock is going to be
  taken. The wait is done before opening tables.
sql/sql_yacc.yy:
  Protect against the GRL if its a SELECT .. FOR UPDATE or LOCK TABLES
  .. WRITE statement.
2009-04-03 16:11:54 -03:00
.bzr-mysql tree name changed 2009-03-27 16:29:56 +02:00
bdb Tool fix, needed for "compile-dist" to succeed on Solaris: 2009-01-13 14:52:22 +01:00
BitKeeper
BUILD Backport of a 5.0.74 fix into 5.0.72sp1: 2009-01-12 16:46:19 +01:00
client remove compiler warnings 2009-03-23 16:51:39 +04:00
cmd-line-utils cmd-line-utils/libedit/readline/readline.h 2009-03-19 16:40:54 +01:00
config/ac-macros Accept wide-character version of libncurses also. 2009-03-11 11:46:21 -04:00
dbug
Docs
extra auto-merge 2009-03-19 09:44:58 -04:00
heap Bug#29125 Windows Server X64: so many compiler warnings 2009-02-10 17:47:54 -05:00
include auto-merge -build into -bugteam 2009-04-01 22:02:04 -06:00
innobase auto-merge 2009-03-19 09:44:58 -04:00
libmysql auto-merge 2009-03-19 09:44:58 -04:00
libmysql_r
libmysqld
man Bug#37098 Get rid of "Installed (but unpackaged)" files in the RPM build 2008-08-25 21:07:41 +02:00
myisam Bug#29248 - MyISAMchk & MyISAMpack failing with * wildcard on Windows platform 2009-03-31 17:48:45 -04:00
myisammrg BUG#32047 - 'Spurious' errors while opening MERGE tables 2009-02-04 15:46:23 +04:00
mysql-test Bug#43230: SELECT ... FOR UPDATE can hang with FLUSH TABLES WITH READ LOCK indefinitely 2009-04-03 16:11:54 -03:00
mysys Bug#43461: invalid comparison with string literal in default.c 2009-03-19 17:20:15 -03:00
ndb
netware Handle renamed nwbootstrap -> nwbuild 2009-02-06 15:07:45 +01:00
os2
pstack
regex
scripts Bug#43876: mysqld_multi introduces --no-defaults which screws up my system 2009-04-02 11:29:28 -04:00
server-tools Bug#29125 Windows Server X64: so many compiler warnings 2009-02-10 17:47:54 -05:00
sql Bug#43230: SELECT ... FOR UPDATE can hang with FLUSH TABLES WITH READ LOCK indefinitely 2009-04-03 16:11:54 -03:00
sql-bench Remove outdated and now useless TODO file from sql-bench. Requested by sales. 2009-03-11 14:52:53 -06:00
sql-common Bug#29125 Windows Server X64: so many compiler warnings 2009-02-10 17:47:54 -05:00
SSL
strings merging with mysql-5.0-bugteam 2009-03-20 11:42:55 +05:30
support-files Merge a polishing of an old bug fix, 2009-03-30 16:09:37 +02:00
tests auto-merge 2009-03-19 09:44:58 -04:00
tools Bug #42434: license of mysys MD5 implementation is not GPL-compatible 2009-03-09 20:57:03 +02:00
VC++Files
vio Bug#33899: Deadlock in mysql_real_query with shared memory connections 2009-03-26 20:17:27 -03:00
win Merge main 5.0 branch -> 5.0-build (team tree). 2008-10-04 17:38:24 +02:00
zlib The header "config.h" needs to be included "early" to control other headers. 2008-10-13 14:23:39 +02:00
.bzrignore
.cvsignore
CMakeLists.txt Bug#43082: mysqld 32 bit cannot use big buffers due to 2GB 2009-02-25 16:57:49 +01:00
configure.in Automerge. 2009-03-25 16:19:53 +03:00
COPYING
EXCEPTIONS-CLIENT
INSTALL-SOURCE
INSTALL-WIN-SOURCE
Makefile.am
README

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 and
  the EXCEPTIONS-CLIENT file.
- For commercial distributions, see the LICENSE.mysql 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 Installing and Upgrading chapter.
- For the new features/bugfix history, see the Change History appendix.
- For the currently known bugs/misfeatures (known errors) see the Problems
  and Common Errors 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.