diff options
author | serg@sergbook.mysql.com <> | 2005-08-12 21:15:01 +0200 |
---|---|---|
committer | serg@sergbook.mysql.com <> | 2005-08-12 21:15:01 +0200 |
commit | f5ff607c142f6bef2cbf7f3a9ddab22df06127f9 (patch) | |
tree | 7bf5242134e413730acf82415d7616fa6b277323 /sql/mysqld.cc | |
parent | 0952c3ea53bc2bb794de02749528f8755181c1e9 (diff) | |
download | mariadb-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.cc | 6 |
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"); |