From f9a0c0db69283388e7943c848b8a07b6091ef299 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Thu, 30 Sep 2021 12:18:53 +0200 Subject: Don't wait for prepare barrier to complete when doing dry-run When doing dry-run, we don't write to zookeeper, so do not wait for completion, as that will never happen. --- .../com/yahoo/vespa/config/server/session/SessionRepository.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'configserver/src') diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java index 43a684c1fba..083cb535bfa 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java @@ -1,4 +1,4 @@ -// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.session; import com.google.common.collect.HashMultiset; @@ -236,14 +236,16 @@ public class SessionRepository { logger.log(Level.FINE, "Created application " + params.getApplicationId()); long sessionId = session.getSessionId(); SessionZooKeeperClient sessionZooKeeperClient = createSessionZooKeeperClient(sessionId); - CompletionWaiter waiter = sessionZooKeeperClient.createPrepareWaiter(); + Optional waiter = params.isDryRun() + ? Optional.empty() + : Optional.of(sessionZooKeeperClient.createPrepareWaiter()); Optional activeApplicationSet = getActiveApplicationSet(params.getApplicationId()); ConfigChangeActions actions = sessionPreparer.prepare(applicationRepo.getHostValidator(), logger, params, activeApplicationSet, now, getSessionAppDir(sessionId), session.getApplicationPackage(), sessionZooKeeperClient) .getConfigChangeActions(); setPrepared(session); - waiter.awaitCompletion(params.getTimeoutBudget().timeLeft()); + waiter.ifPresent(w -> w.awaitCompletion(params.getTimeoutBudget().timeLeft())); return actions; } -- cgit v1.2.3