This is an automated email from the ASF dual-hosted git repository.
tuglu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/master by this push:
new a2ed22c27c2 Publish test container logs on failure and fix broken
KinesisFaultToleranceTest
a2ed22c27c2 is described below
commit a2ed22c27c2dd0feadeefce547e45cda7d24e871
Author: jtuglu1 <[email protected]>
AuthorDate: Wed Mar 11 11:02:31 2026 -0700
Publish test container logs on failure and fix broken
KinesisFaultToleranceTest
Clone of https://github.com/apache/druid/pull/19126.
---
.github/workflows/docker-tests.yml | 10 ++++++++++
.../testing/embedded/docker/DruidContainerResource.java | 16 ++++++++++++++--
.../testing/embedded/indexing/StreamIndexTestBase.java | 2 +-
.../druid/testing/embedded/EmbeddedDruidCluster.java | 11 +++++++++++
.../testing/embedded/junit5/EmbeddedClusterTestBase.java | 1 +
5 files changed, 37 insertions(+), 3 deletions(-)
diff --git a/.github/workflows/docker-tests.yml
b/.github/workflows/docker-tests.yml
index 8a54032a246..dd77515f7b9 100644
--- a/.github/workflows/docker-tests.yml
+++ b/.github/workflows/docker-tests.yml
@@ -51,6 +51,16 @@ jobs:
run: .github/scripts/run_docker-tests
timeout-minutes: 60
+ - name: Tar Druid container logs
+ if: ${{ failure() && steps.run-it.conclusion == 'failure' }}
+ run: tar cvzf ./druid-container-logs.tgz
./embedded-tests/druid-container-logs
+
+ - name: Upload Druid container logs to GitHub
+ if: ${{ failure() && steps.run-it.conclusion == 'failure' }}
+ uses: actions/upload-artifact@v4
+ with:
+ name: failure-druid-container-logs
+ path: druid-container-logs.tgz
- name: Collect docker logs on failure
if: ${{ failure() && steps.run-it.conclusion == 'failure' }}
run: |
diff --git
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/docker/DruidContainerResource.java
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/docker/DruidContainerResource.java
index 38383c9b088..1d9890d863b 100644
---
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/docker/DruidContainerResource.java
+++
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/docker/DruidContainerResource.java
@@ -154,7 +154,9 @@ public class DruidContainerResource extends
TestcontainerResource<DruidContainer
);
// Mount directories used by this container for easier debugging with
service logs
- this.containerDirectory = cluster.getTestFolder().getOrCreateFolder(name);
+ final File clusterDirectory = new File("druid-container-logs",
cluster.getTestClassName());
+ this.containerDirectory = new File(clusterDirectory, name);
+ cleanDirectory(containerDirectory);
final File logDirectory = new File(containerDirectory, "log");
this.serviceLogsDirectory = new MountedDir(new File("/opt/druid/log"),
logDirectory);
@@ -179,7 +181,7 @@ public class DruidContainerResource extends
TestcontainerResource<DruidContainer
log.info(
"Starting Druid container[%s] with image[%s], exposed ports[%s] and
mounted directory[%s].",
- name, imageName, Arrays.toString(command.getExposedPorts()),
containerDirectory
+ name, imageName, Arrays.toString(command.getExposedPorts()),
containerDirectory.getAbsolutePath()
);
setCommonProperties(container);
@@ -235,6 +237,16 @@ public class DruidContainerResource extends
TestcontainerResource<DruidContainer
}
}
+ private static void cleanDirectory(File dir)
+ {
+ try {
+ FileUtils.deleteDirectory(dir);
+ }
+ catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
@Override
public String toString()
{
diff --git
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/indexing/StreamIndexTestBase.java
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/indexing/StreamIndexTestBase.java
index ea9dd037bbe..38797ae14fc 100644
---
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/indexing/StreamIndexTestBase.java
+++
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/indexing/StreamIndexTestBase.java
@@ -117,7 +117,7 @@ public abstract class StreamIndexTestBase extends
EmbeddedClusterTestBase
Period.millis(10),
Period.millis(10),
true,
- Period.seconds(5),
+ Period.seconds(60),
null, null, null, null, null, null, null, null,
false,
null
diff --git
a/services/src/test/java/org/apache/druid/testing/embedded/EmbeddedDruidCluster.java
b/services/src/test/java/org/apache/druid/testing/embedded/EmbeddedDruidCluster.java
index 182d11905d5..cb428d30276 100644
---
a/services/src/test/java/org/apache/druid/testing/embedded/EmbeddedDruidCluster.java
+++
b/services/src/test/java/org/apache/druid/testing/embedded/EmbeddedDruidCluster.java
@@ -80,6 +80,7 @@ public class EmbeddedDruidCluster implements EmbeddedResource
private final List<Class<? extends DruidModule>> extensionModules = new
ArrayList<>();
private final Properties commonProperties = new Properties();
+ private String testClassName;
private EmbeddedHostname embeddedHostname = EmbeddedHostname.localhost();
private boolean startedFirstDruidServer = false;
@@ -249,6 +250,16 @@ public class EmbeddedDruidCluster implements
EmbeddedResource
return this;
}
+ public void setTestClassName(String testClassName)
+ {
+ this.testClassName = testClassName;
+ }
+
+ public String getTestClassName()
+ {
+ return testClassName;
+ }
+
/**
* Hostname to be used for embedded services (both Druid or external).
*/
diff --git
a/services/src/test/java/org/apache/druid/testing/embedded/junit5/EmbeddedClusterTestBase.java
b/services/src/test/java/org/apache/druid/testing/embedded/junit5/EmbeddedClusterTestBase.java
index f370da1ff08..6c9fe00f627 100644
---
a/services/src/test/java/org/apache/druid/testing/embedded/junit5/EmbeddedClusterTestBase.java
+++
b/services/src/test/java/org/apache/druid/testing/embedded/junit5/EmbeddedClusterTestBase.java
@@ -94,6 +94,7 @@ public abstract class EmbeddedClusterTestBase
protected void setup() throws Exception
{
cluster = createCluster();
+ cluster.setTestClassName(getClass().getSimpleName());
cluster.start();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]