Commit 9ca99211 authored by Bradley C. Kuszmaul's avatar Bradley C. Kuszmaul Committed by Yoni Fogel

D'oh. I forgot to check in the change that Fixes #1426.

git-svn-id: file:///svn/toku/tokudb@9252 c7de825b-a66e-492c-adef-691d508d4ae1
parent d23e5613
...@@ -1993,6 +1993,8 @@ balance_leaf_nodes (BRTNODE a, BRTNODE b, struct kv_pair **splitk) ...@@ -1993,6 +1993,8 @@ balance_leaf_nodes (BRTNODE a, BRTNODE b, struct kv_pair **splitk)
*splitk = kv_pair_malloc(le_any_key(le), le_any_keylen(le), 0, 0); *splitk = kv_pair_malloc(le_any_key(le), le_any_keylen(le), 0, 0);
} }
} }
a->dirty = 1; // make them dirty even if nothing actually happened.
b->dirty = 1;
// Boundary case: If both were empty then the loop will fall through. (Generally if they are the same size the loop falls through.) // Boundary case: If both were empty then the loop will fall through. (Generally if they are the same size the loop falls through.)
return 0; return 0;
} }
...@@ -2069,6 +2071,9 @@ maybe_merge_pinned_nonleaf_nodes (BRT t, ...@@ -2069,6 +2071,9 @@ maybe_merge_pinned_nonleaf_nodes (BRT t,
} }
b->local_fingerprint = 0; b->local_fingerprint = 0;
a->dirty = 1;
b->dirty = 1;
fixup_child_fingerprint(parent, childnum_of_parent, a, t, logger); fixup_child_fingerprint(parent, childnum_of_parent, a, t, logger);
// abort(); // don't forget to reuse blocknums // abort(); // don't forget to reuse blocknums
*did_merge = TRUE; *did_merge = TRUE;
...@@ -2100,6 +2105,7 @@ maybe_merge_pinned_nodes (BRT t, ...@@ -2100,6 +2105,7 @@ maybe_merge_pinned_nodes (BRT t,
{ {
assert(a->height == b->height); assert(a->height == b->height);
verify_local_fingerprint_nonleaf(a); verify_local_fingerprint_nonleaf(a);
parent->dirty = 1; // just to make sure
if (a->height == 0) { if (a->height == 0) {
return maybe_merge_pinned_leaf_nodes(t, a, b, parent_splitk, logger, did_merge, splitk); return maybe_merge_pinned_leaf_nodes(t, a, b, parent_splitk, logger, did_merge, splitk);
} else { } else {
...@@ -2200,6 +2206,8 @@ brt_merge_child (BRT t, BRTNODE node, int childnum_to_merge, BOOL *did_io, TOKUL ...@@ -2200,6 +2206,8 @@ brt_merge_child (BRT t, BRTNODE node, int childnum_to_merge, BOOL *did_io, TOKUL
assert(node->u.n.childinfos[childnuma].blocknum.b == childa->thisnodename.b); assert(node->u.n.childinfos[childnuma].blocknum.b == childa->thisnodename.b);
verify_local_fingerprint_nonleaf(node); verify_local_fingerprint_nonleaf(node);
verify_local_fingerprint_nonleaf(childa); verify_local_fingerprint_nonleaf(childa);
childa->dirty = 1; // just to make sure
childb->dirty = 1; // just to make sure
} else { } else {
assert(splitk_kvpair); assert(splitk_kvpair);
// If we didn't merge the nodes, then we need the correct pivot. // If we didn't merge the nodes, then we need the correct pivot.
......
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