diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java index 7a459e4f29f8..e8c92d3e3f6e 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java @@ -179,6 +179,7 @@ private Optional deployReal(RunId id, boolean setTheStage, DualLogger controller.jobController().run(id) .stepInfo(setTheStage ? deployInitialReal : deployReal).get() .startTime().get(), + id, logger) .filter(result -> { // If no tester cert, or deployment failed, propagate original result. @@ -200,10 +201,11 @@ private Optional deployTester(RunId id, DualLogger logger) { controller.jobController().run(id) .stepInfo(deployTester).get() .startTime().get(), + id, logger); } - private Optional deploy(Supplier deployment, Instant startTime, DualLogger logger) { + private Optional deploy(Supplier deployment, Instant startTime, RunId id, DualLogger logger) { try { DeploymentResult result = deployment.get(); logger.logAll(result.log().stream() @@ -246,6 +248,7 @@ private Optional deploy(Supplier deployment, Instan } case LOAD_BALANCER_NOT_READY, PARENT_HOST_NOT_READY -> { logger.log(e.message()); // Consider splitting these messages in summary and details, on config server. + controller.jobController().locked(id, run -> run.sleepingUntil(startTime.plusSeconds(300))); return result; } case NODE_ALLOCATION_FAILURE -> { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunnerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunnerTest.java index 7687a1561a44..9bf762d2f99d 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunnerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunnerTest.java @@ -516,6 +516,7 @@ public void realDeploymentRequiresForTesterCert() { assertEquals(oldTrusted, tester.configServer().application(app.instanceId(), id.type().zone()).get().applicationPackage().trustedCertificates()); tester.configServer().throwOnNextPrepare(null); + tester.clock().advance(Duration.ofSeconds(300)); tester.runner().run(); assertEquals(succeeded, tester.jobs().run(id).stepStatuses().get(Step.deployTester)); assertEquals(succeeded, tester.jobs().run(id).stepStatuses().get(Step.deployReal));