mirror of
https://github.com/MariaDB/server.git
synced 2025-02-02 03:51:50 +01:00
refs #5197 Fix a couple of bugs (off by true, and missing braces around if statement) with not reserving memory for put-loader
Also only call toku_txn_require_checkpoint_on_commit(tokutxn) once (instead of N times) git-svn-id: file:///svn/toku/tokudb@45351 c7de825b-a66e-492c-adef-691d508d4ae1
This commit is contained in:
parent
f4026373f0
commit
e545f2d380
3 changed files with 8 additions and 9 deletions
|
@ -374,9 +374,10 @@ void toku_ft_loader_internal_destroy (FTLOADER bl, BOOL is_error) {
|
|||
toku_free(bl->fractal_queues);
|
||||
toku_free(bl->fractal_threads_live);
|
||||
|
||||
if (bl->did_reserve_memory)
|
||||
if (bl->did_reserve_memory) {
|
||||
invariant(bl->cachetable);
|
||||
toku_cachetable_release_reserved_memory(bl->cachetable, bl->reserved_memory);
|
||||
}
|
||||
|
||||
ft_loader_destroy_error_callback(&bl->error_callback);
|
||||
ft_loader_destroy_poll_callback(&bl->poll_callback);
|
||||
|
|
|
@ -479,20 +479,18 @@ build_index(DB_INDEXER *indexer) {
|
|||
}
|
||||
|
||||
// Clients must not operate on any of the hot dbs concurrently with close
|
||||
static int
|
||||
static int
|
||||
close_indexer(DB_INDEXER *indexer) {
|
||||
int r = 0;
|
||||
(void) __sync_fetch_and_sub(&STATUS_VALUE(INDEXER_CURRENT), 1);
|
||||
|
||||
// Mark txn as needing a checkpoint.
|
||||
// (This will cause a checkpoint, which is necessary
|
||||
// because these files are not necessarily on disk and all the operations
|
||||
// Mark txn as needing a checkpoint.
|
||||
// (This will cause a checkpoint, which is necessary
|
||||
// because these files are not necessarily on disk and all the operations
|
||||
// to create them are not in the recovery log.)
|
||||
DB_TXN *txn = indexer->i->txn;
|
||||
TOKUTXN tokutxn = db_txn_struct_i(txn)->tokutxn;
|
||||
for (int which_db = 0; which_db < indexer->i->N ; which_db++) {
|
||||
toku_txn_require_checkpoint_on_commit(tokutxn);
|
||||
}
|
||||
toku_txn_require_checkpoint_on_commit(tokutxn);
|
||||
|
||||
// Disassociate the indexer from the hot db and free_indexer
|
||||
disassociate_indexer_from_hot_dbs(indexer);
|
||||
|
|
|
@ -274,7 +274,7 @@ int toku_loader_create_loader(DB_ENV *env,
|
|||
loader->i->temp_file_template,
|
||||
load_lsn,
|
||||
ttxn,
|
||||
use_puts);
|
||||
!use_puts);
|
||||
if ( r!=0 ) {
|
||||
toku_free(new_inames_in_env);
|
||||
toku_free(brts);
|
||||
|
|
Loading…
Add table
Reference in a new issue