This is an automated email from the ASF dual-hosted git repository.
abstractdog pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push:
new 4619ff8cc02 HIVE-29462: Log start/init times for Docker resources
(#6321)
4619ff8cc02 is described below
commit 4619ff8cc02b57a771d149b47a1c59db3b001f45
Author: Bodor Laszlo <[email protected]>
AuthorDate: Sun Apr 19 10:00:38 2026 +0200
HIVE-29462: Log start/init times for Docker resources (#6321)
---
.../apache/hadoop/hive/ql/externalDB/DockerizedDatabase.java | 11 ++++++++---
.../hadoop/hive/metastore/dbinstall/rules/DatabaseRule.java | 3 ++-
.../apache/hadoop/hive/metastore/dbinstall/rules/Derby.java | 2 +-
.../apache/hadoop/hive/metastore/dbinstall/rules/Mariadb.java | 4 +---
.../apache/hadoop/hive/metastore/dbinstall/rules/Mssql.java | 4 +---
.../apache/hadoop/hive/metastore/dbinstall/rules/Mysql.java | 5 ++---
.../apache/hadoop/hive/metastore/dbinstall/rules/Oracle.java | 5 ++---
.../hadoop/hive/metastore/dbinstall/rules/Postgres.java | 4 +---
8 files changed, 18 insertions(+), 20 deletions(-)
diff --git
a/itests/util/src/main/java/org/apache/hadoop/hive/ql/externalDB/DockerizedDatabase.java
b/itests/util/src/main/java/org/apache/hadoop/hive/ql/externalDB/DockerizedDatabase.java
index 61ab387d866..7c444c6b538 100644
---
a/itests/util/src/main/java/org/apache/hadoop/hive/ql/externalDB/DockerizedDatabase.java
+++
b/itests/util/src/main/java/org/apache/hadoop/hive/ql/externalDB/DockerizedDatabase.java
@@ -96,11 +96,14 @@ private ProcessResults runCmdAndPrintStreams(String[] cmd,
long secondsToWait)
public void start() throws Exception {
runCmdAndPrintStreams(buildRmCmd(), 600);
+ long startTime = System.currentTimeMillis();
if (runCmdAndPrintStreams(buildRunCmd(), 600).rc != 0) {
printDockerEvents();
throw new RuntimeException("Unable to start docker container");
}
- long startTime = System.currentTimeMillis();
+ // 1. Time measured for the docker run command to complete.
+ long initStartTime = System.currentTimeMillis();
+ LOG.info("Started docker container in {} ms, waiting for init...",
initStartTime - startTime);
ProcessResults pr;
do {
Thread.sleep(1000);
@@ -109,13 +112,15 @@ public void start() throws Exception {
printDockerEvents();
throw new RuntimeException("Failed to get docker logs");
}
- } while (startTime + MAX_STARTUP_WAIT >= System.currentTimeMillis() &&
!isContainerReady(pr));
- if (startTime + MAX_STARTUP_WAIT < System.currentTimeMillis()) {
+ } while (initStartTime + MAX_STARTUP_WAIT >= System.currentTimeMillis() &&
!isContainerReady(pr));
+ if (initStartTime + MAX_STARTUP_WAIT < System.currentTimeMillis()) {
printDockerEvents();
throw new RuntimeException(
String.format("Container initialization failed within %d seconds.
Please check the hive logs.",
MAX_STARTUP_WAIT / 1000));
}
+ // 2. Time measured for Docker to be fully initialized (i.e., when the DB
is actually ready to use from the start).
+ LOG.info("Initialized docker container in {} ms",
System.currentTimeMillis() - initStartTime);
super.start();
}
diff --git
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/DatabaseRule.java
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/DatabaseRule.java
index a5da05ed6fe..a9d4b0f3dc2 100644
---
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/DatabaseRule.java
+++
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/DatabaseRule.java
@@ -65,7 +65,8 @@ public String getDb() {
public abstract String getInitialJdbcUrl();
@Override
- public abstract void before() throws Exception;
+ public abstract void before();
+
@Override
public abstract void after();
diff --git
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Derby.java
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Derby.java
index 6054b29c5ff..fe0cdae730d 100644
---
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Derby.java
+++
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Derby.java
@@ -82,7 +82,7 @@ public String getDb() {
};
@Override
- public void before() throws Exception {
+ public void before() {
MetastoreSchemaTool.setHomeDirForTesting();
}
diff --git
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Mariadb.java
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Mariadb.java
index b2f63789fd3..36f44c1f218 100644
---
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Mariadb.java
+++
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Mariadb.java
@@ -21,13 +21,11 @@
import org.testcontainers.containers.MariaDBContainer;
import org.testcontainers.utility.DockerImageName;
-import java.io.IOException;
-
public class Mariadb extends DatabaseRule {
private final MariaDBContainer<?> container = new
MariaDBContainer<>(DockerImageName.parse("mariadb:11.4"));
@Override
- public void before() throws IOException, InterruptedException {
+ public void before() {
container.start();
}
diff --git
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Mssql.java
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Mssql.java
index 3a9c2b30295..e793e762eb6 100644
---
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Mssql.java
+++
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Mssql.java
@@ -21,8 +21,6 @@
import org.testcontainers.containers.MSSQLServerContainer;
import org.testcontainers.utility.DockerImageName;
-import java.io.IOException;
-
/**
* JUnit TestRule for Mssql.
*/
@@ -31,7 +29,7 @@ public class Mssql extends DatabaseRule {
new
MSSQLServerContainer<>(DockerImageName.parse("mcr.microsoft.com/mssql/server:2019-latest")).acceptLicense();
@Override
- public void before() throws IOException, InterruptedException {
+ public void before() {
container.start();
}
diff --git
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Mysql.java
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Mysql.java
index 4adbcc30588..7c8d211ce57 100644
---
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Mysql.java
+++
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Mysql.java
@@ -20,16 +20,15 @@
import org.testcontainers.containers.MySQLContainer;
import org.testcontainers.utility.DockerImageName;
-import java.io.IOException;
-
/**
* JUnit TestRule for MySql.
*/
public class Mysql extends DatabaseRule {
private final MySQLContainer<?> container =
new
MySQLContainer<>(DockerImageName.parse("mysql:8.4.3")).withConfigurationOverride("");
+
@Override
- public void before() throws IOException, InterruptedException {
+ public void before() {
container.start();
}
diff --git
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Oracle.java
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Oracle.java
index a36612cc8ff..7cc0a369bd6 100644
---
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Oracle.java
+++
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Oracle.java
@@ -20,8 +20,6 @@
import org.testcontainers.containers.OracleContainer;
import org.testcontainers.utility.DockerImageName;
-import java.io.IOException;
-
/**
* JUnit TestRule for Oracle.
*/
@@ -29,8 +27,9 @@ public class Oracle extends DatabaseRule {
private final DockerImageName name =
DockerImageName.parse("abstractdog/oracle-xe:18.4.0-slim").asCompatibleSubstituteFor("gvenzl/oracle-xe");
private final OracleContainer container = new
OracleContainer(name).withEnv("ORACLE_PASSWORD", "oracle");
+
@Override
- public void before() throws IOException, InterruptedException {
+ public void before() {
container.start();
}
diff --git
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Postgres.java
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Postgres.java
index 8844898ee70..0e75eb10751 100644
---
a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Postgres.java
+++
b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/dbinstall/rules/Postgres.java
@@ -20,8 +20,6 @@
import org.testcontainers.containers.PostgreSQLContainer;
import org.testcontainers.utility.DockerImageName;
-import java.io.IOException;
-
/**
* JUnit TestRule for Postgres.
*/
@@ -37,7 +35,7 @@ protected Postgres(DockerImageName dockerImageName) {
}
@Override
- public void before() throws IOException, InterruptedException {
+ public void before() {
container.start();
}