mirror of
https://github.com/MariaDB/server.git
synced 2026-04-28 11:15:33 +02:00
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 | ||