From 2bc5c5b748acd7bc23df130db9d42195276404ba Mon Sep 17 00:00:00 2001 From: Boyang Jerry Peng Date: Thu, 7 Feb 2019 14:40:55 -0800 Subject: [PATCH] For integration tests, copy function logs out of container on shutdown for debugging purposes (#3529) --- .../integration/containers/WorkerContainer.java | 14 ++++++++++++++ .../tests/integration/utils/DockerUtils.java | 5 ++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/containers/WorkerContainer.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/containers/WorkerContainer.java index 947acb7b250..a5091b13dae 100644 --- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/containers/WorkerContainer.java +++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/containers/WorkerContainer.java @@ -18,6 +18,8 @@ */ package org.apache.pulsar.tests.integration.containers; +import org.apache.pulsar.tests.integration.utils.DockerUtils; + /** * A pulsar container that runs functions worker. */ @@ -35,4 +37,16 @@ public class WorkerContainer extends PulsarContainer { BROKER_HTTP_PORT, "/admin/v2/worker/cluster"); } + + @Override + protected void beforeStop() { + super.beforeStop(); + if (null != containerId) { + DockerUtils.dumpContainerDirToTargetCompressed( + getDockerClient(), + containerId, + "/pulsar/logs/functions" + ); + } + } } diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/utils/DockerUtils.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/utils/DockerUtils.java index 91fe8ff8de5..c7e2984643d 100644 --- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/utils/DockerUtils.java +++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/utils/DockerUtils.java @@ -24,6 +24,7 @@ import com.github.dockerjava.api.DockerClient; import com.github.dockerjava.api.async.ResultCallback; import com.github.dockerjava.api.command.InspectContainerResponse; import com.github.dockerjava.api.command.InspectExecResponse; +import com.github.dockerjava.api.exception.NotFoundException; import com.github.dockerjava.api.model.ContainerNetwork; import com.github.dockerjava.api.model.Frame; import com.github.dockerjava.api.model.StreamType; @@ -140,7 +141,9 @@ public class DockerUtils { read = dockerStream.read(block, 0, READ_BLOCK_SIZE); } } catch (RuntimeException|IOException e) { - LOG.error("Error reading dir from container {}", containerName, e); + if (!(e instanceof NotFoundException)) { + LOG.error("Error reading dir from container {}", containerName, e); + } } } -- GitLab