summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-12-05 14:55:08 +0100
committerHarald Musum <musum@yahooinc.com>2023-12-05 14:55:08 +0100
commitd38a3b708dba50ab7d3ade75f6c26971dd0f25eb (patch)
tree1c7063b9002eca5bb56ba15c7b0d92ce535dbb73
parent77f281bef1c7bc7cc5153e3b6085d752fbac11ad (diff)
Make sure to set JVM options also when there is no nodes element in services.xml
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java1
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/container/xml/JvmOptionsTest.java19
2 files changed, 20 insertions, 0 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
index 5ffd34c6557..104d19d8953 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java
@@ -955,6 +955,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder<ContainerModel> {
Element nodesElement = XML.getChild(containerElement, "nodes");
if (nodesElement == null) {
cluster.addContainers(allocateWithoutNodesTag(cluster, context));
+ cluster.setJvmGCOptions(buildJvmGCOptions(context, null));
} else {
List<ApplicationContainer> nodes = createNodes(cluster, containerElement, nodesElement, context);
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/JvmOptionsTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/JvmOptionsTest.java
index e60052cb2a5..10adca12f91 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/JvmOptionsTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/JvmOptionsTest.java
@@ -187,6 +187,25 @@ public class JvmOptionsTest extends ContainerModelBuilderTestBase {
"Invalid or misplaced JVM GC options in services.xml: -XX:+UseConcMarkSweepGC");
}
+ @Test
+ void verify_no_option_no_nodes_element_gives_value_from_feature_flag() throws IOException, SAXException {
+ String servicesXml = """
+ <container version='1.0'>
+ <search/>
+ </container>
+ """;
+ ApplicationPackage applicationPackage = new MockApplicationPackage.Builder().withServices(servicesXml).build();
+ // Need to create VespaModel to make deploy properties have effect
+ VespaModel model = new VespaModel(new NullConfigModelRegistry(), new DeployState.Builder()
+ .applicationPackage(applicationPackage)
+ .properties(new TestProperties().setJvmGCOptions("-XX:+UseParNewGC"))
+ .build());
+ QrStartConfig.Builder qrStartBuilder = new QrStartConfig.Builder();
+ model.getConfig(qrStartBuilder, "container/container.0");
+ QrStartConfig qrStartConfig = new QrStartConfig(qrStartBuilder);
+ assertEquals("-XX:+UseParNewGC", qrStartConfig.jvm().gcopts());
+ }
+
private void verifyLoggingOfJvmGcOptions(boolean isHosted, String override, String... invalidOptions) throws IOException, SAXException {
verifyLogMessage(isHosted, "gc-options", override, invalidOptions);
}