diff --git a/testing/trino-product-tests-launcher/src/main/java/io/trino/tests/product/launcher/cli/EnvironmentUp.java b/testing/trino-product-tests-launcher/src/main/java/io/trino/tests/product/launcher/cli/EnvironmentUp.java index 3c68f228b20d..c8d4d016f4aa 100644 --- a/testing/trino-product-tests-launcher/src/main/java/io/trino/tests/product/launcher/cli/EnvironmentUp.java +++ b/testing/trino-product-tests-launcher/src/main/java/io/trino/tests/product/launcher/cli/EnvironmentUp.java @@ -33,6 +33,7 @@ import java.io.OutputStream; import java.io.PrintStream; import java.nio.file.Path; +import java.time.Duration; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -111,6 +112,7 @@ public static class Execution private final DockerContainer.OutputMode outputMode; private final Map extraOptions; private final PrintStream printStream; + private final boolean debug; @Inject public Execution(EnvironmentFactory environmentFactory, EnvironmentConfig environmentConfig, EnvironmentOptions options, EnvironmentUpOptions environmentUpOptions, PrintStream printStream) @@ -124,6 +126,7 @@ public Execution(EnvironmentFactory environmentFactory, EnvironmentConfig enviro this.logsDirBase = requireNonNull(environmentUpOptions.logsDirBase, "environmentUpOptions.logsDirBase is null"); this.extraOptions = ImmutableMap.copyOf(requireNonNull(environmentUpOptions.extraOptions, "environmentUpOptions.extraOptions is null")); this.printStream = requireNonNull(printStream, "printStream is null"); + this.debug = options.debug; } @Override @@ -139,6 +142,14 @@ public Integer call() builder.removeContainers(container -> isTrinoContainer(container.getLogicalName())); } + if (debug) { + builder.configureContainers(container -> { + if (isTrinoContainer(container.getLogicalName())) { + container.withStartupTimeout(Duration.ofMillis(Integer.MAX_VALUE)); + } + }); + } + log.info("Creating environment '%s' with configuration %s and options %s", environment, environmentConfig, extraOptions); Environment environment = builder.build(getStandardListeners(environmentLogPath)); environment.start();