Commit 02164b84 authored by Dave Wells's avatar Dave Wells Committed by Yoni Fogel

assert labeling 2

git-svn-id: file:///svn/toku/tokudb@20289 c7de825b-a66e-492c-adef-691d508d4ae1
parent 5ea43000
...@@ -146,11 +146,11 @@ void brtloader_fi_destroy (struct file_infos *fi, BOOL is_error) ...@@ -146,11 +146,11 @@ void brtloader_fi_destroy (struct file_infos *fi, BOOL is_error)
} }
for (int i=0; i<fi->n_files; i++) { for (int i=0; i<fi->n_files; i++) {
if (fi->file_infos[i].is_open) { if (fi->file_infos[i].is_open) {
assert(is_error); invariant(is_error);
fclose(fi->file_infos[i].file); // don't check for errors, since we are in an error case. fclose(fi->file_infos[i].file); // don't check for errors, since we are in an error case.
} }
if (fi->file_infos[i].is_extant) { if (fi->file_infos[i].is_extant) {
assert(is_error); invariant(is_error);
unlink(fi->file_infos[i].fname); unlink(fi->file_infos[i].fname);
toku_free(fi->file_infos[i].fname); toku_free(fi->file_infos[i].fname);
} }
...@@ -173,7 +173,7 @@ static int open_file_add (struct file_infos *fi, ...@@ -173,7 +173,7 @@ static int open_file_add (struct file_infos *fi,
fi->n_files_limit *=2; fi->n_files_limit *=2;
XREALLOC_N(fi->n_files_limit, fi->file_infos); XREALLOC_N(fi->n_files_limit, fi->file_infos);
} }
assert(fi->n_files < fi->n_files_limit); invariant(fi->n_files < fi->n_files_limit);
fi->file_infos[fi->n_files].is_open = TRUE; fi->file_infos[fi->n_files].is_open = TRUE;
fi->file_infos[fi->n_files].is_extant = TRUE; fi->file_infos[fi->n_files].is_extant = TRUE;
fi->file_infos[fi->n_files].fname = fname; fi->file_infos[fi->n_files].fname = fname;
...@@ -196,9 +196,9 @@ int brtloader_fi_reopen (struct file_infos *fi, FIDX idx, const char *mode) { ...@@ -196,9 +196,9 @@ int brtloader_fi_reopen (struct file_infos *fi, FIDX idx, const char *mode) {
int result = 0; int result = 0;
int r = toku_pthread_mutex_lock(&fi->lock); resource_assert(r==0); int r = toku_pthread_mutex_lock(&fi->lock); resource_assert(r==0);
int i = idx.idx; int i = idx.idx;
assert(i>=0 && i<fi->n_files); invariant(i>=0 && i<fi->n_files);
assert(!fi->file_infos[i].is_open); invariant(!fi->file_infos[i].is_open);
assert(fi->file_infos[i].is_extant); invariant(fi->file_infos[i].is_extant);
fi->file_infos[i].file = fopen(fi->file_infos[i].fname, mode); fi->file_infos[i].file = fopen(fi->file_infos[i].fname, mode);
if (fi->file_infos[i].file==NULL) { result = errno; goto error; } if (fi->file_infos[i].file==NULL) { result = errno; goto error; }
fi->file_infos[i].is_open = TRUE; fi->file_infos[i].is_open = TRUE;
...@@ -213,10 +213,10 @@ int brtloader_fi_reopen (struct file_infos *fi, FIDX idx, const char *mode) { ...@@ -213,10 +213,10 @@ int brtloader_fi_reopen (struct file_infos *fi, FIDX idx, const char *mode) {
int brtloader_fi_close (struct file_infos *fi, FIDX idx) int brtloader_fi_close (struct file_infos *fi, FIDX idx)
{ {
{ int r2 = toku_pthread_mutex_lock(&fi->lock); resource_assert(r2==0); } { int r2 = toku_pthread_mutex_lock(&fi->lock); resource_assert(r2==0); }
assert(fi->n_files_open>0); invariant(fi->n_files_open>0);
fi->n_files_open--; fi->n_files_open--;
assert(idx.idx >=0 && idx.idx < fi->n_files); invariant(idx.idx >=0 && idx.idx < fi->n_files);
assert(fi->file_infos[idx.idx].is_open); invariant(fi->file_infos[idx.idx].is_open);
fi->file_infos[idx.idx].is_open = FALSE; fi->file_infos[idx.idx].is_open = FALSE;
int r = fclose(fi->file_infos[idx.idx].file); int r = fclose(fi->file_infos[idx.idx].file);
{ int r2 = toku_pthread_mutex_unlock(&fi->lock); resource_assert(r2==0); } { int r2 = toku_pthread_mutex_unlock(&fi->lock); resource_assert(r2==0); }
...@@ -226,12 +226,12 @@ int brtloader_fi_close (struct file_infos *fi, FIDX idx) ...@@ -226,12 +226,12 @@ int brtloader_fi_close (struct file_infos *fi, FIDX idx)
int brtloader_fi_unlink (struct file_infos *fi, FIDX idx) { int brtloader_fi_unlink (struct file_infos *fi, FIDX idx) {
{ int r2 = toku_pthread_mutex_lock(&fi->lock); resource_assert(r2==0); } { int r2 = toku_pthread_mutex_lock(&fi->lock); resource_assert(r2==0); }
assert(fi->n_files_extant>0); invariant(fi->n_files_extant>0);
fi->n_files_extant--; fi->n_files_extant--;
int id = idx.idx; int id = idx.idx;
assert(id >=0 && id < fi->n_files); invariant(id >=0 && id < fi->n_files);
assert(!fi->file_infos[id].is_open); // must be closed before we unlink invariant(!fi->file_infos[id].is_open); // must be closed before we unlink
assert(fi->file_infos[id].is_extant); // must still exist invariant(fi->file_infos[id].is_extant); // must still exist
fi->file_infos[id].is_extant = FALSE; fi->file_infos[id].is_extant = FALSE;
int r = unlink(fi->file_infos[id].fname); if (r!=0) r=errno; int r = unlink(fi->file_infos[id].fname); if (r!=0) r=errno;
toku_free(fi->file_infos[id].fname); toku_free(fi->file_infos[id].fname);
...@@ -418,8 +418,8 @@ static void brt_loader_set_panic(BRTLOADER bl, int error) { ...@@ -418,8 +418,8 @@ static void brt_loader_set_panic(BRTLOADER bl, int error) {
// One of the tests uses this. // One of the tests uses this.
FILE *toku_bl_fidx2file (BRTLOADER bl, FIDX i) { FILE *toku_bl_fidx2file (BRTLOADER bl, FIDX i) {
{ int r2 = toku_pthread_mutex_lock(&bl->file_infos.lock); resource_assert(r2==0); } { int r2 = toku_pthread_mutex_lock(&bl->file_infos.lock); resource_assert(r2==0); }
assert(i.idx >=0 && i.idx < bl->file_infos.n_files); invariant(i.idx >=0 && i.idx < bl->file_infos.n_files);
assert(bl->file_infos.file_infos[i.idx].is_open); invariant(bl->file_infos.file_infos[i.idx].is_open);
FILE *result=bl->file_infos.file_infos[i.idx].file; FILE *result=bl->file_infos.file_infos[i.idx].file;
{ int r2 = toku_pthread_mutex_unlock(&bl->file_infos.lock); resource_assert(r2==0); } { int r2 = toku_pthread_mutex_unlock(&bl->file_infos.lock); resource_assert(r2==0); }
return result; return result;
...@@ -724,7 +724,7 @@ static void* extractor_thread (void *blv) { ...@@ -724,7 +724,7 @@ static void* extractor_thread (void *blv) {
int rq = queue_deq(bl->primary_rowset_queue, &item, NULL, NULL); int rq = queue_deq(bl->primary_rowset_queue, &item, NULL, NULL);
BL_TRACE(blt_extract_deq); BL_TRACE(blt_extract_deq);
if (rq==EOF) break; if (rq==EOF) break;
assert(rq==0); // other errors are arbitrarily bad. invariant(rq==0); // other errors are arbitrarily bad.
} }
struct rowset *primary_rowset = (struct rowset *)item; struct rowset *primary_rowset = (struct rowset *)item;
...@@ -1436,7 +1436,7 @@ static int merge_some_files_using_dbufio (const BOOL to_q, FIDX dest_data, QUEUE ...@@ -1436,7 +1436,7 @@ static int merge_some_files_using_dbufio (const BOOL to_q, FIDX dest_data, QUEUE
if (n_rows_done%rows_per_report==0) { if (n_rows_done%rows_per_report==0) {
// need to update the progress. // need to update the progress.
double fraction_of_remaining_we_just_did = (double)rows_per_report / (double)(n_rows - n_rows_done + rows_per_report); double fraction_of_remaining_we_just_did = (double)rows_per_report / (double)(n_rows - n_rows_done + rows_per_report);
assert(0<= fraction_of_remaining_we_just_did && fraction_of_remaining_we_just_did<=1); invariant(0<= fraction_of_remaining_we_just_did && fraction_of_remaining_we_just_did<=1);
int progress_just_done = fraction_of_remaining_we_just_did * progress_allocation; int progress_just_done = fraction_of_remaining_we_just_did * progress_allocation;
progress_allocation -= progress_just_done; progress_allocation -= progress_just_done;
r = update_progress(progress_just_done, bl, "in file merge"); r = update_progress(progress_just_done, bl, "in file merge");
...@@ -1696,7 +1696,7 @@ static inline void dbout_init(struct dbout *out) { ...@@ -1696,7 +1696,7 @@ static inline void dbout_init(struct dbout *out) {
} }
static inline void dbout_destroy(struct dbout *out) { static inline void dbout_destroy(struct dbout *out) {
assert(out->fd == -1); invariant(out->fd == -1);
toku_free(out->translation); toku_free(out->translation);
out->translation = NULL; out->translation = NULL;
} }
...@@ -1726,10 +1726,10 @@ static void seek_align_locked(struct dbout *out) { ...@@ -1726,10 +1726,10 @@ static void seek_align_locked(struct dbout *out) {
if (r!=out->current_off) { if (r!=out->current_off) {
fprintf(stderr, "Seek failed %s (errno=%d)\n", strerror(errno), errno); fprintf(stderr, "Seek failed %s (errno=%d)\n", strerror(errno), errno);
} }
assert(r==out->current_off); invariant(r==out->current_off);
assert(out->current_off >= old_current_off); invariant(out->current_off >= old_current_off);
assert(out->current_off < old_current_off+alignment); invariant(out->current_off < old_current_off+alignment);
assert(out->current_off % alignment == 0); invariant(out->current_off % alignment == 0);
} }
static void seek_align(struct dbout *out) { static void seek_align(struct dbout *out) {
...@@ -1824,7 +1824,7 @@ static inline long int loader_random(void) { ...@@ -1824,7 +1824,7 @@ static inline long int loader_random(void) {
} }
static struct leaf_buf *start_leaf (struct dbout *out, const struct descriptor *desc, int64_t lblocknum) { static struct leaf_buf *start_leaf (struct dbout *out, const struct descriptor *desc, int64_t lblocknum) {
assert(lblocknum < out->n_translations_limit); invariant(lblocknum < out->n_translations_limit);
struct leaf_buf *MALLOC(lbuf); struct leaf_buf *MALLOC(lbuf);
assert(lbuf); assert(lbuf);
lbuf->blocknum = lblocknum; lbuf->blocknum = lblocknum;
...@@ -1936,8 +1936,8 @@ static int toku_loader_write_brt_from_q (BRTLOADER bl, ...@@ -1936,8 +1936,8 @@ static int toku_loader_write_brt_from_q (BRTLOADER bl,
} }
out.translation[0].off = -2LL; out.translation[0].size = 0; // block 0 is NULL out.translation[0].off = -2LL; out.translation[0].size = 0; // block 0 is NULL
assert(1==RESERVED_BLOCKNUM_TRANSLATION); invariant(1==RESERVED_BLOCKNUM_TRANSLATION);
assert(2==RESERVED_BLOCKNUM_DESCRIPTOR); invariant(2==RESERVED_BLOCKNUM_DESCRIPTOR);
out.translation[1].off = -1; // block 1 is the block translation, filled in later out.translation[1].off = -1; // block 1 is the block translation, filled in later
out.translation[2].off = -1; // block 2 is the descriptor out.translation[2].off = -1; // block 2 is the descriptor
seek_align(&out); seek_align(&out);
...@@ -2034,11 +2034,11 @@ static int toku_loader_write_brt_from_q (BRTLOADER bl, ...@@ -2034,11 +2034,11 @@ static int toku_loader_write_brt_from_q (BRTLOADER bl,
// write the descriptor // write the descriptor
{ {
seek_align(&out); seek_align(&out);
assert(out.n_translations >= RESERVED_BLOCKNUM_DESCRIPTOR); invariant(out.n_translations >= RESERVED_BLOCKNUM_DESCRIPTOR);
assert(out.translation[RESERVED_BLOCKNUM_DESCRIPTOR].off == -1); invariant(out.translation[RESERVED_BLOCKNUM_DESCRIPTOR].off == -1);
out.translation[RESERVED_BLOCKNUM_DESCRIPTOR].off = out.current_off; out.translation[RESERVED_BLOCKNUM_DESCRIPTOR].off = out.current_off;
size_t desc_size = 4+toku_serialize_descriptor_size(descriptor); size_t desc_size = 4+toku_serialize_descriptor_size(descriptor);
assert(desc_size>0); invariant(desc_size>0);
out.translation[RESERVED_BLOCKNUM_DESCRIPTOR].size = desc_size; out.translation[RESERVED_BLOCKNUM_DESCRIPTOR].size = desc_size;
struct wbuf wbuf; struct wbuf wbuf;
char *MALLOC_N(desc_size, buf); char *MALLOC_N(desc_size, buf);
...@@ -2136,7 +2136,7 @@ static int loader_do_i (BRTLOADER bl, ...@@ -2136,7 +2136,7 @@ static int loader_do_i (BRTLOADER bl,
//printf("doing i use %d progress=%d fin at %d\n", progress_allocation, bl->progress, bl->progress+progress_allocation); //printf("doing i use %d progress=%d fin at %d\n", progress_allocation, bl->progress, bl->progress+progress_allocation);
struct merge_fileset *fs = &(bl->fs[which_db]); struct merge_fileset *fs = &(bl->fs[which_db]);
struct rowset *rows = &(bl->rows[which_db]); struct rowset *rows = &(bl->rows[which_db]);
assert(rows->data==NULL); // the rows should be all cleaned up already invariant(rows->data==NULL); // the rows should be all cleaned up already
// a better allocation would be to figure out roughly how many merge passes we'll need. // a better allocation would be to figure out roughly how many merge passes we'll need.
int allocation_for_merge = (2*progress_allocation)/3; int allocation_for_merge = (2*progress_allocation)/3;
...@@ -2225,9 +2225,9 @@ static int toku_brt_loader_close_internal (BRTLOADER bl) ...@@ -2225,9 +2225,9 @@ static int toku_brt_loader_close_internal (BRTLOADER bl)
result = update_progress(0, bl, "did index"); result = update_progress(0, bl, "did index");
if (result) goto error; if (result) goto error;
} }
assert(bl->file_infos.n_files_open == 0); invariant(bl->file_infos.n_files_open == 0);
assert(bl->file_infos.n_files_extant == 0); invariant(bl->file_infos.n_files_extant == 0);
assert(bl->progress == PROGRESS_MAX); invariant(bl->progress == PROGRESS_MAX);
error: error:
brtloader_destroy(bl, (BOOL)(result!=0)); brtloader_destroy(bl, (BOOL)(result!=0));
BL_TRACE(blt_close); BL_TRACE(blt_close);
...@@ -2251,7 +2251,7 @@ int toku_brt_loader_close (BRTLOADER bl, ...@@ -2251,7 +2251,7 @@ int toku_brt_loader_close (BRTLOADER bl,
if (bl->extractor_live) { if (bl->extractor_live) {
r = finish_extractor(bl); r = finish_extractor(bl);
lazy_assert(r == 0); // LAZY !!! should check this error code and cleanup if needed. lazy_assert(r == 0); // LAZY !!! should check this error code and cleanup if needed.
assert(!bl->extractor_live); lazy_assert(!bl->extractor_live);
} }
// check for an error during extraction // check for an error during extraction
...@@ -2318,7 +2318,7 @@ static void add_pair_to_leafnode (struct leaf_buf *lbuf, unsigned char *key, int ...@@ -2318,7 +2318,7 @@ static void add_pair_to_leafnode (struct leaf_buf *lbuf, unsigned char *key, int
putbuf_bytes(&lbuf->dbuf, key, keylen); putbuf_bytes(&lbuf->dbuf, key, keylen);
putbuf_bytes(&lbuf->dbuf, val, vallen); putbuf_bytes(&lbuf->dbuf, val, vallen);
int le_len = 1+4+4+keylen+vallen; int le_len = 1+4+4+keylen+vallen;
assert(le_off + le_len == lbuf->dbuf.off); invariant(le_off + le_len == lbuf->dbuf.off);
u_int32_t this_x = x1764_memory(lbuf->dbuf.buf + le_off, le_len); u_int32_t this_x = x1764_memory(lbuf->dbuf.buf + le_off, le_len);
u_int32_t this_prod = lbuf->rand4fingerprint * this_x; u_int32_t this_prod = lbuf->rand4fingerprint * this_x;
lbuf->local_fingerprint += this_prod; lbuf->local_fingerprint += this_prod;
...@@ -2331,7 +2331,7 @@ static void add_pair_to_leafnode (struct leaf_buf *lbuf, unsigned char *key, int ...@@ -2331,7 +2331,7 @@ static void add_pair_to_leafnode (struct leaf_buf *lbuf, unsigned char *key, int
} }
static int write_literal(struct dbout *out, void*data, size_t len) { static int write_literal(struct dbout *out, void*data, size_t len) {
assert(out->current_off%4096==0); invariant(out->current_off%4096==0);
int result = toku_os_write(out->fd, data, len); int result = toku_os_write(out->fd, data, len);
if (result == 0) if (result == 0)
out->current_off+=len; out->current_off+=len;
...@@ -2470,7 +2470,7 @@ static int write_translation_table (struct dbout *out, long long *off_of_transla ...@@ -2470,7 +2470,7 @@ static int write_translation_table (struct dbout *out, long long *off_of_transla
} }
unsigned int checksum = x1764_memory(ttable.buf, ttable.off); unsigned int checksum = x1764_memory(ttable.buf, ttable.off);
putbuf_int32(&ttable, checksum); putbuf_int32(&ttable, checksum);
assert(bt_size_on_disk==ttable.off); invariant(bt_size_on_disk==ttable.off);
int result = toku_os_pwrite(out->fd, ttable.buf, ttable.off, off_of_translation); int result = toku_os_pwrite(out->fd, ttable.buf, ttable.off, off_of_translation);
dbuf_destroy(&ttable); dbuf_destroy(&ttable);
*off_of_translation_p = off_of_translation; *off_of_translation_p = off_of_translation;
...@@ -2610,7 +2610,7 @@ static void write_nonleaf_node (BRTLOADER bl, struct dbout *out, int64_t blocknu ...@@ -2610,7 +2610,7 @@ static void write_nonleaf_node (BRTLOADER bl, struct dbout *out, int64_t blocknu
DBT *pivots, /* must free this array, as well as the things it points t */ DBT *pivots, /* must free this array, as well as the things it points t */
struct subtree_info *subtree_info, int height, const struct descriptor *desc) struct subtree_info *subtree_info, int height, const struct descriptor *desc)
{ {
assert(height>0); invariant(height>0);
int result = 0; int result = 0;
...@@ -2706,7 +2706,7 @@ static int write_nonleaves (BRTLOADER bl, FIDX pivots_fidx, struct dbout *out, s ...@@ -2706,7 +2706,7 @@ static int write_nonleaves (BRTLOADER bl, FIDX pivots_fidx, struct dbout *out, s
// 3) We put the 16th pivot into the next pivots file. // 3) We put the 16th pivot into the next pivots file.
{ {
int r = fseek(toku_bl_fidx2file(bl, pivots_fidx), 0, SEEK_SET); int r = fseek(toku_bl_fidx2file(bl, pivots_fidx), 0, SEEK_SET);
if (r!=0) { assert(errno!=0); return errno; } if (r!=0) { invariant(errno!=0); return errno; }
} }
FIDX next_pivots_file; FIDX next_pivots_file;
...@@ -2784,7 +2784,7 @@ static int write_nonleaves (BRTLOADER bl, FIDX pivots_fidx, struct dbout *out, s ...@@ -2784,7 +2784,7 @@ static int write_nonleaves (BRTLOADER bl, FIDX pivots_fidx, struct dbout *out, s
} }
} }
if (result == 0) if (result == 0)
assert(n_subtrees_used == sts->n_subtrees); invariant(n_subtrees_used == sts->n_subtrees);
cilk_sync; cilk_sync;
......
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