summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-12-03 16:35:42 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-12-03 16:35:42 +0000
commit5aea90d49290743d1e67077bd006067d86318f7f (patch)
treea2604d90564c07503043326fa6859e158f3646e5 /searchlib
parent65dea59d21e36a80b733c368b0bdcb761a1a250c (diff)
Throw exception on illegal config and fail early.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/transactionlog/translogclient_test.cpp11
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/domainconfig.cpp10
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/domainconfig.h2
3 files changed, 19 insertions, 4 deletions
diff --git a/searchlib/src/tests/transactionlog/translogclient_test.cpp b/searchlib/src/tests/transactionlog/translogclient_test.cpp
index 744f00527bc..de8f9e5c462 100644
--- a/searchlib/src/tests/transactionlog/translogclient_test.cpp
+++ b/searchlib/src/tests/transactionlog/translogclient_test.cpp
@@ -5,6 +5,7 @@
#include <vespa/vespalib/objects/identifiable.h>
#include <vespa/searchlib/index/dummyfileheadercontext.h>
#include <vespa/document/util/bytebuffer.h>
+#include <vespa/vespalib/util/exceptions.h>
#include <vespa/fastos/file.h>
#include <thread>
@@ -568,10 +569,14 @@ TEST("partialUpdateTest") {
}
TEST("testCrcVersions") {
- createAndFillDomain("ccitt_crc32", Encoding(Encoding::Crc::ccitt_crc32, Encoding::Compression::none), 0);
- createAndFillDomain("xxh64", Encoding(Encoding::Crc::xxh64, Encoding::Compression::none), 1);
+ try {
+ createAndFillDomain("ccitt_crc32", Encoding(Encoding::Crc::ccitt_crc32, Encoding::Compression::none), 0);
+ ASSERT_TRUE(false);
+ } catch (vespalib::IllegalArgumentException & e) {
+ EXPECT_TRUE(e.getMessage().find("Compression:none is not allowed for the tls") != vespalib::string::npos);
+ }
+ createAndFillDomain("xxh64", Encoding(Encoding::Crc::xxh64, Encoding::Compression::zstd), 0);
- verifyDomain("ccitt_crc32");
verifyDomain("xxh64");
}
diff --git a/searchlib/src/vespa/searchlib/transactionlog/domainconfig.cpp b/searchlib/src/vespa/searchlib/transactionlog/domainconfig.cpp
index f37e9b4876a..1f414eaa6d3 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/domainconfig.cpp
+++ b/searchlib/src/vespa/searchlib/transactionlog/domainconfig.cpp
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "domainconfig.h"
+#include <vespa/vespalib/util/exceptions.h>
namespace search::transactionlog {
@@ -12,4 +13,13 @@ DomainConfig::DomainConfig()
_chunkSizeLimit(0x40000) // 256k
{ }
+DomainConfig &
+DomainConfig::setEncoding(Encoding v) {
+ if (v.getCompression() == Encoding::none) {
+ throw vespalib::IllegalArgumentException("Compression:none is not allowed for the tls", VESPA_STRLOC);
+ }
+ _encoding = v;
+ return *this;
+}
+
}
diff --git a/searchlib/src/vespa/searchlib/transactionlog/domainconfig.h b/searchlib/src/vespa/searchlib/transactionlog/domainconfig.h
index 186227ae958..7701896fa92 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/domainconfig.h
+++ b/searchlib/src/vespa/searchlib/transactionlog/domainconfig.h
@@ -11,7 +11,7 @@ class DomainConfig {
public:
using duration = vespalib::duration;
DomainConfig();
- DomainConfig & setEncoding(Encoding v) { _encoding = v; return *this; }
+ DomainConfig & setEncoding(Encoding v);
DomainConfig & setPartSizeLimit(size_t v) { _partSizeLimit = v; return *this; }
DomainConfig & setChunkSizeLimit(size_t v) { _chunkSizeLimit = v; return *this; }
DomainConfig & setCompressionLevel(uint8_t v) { _compressionLevel = v; return *this; }