Commit 1b8c8ac4 authored by John Esmet's avatar John Esmet Committed by Yoni Fogel

refs #5500 close userdata and checkpoint userdata do not fail, so cachefile...

refs #5500 close userdata and checkpoint userdata do not fail, so cachefile close and ft evict from memory do not fail


git-svn-id: file:///svn/toku/tokudb@48237 c7de825b-a66e-492c-adef-691d508d4ae1
parent c9e96a87
......@@ -440,9 +440,7 @@ static void remove_cf_from_cachefiles_list (CACHEFILE cf) {
ct->cf_list.write_unlock();
}
// TODO: (Zardosht) review locking of this function carefully in code review
int
toku_cachefile_close(CACHEFILE *cfp, bool oplsn_valid, LSN oplsn) {
void toku_cachefile_close(CACHEFILE *cfp, bool oplsn_valid, LSN oplsn) {
CACHEFILE cf = *cfp;
CACHETABLE ct = cf->cachetable;
......@@ -480,9 +478,6 @@ toku_cachefile_close(CACHEFILE *cfp, bool oplsn_valid, LSN oplsn) {
}
toku_free(cf->fname_in_env);
toku_free(cf);
// TODO: can't fail
return 0;
}
//
......
......@@ -452,8 +452,7 @@ int toku_cachefile_count_pinned (CACHEFILE, int /*printthem*/ );
// close function does not return until all of the objects are evicted. The cachefile
// object is freed.
// If oplsn_valid is true then use oplsn as the LSN of the close instead of asking the logger. oplsn_valid being true is only allowed during recovery, and requires that you are removing the last reference (otherwise the lsn wouldn't make it in.)
// Returns: 0 if success, otherwise returns an error number.
int toku_cachefile_close (CACHEFILE*, bool oplsn_valid, LSN oplsn);
void toku_cachefile_close (CACHEFILE*, bool oplsn_valid, LSN oplsn);
// Flush the cachefile.
// Effect: Flush everything owned by the cachefile from the cachetable. All dirty
......
......@@ -3201,9 +3201,8 @@ ft_handle_open(FT_HANDLE ft_h, const char *fname_in_env, int is_create, int only
bool needed = toku_ft_needed_unlocked(ft);
toku_ft_release_reflock(ft);
if (!needed) {
//Close immediately.
r = toku_ft_evict_from_memory(ft, false, ZERO_LSN);
lazy_assert_zero(r);
// close immediately.
toku_ft_evict_from_memory(ft, false, ZERO_LSN);
}
}
else {
......
......@@ -467,11 +467,9 @@ toku_ft_has_one_reference_unlocked(FT ft) {
// evict a ft from memory by closing its cachefile. any future work
// will have to read in the ft in a new cachefile and new FT object.
int toku_ft_evict_from_memory(FT ft, bool oplsn_valid, LSN oplsn) {
int r = 0;
void toku_ft_evict_from_memory(FT ft, bool oplsn_valid, LSN oplsn) {
assert(ft->cf);
r = toku_cachefile_close(&ft->cf, oplsn_valid, oplsn);
return r;
toku_cachefile_close(&ft->cf, oplsn_valid, oplsn);
}
// Verifies there exists exactly one ft handle and returns it.
......@@ -876,8 +874,7 @@ toku_ft_remove_reference(FT ft, bool oplsn_valid, LSN oplsn, remove_ft_ref_callb
}
if (!needed) {
// close header
int r = toku_ft_evict_from_memory(ft, oplsn_valid, oplsn);
assert_zero(r);
toku_ft_evict_from_memory(ft, oplsn_valid, oplsn);
}
toku_ft_open_close_unlock();
......
......@@ -39,7 +39,7 @@ bool toku_ft_has_one_reference_unlocked(FT ft);
// evict a ft from memory by closing its cachefile. any future work
// will have to read in the ft in a new cachefile and new FT object.
int toku_ft_evict_from_memory(FT ft, bool oplsn_valid, LSN oplsn) __attribute__ ((warn_unused_result));
void toku_ft_evict_from_memory(FT ft, bool oplsn_valid, LSN oplsn);
FT_HANDLE toku_ft_get_only_existing_ft_handle(FT h);
......
......@@ -88,7 +88,7 @@ run_test (void) {
);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -61,7 +61,7 @@ cachetable_test (void) {
assert_zero(r);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -86,7 +86,7 @@ cachetable_test (void) {
r = toku_test_cachetable_unpin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), CACHETABLE_CLEAN, make_pair_attr(2));
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -118,8 +118,7 @@ cachetable_test (void) {
usleep(2*1024*1024);
check_flush = true;
r = toku_cachefile_close(&f1, false, ZERO_LSN);
assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
assert(dirty_flush_called);
check_flush = false;
......@@ -129,7 +128,7 @@ cachetable_test (void) {
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f2, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f2, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -52,7 +52,7 @@ cachetable_test (void) {
//r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, 8);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -153,7 +153,7 @@ static void checkpoint_pending(void) {
assert(r == 0);
assert(n_flush == 0 && n_write_me == 0 && n_keep_me == 0);
r = toku_cachefile_close(&cf, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&cf, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -110,7 +110,7 @@ cachetable_test (void) {
check_me = false;
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
......
......@@ -111,7 +111,7 @@ cachetable_test (void) {
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
......
......@@ -131,7 +131,7 @@ static void cachetable_checkpoint_test(int n, enum cachetable_dirty dirty) {
assert(r == 0);
assert(n_flush == 0 && n_write_me == 0 && n_keep_me == 0);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0 );
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -96,7 +96,7 @@ cachetable_test (void) {
assert(r==0);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
......
......@@ -96,7 +96,7 @@ cachetable_test (void) {
assert(r==0);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
......
......@@ -126,7 +126,7 @@ run_test (void) {
assert(STATUS_VALUE(CT_SIZE_CACHEPRESSURE) == (uint64_t) expect.cache_pressure_size);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -36,7 +36,7 @@ cachetable_test (void) {
assert(r==0);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -62,7 +62,7 @@ run_test (void) {
}
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -60,7 +60,7 @@ run_test (void) {
usleep(4000000);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -80,7 +80,7 @@ run_test (void) {
assert(my_cleaner_callback_called);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0 );
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -34,7 +34,7 @@ cachetable_test (void) {
}
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0 );
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -100,7 +100,7 @@ cachetable_test (void) {
usleep(1*1024*1024);
check_flush = false;
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0 );
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -152,7 +152,7 @@ cachetable_test (void) {
assert(expected_bytes_to_free == 0);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -180,7 +180,7 @@ cachetable_test (void) {
assert(expected_bytes_to_free == 3);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -134,7 +134,7 @@ cachetable_test (void) {
r = toku_test_cachetable_unpin(f1, make_blocknum(5), 5, CACHETABLE_CLEAN, make_pair_attr(4));
check_flush = false;
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0 );
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -99,7 +99,7 @@ cachetable_test (void) {
assert(clone_flush_started && clone_flush_completed);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -101,7 +101,7 @@ cachetable_test (void) {
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
......
......@@ -102,7 +102,7 @@ cachetable_test (void) {
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
......
......@@ -81,7 +81,7 @@ cachetable_test (enum cachetable_dirty dirty, bool cloneable) {
);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -90,7 +90,7 @@ cachetable_test (void) {
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
......
......@@ -47,7 +47,7 @@ cachetable_count_pinned_test (int n) {
assert(toku_cachefile_count_pinned(f1, 1) == 0);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -52,7 +52,7 @@ cachetable_debug_test (int n) {
}
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -132,7 +132,7 @@ static void cachetable_eviction_full_test (void) {
// close with the eviction in progress. the close should block until
// all of the reads and writes are complete.
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -146,7 +146,7 @@ static void cachetable_eviction_full_test (void) {
// close with the eviction in progress. the close should block until
// all of the reads and writes are complete.
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -119,7 +119,7 @@ static void cachetable_predef_fetch_maybegetandpin_test (void) {
assert(r == 0);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -148,7 +148,7 @@ static void cachetable_prefetch_maybegetandpin_test (void) {
assert(r == 0);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -44,7 +44,7 @@ cachetable_fd_test (void) {
r = toku_cachefile_of_filenum(ct, fn, &newcf);
assert(r == ENOENT);
r = toku_cachefile_close(&cf, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&cf, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -100,7 +100,7 @@ cachetable_test (enum pin_evictor_test_type test_type, bool nonblocking) {
}
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -46,7 +46,7 @@ cachetable_test (void) {
toku_cachefile_flush(f1);
}
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
......
......@@ -72,8 +72,8 @@ test_cachetable_def_flush (int n) {
assert(r == 0);
}
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
r = toku_cachefile_close(&f2, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachefile_close(&f2, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -73,7 +73,7 @@ cachetable_getandpin_test (int n) {
}
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -50,7 +50,7 @@ run_test (void) {
r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
foo = false;
cachefile_kibbutz_enq(f1, kibbutz_work, f1);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
assert(foo);
toku_cachetable_close(&ct);
......
......@@ -128,7 +128,7 @@ cachetable_test (void) {
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_CLEAN, make_pair_attr(8));
// close and reopen cachefile so we can do some simple prefetch tests
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
r = toku_cachetable_openf(&f1, ct, fname1, O_RDWR|O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO); assert(r == 0);
//
// verify that a prefetch of the node will succeed
......@@ -176,7 +176,7 @@ cachetable_test (void) {
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
......
......@@ -381,7 +381,7 @@ cachetable_test (void) {
}
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
sum_vals();
......
......@@ -67,7 +67,7 @@ run_test (void) {
assert(r==0);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
......
......@@ -146,7 +146,7 @@ static void cachetable_prefetch_checkpoint_test(int n, enum cachetable_dirty dir
assert(r == 0);
assert(n_flush == 0 && n_write_me == 0 && n_keep_me == 0);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -70,7 +70,7 @@ static void cachetable_prefetch_close_leak_test (void) {
// close with the prefetch in progress. the close should block until
// all of the reads and writes are complete.
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -97,7 +97,7 @@ static void cachetable_prefetch_full_test (bool partial_fetch) {
// close with the prefetch in progress. the close should block until
// all of the reads and writes are complete.
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -103,7 +103,7 @@ static void cachetable_prefetch_flowcontrol_test (int cachetable_size_limit) {
}
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
if (verbose) printf("%s:%d 0x%x 0x%x\n", __FUNCTION__, __LINE__,
evicted_keys, (1 << (2*cachetable_size_limit))-1);
toku_cachetable_close(&ct);
......
......@@ -137,7 +137,7 @@ static void cachetable_prefetch_maybegetandpin_test (bool do_partial_fetch) {
assert(r == 0);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -63,7 +63,7 @@ static void cachetable_prefetch_maybegetandpin_test (void) {
assert(r == 0);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -73,7 +73,7 @@ static void cachetable_prefetch_maybegetandpin_test (void) {
assert(r == 0);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -515,7 +515,7 @@ cachetable_test (void) {
}
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
sum_vals();
......
......@@ -44,7 +44,7 @@ cachetable_put_test (int n) {
assert(toku_cachefile_count_pinned(f1, 1) == 0);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -101,7 +101,7 @@ static void readit (void) {
r=toku_cachetable_get_and_pin(f, key, fullhash, &block, &current_size, wc, f_fetch, def_pf_req_callback, def_pf_callback, true, 0); assert(r==0);
r=toku_test_cachetable_unpin(f, key, fullhash, CACHETABLE_CLEAN, make_pair_attr(BLOCKSIZE)); assert(r==0);
}
r = toku_cachefile_close(&f, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f, false, ZERO_LSN);
toku_cachetable_close(&t);
gettimeofday(&end, 0);
toku_os_get_process_times(&end_usertime, &end_systime);
......
......@@ -140,7 +140,7 @@ test_clean (enum cachetable_dirty dirty, bool cloneable) {
check_flush = false;
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -89,7 +89,7 @@ test_clean (enum cachetable_dirty dirty, bool cloneable) {
flush_called = false;
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0 );
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
if (flush_expected) assert(flush_called);
}
......
......@@ -66,7 +66,7 @@ cachetable_test (void) {
);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -81,8 +81,7 @@ run_test (pair_lock_type lock_type) {
}
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN);
assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -154,7 +154,7 @@ cachetable_test (bool write_first, bool write_second, bool start_checkpoint) {
}
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -109,8 +109,7 @@ run_test (void) {
run_case_that_should_fail(f1, PL_WRITE_EXPENSIVE, PL_WRITE_EXPENSIVE);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN);
assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -120,8 +120,7 @@ run_test (void) {
);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN);
assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -102,7 +102,7 @@ run_test (void) {
);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -162,7 +162,7 @@ cachetable_test (bool write_first, bool write_second, bool start_checkpoint) {
}
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
......
......@@ -112,7 +112,7 @@ run_test (void) {
assert_zero(r);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -122,7 +122,7 @@ run_test (void) {
assert_zero(r);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -56,7 +56,7 @@ cachetable_test (void) {
r = toku_test_cachetable_unpin_and_remove(f1, make_blocknum(1), remove_key_expect_no_checkpoint, NULL);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
......
......@@ -24,7 +24,7 @@ cachetable_test (void) {
r = toku_cachetable_get_and_pin(f1, make_blocknum(1), 1, &v1, &s1, wc, def_fetch, def_pf_req_callback, def_pf_callback, true, NULL);
r = toku_test_cachetable_unpin(f1, make_blocknum(1), 1, CACHETABLE_DIRTY, make_pair_attr(8));
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
......
......@@ -114,7 +114,7 @@ static void test_nested_pin (void) {
toku_cachetable_put(f, make_blocknum(2), f2hash, &i1, make_pair_attr(test_object_size), wc, put_callback_nop);
r = toku_test_cachetable_unpin(f, make_blocknum(2), f2hash, CACHETABLE_CLEAN, make_pair_attr(test_object_size));
assert(r==0);
r = toku_cachefile_close(&f, false, ZERO_LSN); assert(r==0);
toku_cachefile_close(&f, false, ZERO_LSN);
toku_cachetable_close(&t);
}
......@@ -193,10 +193,10 @@ static void test_multi_filehandles (void) {
// we support only one close for a file handle
r = toku_test_cachetable_unpin(f1, make_blocknum(1), toku_cachetable_hash(f1, make_blocknum(1)), CACHETABLE_CLEAN, make_pair_attr(0)); assert(r==0);
r = toku_test_cachetable_unpin(f2, make_blocknum(2), toku_cachetable_hash(f2, make_blocknum(2)), CACHETABLE_CLEAN, make_pair_attr(0)); assert(r==0);
r = toku_cachefile_close(&f2, false, ZERO_LSN); assert(r==0);
toku_cachefile_close(&f2, false, ZERO_LSN);
r = toku_test_cachetable_unpin(f3, make_blocknum(2), toku_cachetable_hash(f3, make_blocknum(2)), CACHETABLE_CLEAN, make_pair_attr(0)); assert(r==0);
r = toku_cachefile_close(&f3, false, ZERO_LSN); assert(r==0);
toku_cachefile_close(&f3, false, ZERO_LSN);
toku_cachetable_close(&t);
}
......@@ -474,8 +474,7 @@ static void test_size_flush(void) {
assert(r == 0);
}
r = toku_cachefile_close(&f, false, ZERO_LSN);
assert(r == 0);
toku_cachefile_close(&f, false, ZERO_LSN);
toku_cachetable_close(&t);
}
......
......@@ -74,7 +74,7 @@ cachetable_unpin_and_remove_test (int n) {
toku_cachetable_get_state(ct, &nentries, NULL, NULL, NULL);
assert(nentries == 0);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......@@ -114,7 +114,7 @@ cachetable_put_evict_remove_test (int n) {
r = toku_test_cachetable_unpin_and_remove(f1, make_blocknum(0), NULL, NULL);
assert(r == 0);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -69,7 +69,7 @@ run_test (void) {
assert(r==0);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
......
......@@ -45,7 +45,7 @@ cachetable_unpin_test (int n) {
assert(toku_cachefile_count_pinned(f1, 1) == 0);
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......@@ -112,7 +112,7 @@ unpin_and_evictor_test(enum unpin_evictor_test_type test_type) {
}
toku_cachetable_verify(ct);
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
......@@ -54,7 +54,7 @@ cachetable_test (void) {
r = toku_test_cachetable_unpin(f1, make_blocknum(i), i, CACHETABLE_DIRTY, make_pair_attr(4));
}
r = toku_cachefile_close(&f1, false, ZERO_LSN); assert(r == 0);
toku_cachefile_close(&f1, false, ZERO_LSN);
toku_cachetable_close(&ct);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment