mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
013b3d8ab3
Version for 5.0. It fixes three problems: 1. The cause of the bug was that we did not check the table version for the HANDLER ... READ commands. We did not notice when a table was replaced by a new one. This can happen during ALTER TABLE, REPAIR TABLE, and OPTIMIZE TABLE (there might be more cases). I call the fix for this problem "the primary bug fix". 2. mysql_ha_flush() was not always called with a locked LOCK_open. Though the function comment clearly said it must. I changed the code so that the locking is done when required. I call the fix for this problem "the secondary fix". 3. In 5.0 (not in 4.1 or 4.0) DROP TABLE had a possible deadlock flaw in concur with FLUSH TABLES WITH READ LOCK. I call the fix for this problem "the 5.0 addendum fix". include/my_pthread.h: Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash Added a new macro for the 5.0 addendum fix. mysql-test/r/handler.result: Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash The test result. mysql-test/t/handler.test: Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash The test case. sql/lock.cc: Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash Changed a comment which did confuse me and which is not fully correct anymore after the 5.0 addendum fix. Added an assertion which would fire without the 5.0 addendum fix. sql/mysql_priv.h: Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash Changed a definition for the secondary fix. sql/sql_base.cc: Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash Changed function calls for the secondary fix. sql/sql_class.cc: Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash Changed a function call for the secondary fix. sql/sql_handler.cc: Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash The first two diffs make the primary bug fix. The rest is for the secondary fix. sql/sql_table.cc: Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash The first diff (four changed places) make the 5.0 addendum fix. The other three are changed function calls for the secondary fix. |
||
---|---|---|
.. | ||
.cvsignore | ||
base64.h | ||
config-netware.h | ||
config-os2.h | ||
config-win.h | ||
decimal.h | ||
errmsg.h | ||
ft_global.h | ||
hash.h | ||
heap.h | ||
help_end.h | ||
help_start.h | ||
keycache.h | ||
m_ctype.h | ||
m_string.h | ||
Makefile.am | ||
md5.h | ||
my_aes.h | ||
my_alarm.h | ||
my_alloc.h | ||
my_base.h | ||
my_bitmap.h | ||
my_dbug.h | ||
my_dir.h | ||
my_getopt.h | ||
my_global.h | ||
my_handler.h | ||
my_list.h | ||
my_net.h | ||
my_no_pthread.h | ||
my_nosys.h | ||
my_pthread.h | ||
my_semaphore.h | ||
my_sys.h | ||
my_time.h | ||
my_tree.h | ||
my_xml.h | ||
myisam.h | ||
myisammrg.h | ||
myisampack.h | ||
mysql.h | ||
mysql_com.h | ||
mysql_embed.h | ||
mysql_time.h | ||
mysql_version.h.in | ||
mysys_err.h | ||
queues.h | ||
raid.h | ||
rijndael.h | ||
sha1.h | ||
sql_common.h | ||
sslopt-case.h | ||
sslopt-longopts.h | ||
sslopt-vars.h | ||
t_ctype.h | ||
thr_alarm.h | ||
thr_lock.h | ||
typelib.h | ||
violite.h |