From d279ea44cedc355c5dc574d2fd6edfb5e2088410 Mon Sep 17 00:00:00 2001 From: Martin Kobetic Date: Fri, 9 May 2014 13:35:00 +0000 Subject: add asserts for detecting pgid high watermark overflow --- node.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'node.go') diff --git a/node.go b/node.go index 1bc889d..14bf136 100644 --- a/node.go +++ b/node.go @@ -98,6 +98,8 @@ func (n *node) prevSibling() *node { // put inserts a key/value. func (n *node) put(oldKey, newKey, value []byte, pgid pgid, flags uint32) { + _assert(pgid < n.bucket.tx.meta.pgid, "pgid (%d) above high water mark (%d)", pgid, n.bucket.tx.meta.pgid) + // Find insertion index. index := sort.Search(len(n.inodes), func(i int) bool { return bytes.Compare(n.inodes[i].key, oldKey) != -1 }) @@ -278,6 +280,7 @@ func (n *node) spill() error { } // Write the node. + _assert(p.id < tx.meta.pgid, "pgid (%d) above high water mark (%d)", p.id, tx.meta.pgid) node.pgid = p.id node.write(p) @@ -307,6 +310,7 @@ func (n *node) spill() error { } // Write the new root. + _assert(p.id < tx.meta.pgid, "pgid (%d) above high water mark (%d)", p.id, tx.meta.pgid) parent.pgid = p.id parent.write(p) } -- cgit v1.2.3