From 794f54183e8ce2dc3b45cc0a92c00fa08ebfae10 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Mon, 10 Dec 2018 17:21:34 +0000 Subject: This will enable the first assert to be trigger a core dump. The others will log a stacktrace per 1000 failed asserts. --- searchlib/src/vespa/searchlib/datastore/entryref.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'searchlib') diff --git a/searchlib/src/vespa/searchlib/datastore/entryref.h b/searchlib/src/vespa/searchlib/datastore/entryref.h index 433c260de32..f4dec5dbef3 100644 --- a/searchlib/src/vespa/searchlib/datastore/entryref.h +++ b/searchlib/src/vespa/searchlib/datastore/entryref.h @@ -3,6 +3,7 @@ #pragma once #include +#include namespace search::datastore { @@ -28,7 +29,11 @@ class EntryRefT : public EntryRef { public: EntryRefT() : EntryRef() {} EntryRefT(uint64_t offset_, uint32_t bufferId_) : - EntryRef((offset_ << BufferBits) + bufferId_) {} + EntryRef((offset_ << BufferBits) + bufferId_) + { + ASSERT_ONCE_OR_LOG(offset_ < offsetSize(), "EntryRefT.offset_overflow", 10000); + ASSERT_ONCE_OR_LOG(bufferId_ < numBuffers(), "EntryRefT.bufferId_overflow", 10000); + } EntryRefT(const EntryRef & ref_) : EntryRef(ref_.ref()) {} uint32_t hash() const { return offset() + (bufferId() << OffsetBits); } uint64_t offset() const { return _ref >> BufferBits; } -- cgit v1.2.3