summaryrefslogtreecommitdiff
path: root/sql/mysqld.cc
diff options
context:
space:
mode:
authorserg@sergbook.mysql.com <>2005-08-12 21:15:01 +0200
committerserg@sergbook.mysql.com <>2005-08-12 21:15:01 +0200
commitf5ff607c142f6bef2cbf7f3a9ddab22df06127f9 (patch)
tree7bf5242134e413730acf82415d7616fa6b277323 /sql/mysqld.cc
parent0952c3ea53bc2bb794de02749528f8755181c1e9 (diff)
downloadmariadb-git-f5ff607c142f6bef2cbf7f3a9ddab22df06127f9.tar.gz
BUG#12162 - one can start two transactions with the same XID.
Now we keep all active XID's in a hash
Diffstat (limited to 'sql/mysqld.cc')
-rw-r--r--sql/mysqld.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index f8bfcb75be2..73080959c44 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -1050,6 +1050,7 @@ void clean_up(bool print_message)
(void) ha_panic(HA_PANIC_CLOSE); /* close all tables and logs */
if (tc_log)
tc_log->close();
+ xid_cache_free();
delete_elements(&key_caches, (void (*)(const char*, gptr)) free_key_cache);
multi_keycache_free();
end_thr_alarm(1); /* Free allocated memory */
@@ -2920,6 +2921,11 @@ server.");
using_update_log=1;
}
+ if (xid_cache_init())
+ {
+ sql_print_error("Out of memory");
+ unireg_abort(1);
+ }
if (ha_init())
{
sql_print_error("Can't init databases");