diff options
author | Geir Storli <geirst@verizonmedia.com> | 2021-09-07 15:08:32 +0000 |
---|---|---|
committer | Geir Storli <geirst@verizonmedia.com> | 2021-09-07 15:08:32 +0000 |
commit | 7d3b6bac3c312e1bcc60228ab9b15af44d07c779 (patch) | |
tree | a69b9bbda6ea786594ff662ecc8c2f32bc00934e | |
parent | e32c756d49d4fbb31dafa13de52904efdfe51e56 (diff) |
Add safeguards for num distributor stripes being set to -1.
3 files changed, 13 insertions, 8 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java b/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java index f0a2e52f6bf..b5fe4ddee41 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/Distributor.java @@ -49,14 +49,18 @@ public class Distributor extends ContentNode implements StorDistributormanagerCo } private int tuneNumDistributorStripes() { - if ((numDistributorStripesFlag == -1) && (getHostResource() != null)) { - int cores = (int)getHostResource().realResources().vcpu(); - if (cores <= 16) { - return 1; - } else if (cores <= 64) { - return 2; + if (numDistributorStripesFlag == -1) { + if (getHostResource() != null) { + int cores = (int)getHostResource().realResources().vcpu(); + if (cores <= 16) { + return 1; + } else if (cores <= 64) { + return 2; + } else { + return 4; + } } else { - return 4; + return 1; } } return numDistributorStripesFlag; diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java index c79238ed1d6..c7c02c581f9 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java @@ -1079,6 +1079,7 @@ public class ContentClusterTest extends ContentBaseTest { assertEquals(0, resolveNumDistributorStripesConfigWithFeatureFlag(new TestProperties(), Optional.empty())); assertEquals(0, resolveNumDistributorStripesConfigWithFeatureFlag(0)); assertEquals(1, resolveNumDistributorStripesConfigWithFeatureFlag(1)); + assertEquals(1, resolveNumDistributorStripesConfigWithFeatureFlag(-1)); assertEquals(4, resolveNumDistributorStripesConfigWithFeatureFlag(4)); } diff --git a/storageserver/src/vespa/storageserver/app/distributorprocess.cpp b/storageserver/src/vespa/storageserver/app/distributorprocess.cpp index 45802df8866..9b66500cef4 100644 --- a/storageserver/src/vespa/storageserver/app/distributorprocess.cpp +++ b/storageserver/src/vespa/storageserver/app/distributorprocess.cpp @@ -56,7 +56,7 @@ DistributorProcess::setupConfig(milliseconds subscribeTimeout) auto distr_cfg = config::ConfigGetter<StorDistributormanagerConfig>::getConfig( _configUri.getConfigId(), _configUri.getContext(), subscribeTimeout); - _num_distributor_stripes = adjusted_num_distributor_stripes(distr_cfg->numDistributorStripes); + _num_distributor_stripes = adjusted_num_distributor_stripes(std::max(distr_cfg->numDistributorStripes, 0)); _distributorConfigHandler = _configSubscriber.subscribe<StorDistributormanagerConfig>(_configUri.getConfigId(), subscribeTimeout); _visitDispatcherConfigHandler = _configSubscriber.subscribe<StorVisitordispatcherConfig>(_configUri.getConfigId(), subscribeTimeout); Process::setupConfig(subscribeTimeout); |