Skip to content

Commit 3a25f03

Browse files
[8.18] Unmute docker tests, add more logging and increase startup timeout (#131203) (#131295)
* Unmute docker tests, add more logging and increase startup timeout (#131203) Unmuting 33 DockerTests with added additional logging on failures. Also, bumping docker startup timeout to account for slow security auto-configuration, and additionally moving CA certificates inside the retry while loop. Resolves #129808 Resolves #123437 Resolves #120911 Resolves #120914 Resolves #120910 Resolves #120918 Resolves #120925 Resolves #124990 Resolves #116636 Resolves #125680 Resolves #116147 Resolves #126232 Resolves #126145 Resolves #116866 Resolves #126936 Resolves #127081 Resolves #127158 Resolves #127138 Resolves #128018 Resolves #128031 Resolves #128110 Resolves #128006 Resolves #128174 Resolves #128144 Resolves #128165 Resolves #128075 Resolves #128117 Resolves #128121 Resolves #128115 Resolves #128230 Resolves #128120 Resolves #128996 Resolves #128867 (cherry picked from commit 4806156) # Conflicts: # muted-tests.yml * call dumpDebug
1 parent cd9f7da commit 3a25f03

File tree

4 files changed

+23
-10
lines changed

4 files changed

+23
-10
lines changed

muted-tests.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -369,8 +369,6 @@ tests:
369369
- class: org.elasticsearch.xpack.test.rest.XPackRestIT
370370
method: test {p0=snapshot/20_operator_privileges_disabled/Operator only settings can be set and restored by non-operator user when operator privileges is disabled}
371371
issue: https://github.com/elastic/elasticsearch/issues/120973
372-
- class: org.elasticsearch.packaging.test.DockerTests
373-
issue: https://github.com/elastic/elasticsearch/issues/120978
374372
- class: org.elasticsearch.xpack.security.authc.service.ServiceAccountIT
375373
method: testAuthenticateShouldNotFallThroughInCaseOfFailure
376374
issue: https://github.com/elastic/elasticsearch/issues/120902
@@ -484,4 +482,4 @@ tests:
484482
issue: https://github.com/elastic/elasticsearch/issues/115528
485483
- class: org.elasticsearch.packaging.test.EnrollmentProcessTests
486484
method: test20DockerAutoFormCluster
487-
issue: https://github.com/elastic/elasticsearch/issues/128113
485+
issue: https://github.com/elastic/elasticsearch/issues/128113

qa/packaging/src/test/java/org/elasticsearch/packaging/test/PackagingTestCase.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,10 @@ public abstract class PackagingTestCase extends Assert {
145145
@Override
146146
protected void failed(Throwable e, Description description) {
147147
failed = true;
148+
if (installation != null && installation.distribution.isDocker()) {
149+
logger.warn("Test {} failed. Printing logs for failed test...", description.getMethodName());
150+
dumpDebug();
151+
}
148152
}
149153
};
150154

qa/packaging/src/test/java/org/elasticsearch/packaging/util/ServerUtils.java

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,19 @@ private static HttpResponse execute(Request request, String username, String pas
150150
executor.auth(username, password);
151151
executor.authPreemptive(new HttpHost("localhost", 9200));
152152
}
153-
return executor.execute(request).returnResponse();
153+
try {
154+
return executor.execute(request).returnResponse();
155+
} catch (Exception e) {
156+
logger.warn(
157+
"Failed to execute request [{}] with username/password [{}/{}] and caCert [{}]",
158+
request.toString(),
159+
username,
160+
password,
161+
caCert,
162+
e
163+
);
164+
throw e;
165+
}
154166
}
155167

156168
// polls every two seconds for Elasticsearch to be running on 9200
@@ -238,14 +250,13 @@ public static void waitForElasticsearch(
238250
long timeElapsed = 0;
239251
boolean started = false;
240252
Throwable thrownException = null;
241-
if (caCert == null) {
242-
caCert = getCaCert(installation);
243-
}
244253

245254
while (started == false && timeElapsed < waitTime) {
246255
if (System.currentTimeMillis() - lastRequest > requestInterval) {
256+
if (caCert == null) {
257+
caCert = getCaCert(installation);
258+
}
247259
try {
248-
249260
final HttpResponse response = execute(
250261
Request.Get((caCert != null ? "https" : "http") + "://localhost:9200/_cluster/health")
251262
.connectTimeout((int) timeoutLength)
@@ -276,7 +287,7 @@ public static void waitForElasticsearch(
276287
}
277288
started = true;
278289

279-
} catch (IOException e) {
290+
} catch (Exception e) {
280291
if (thrownException == null) {
281292
thrownException = e;
282293
} else {

qa/packaging/src/test/java/org/elasticsearch/packaging/util/docker/Docker.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public class Docker {
7373
public static final Shell sh = new Shell();
7474
public static final DockerShell dockerShell = new DockerShell();
7575
public static final int STARTUP_SLEEP_INTERVAL_MILLISECONDS = 1000;
76-
public static final int STARTUP_ATTEMPTS_MAX = 30;
76+
public static final int STARTUP_ATTEMPTS_MAX = 45;
7777

7878
private static final String ELASTICSEARCH_FULL_CLASSNAME = "org.elasticsearch.bootstrap.Elasticsearch";
7979
private static final String FIND_ELASTICSEARCH_PROCESS = "for pid in $(ps -eo pid,comm | grep java | awk '\\''{print $1}'\\''); "

0 commit comments

Comments
 (0)