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 4f8407b631 Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock
The order of acquiring LOCK_mysql_create_db
and wait_if_global_read_lock() was wrong. It could happen
that a thread held LOCK_mysql_create_db while waiting for
the global read lock to be released. The thread with the
global read lock could try to administrate a database too.
It would first try to lock LOCK_mysql_create_db and hang...

The check if the current thread has the global read lock
is done in wait_if_global_read_lock(), which could not be
reached because of the hang in LOCK_mysql_create_db.

Now I exchanged the order of acquiring LOCK_mysql_create_db
and wait_if_global_read_lock(). This makes 
wait_if_global_read_lock() fail with an error message for
the thread with the global read lock. No deadlock happens.


mysql-test/r/lock_multi.result:
  Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock
  The test result
mysql-test/t/lock_multi.test:
  Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock
  The test case
sql/sql_db.cc:
  Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock
  Exchanged the order of acquiring LOCK_mysql_create_db
  and wait_if_global_read_lock().
2006-05-29 15:26:23 +02:00
bdb BUG#15734: Fix undefined awk behaviour breaking compilation on Debian. 2005-12-14 13:09:37 +01:00
BitKeeper pekka:get - push push push 2006-05-02 21:47:53 +02:00
BUILD Use yaSSL as default for BUILD/* scripts 2006-03-21 11:21:52 +01:00
client Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0 2006-05-09 08:26:25 +02:00
cmd-line-utils Merge neptunus.(none):/home/msvensson/mysql/bug16557/my50-bug16557 2006-02-21 08:58:19 +01:00
config/ac-macros Bug#18818 configure: No longer finds OpenSSL on Mac OS X 2006-04-28 13:55:40 +02:00
dbug
Docs Merge mysql.com:/home/tomash/src/mysql_ab/tmp_merge 2006-05-06 11:18:42 +04:00
extra Merge 192.168.0.20:mysql/my50-maint-yassl 2006-05-08 16:38:24 +02:00
heap BUG#18233 - Memory tables INDEX USING HASH (a,b) returns 1 row on 2006-05-10 21:50:04 +05:00
include Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0 2006-05-09 08:26:25 +02:00
innobase Applied innodb-5.0-ss521 snapshot. 2006-05-04 00:32:34 +04:00
libmysql Remove valgrind and compiler warnings 2006-05-08 17:14:06 +02:00
libmysql_r yassl link problem fixed 2006-04-03 12:07:18 +02:00
libmysqld Backport fix for mysql client not using SSl library directly 2006-04-22 00:48:13 +02:00
man - Removed obsolete and outdated man page files from the man 2005-10-27 14:51:58 +02:00
myisam Merge mysql.com:/home/mydev/mysql-5.0 2006-05-06 13:35:48 +02:00
myisammrg BUG#17314: Can't use index_merge/intersection for MERGE tables 2006-02-11 21:51:43 +03:00
mysql-test Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock 2006-05-29 15:26:23 +02:00
mysys Merge svojtovich@bk-internal.mysql.com:/home/bk/mysql-5.0 2006-05-03 16:37:42 +05:00
ndb Merge mysql.com:/home/marty/MySQL/mysql-4.1 2006-05-09 12:17:38 +02:00
netware .libs is no longer used when compiling netware 2006-04-03 11:54:09 -04:00
os2
pstack
regex
scripts Merge 2006-04-03 03:52:22 +02:00
server-tools Bug#19362 im_daemon_lifecycle fails when built from source distribution 2006-04-26 12:45:22 +02:00
sql Bug#19815 - CREATE/RENAME/DROP DATABASE can deadlock on a global read lock 2006-05-29 15:26:23 +02:00
sql-bench Set thread_stack after return from end_thread() 2005-12-03 18:13:06 +02:00
sql-common Remove C++ comments 2006-05-03 16:59:02 +02:00
SSL Remove client-req-pem and server-req.pem 2006-05-03 11:53:16 +02:00
strings An update to as-yet unused new feature of snprintf, which was added to bring 2006-05-02 13:42:35 -04:00
support-files Merge 2006-05-01 20:16:19 +02:00
tests Fix a bunch of non-Linux compile failures. 2006-05-02 09:19:54 +02:00
tools pthread_handler_decl() changed to be ctags-friendly 2005-10-08 16:39:55 +02:00
VC++Files Merge mysql.com:/home/hf/work/mysql-5.0.18455 2006-05-03 16:48:15 +05:00
vio Remove valgrind and compiler warnings 2006-05-08 17:14:06 +02:00
zlib Changes after initial patch to #15787 2006-01-23 21:35:11 +03:00
.bzrignore Fix for Win build 2006-05-01 22:16:08 +05:00
.cvsignore
configure.in 2006-05-09 00:11:54 +02:00
COPYING
Makefile.am Merge 2005-11-04 02:17:11 +01: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.