Skip to content

Commit 35599fb

Browse files
authored
[Test] Rework detecting elasticsearch process in docker tests (#128013) (#128102)
* [Test] Rework detecting elasticsearch process in docker tests This tweaks detecting the elasticsearch process id by using jps instead of ps which has been problematic in the past exceeding available COLUMN sizes due to es commandline invocation getting longer and longer * Remove few muted tests * Reuse ps for detecting processes but use pipe to find the right one jps doesnt work well with different users * Tweak java command running lookup to work with wolfi * Cleanup changes * [CI] Auto commit changes from spotless --------- Co-authored-by: elasticsearchmachine <[email protected]> (cherry picked from commit f0d7ec4) # Conflicts: # muted-tests.yml # qa/packaging/src/test/java/org/elasticsearch/packaging/util/docker/Docker.java
1 parent 8155842 commit 35599fb

File tree

1 file changed

+9
-5
lines changed
  • qa/packaging/src/test/java/org/elasticsearch/packaging/util/docker

1 file changed

+9
-5
lines changed

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,13 @@ public class Docker {
7575
public static final int STARTUP_SLEEP_INTERVAL_MILLISECONDS = 1000;
7676
public static final int STARTUP_ATTEMPTS_MAX = 30;
7777

78+
private static final String ELASTICSEARCH_FULL_CLASSNAME = "org.elasticsearch.bootstrap.Elasticsearch";
79+
private static final String FIND_ELASTICSEARCH_PROCESS = "for pid in $(ps -eo pid,comm | grep java | awk '\\''{print $1}'\\''); "
80+
+ "do cmdline=$(tr \"\\0\" \" \" < /proc/$pid/cmdline 2>/dev/null); [[ $cmdline == *"
81+
+ ELASTICSEARCH_FULL_CLASSNAME
82+
+ "* ]] && echo \"$pid: $cmdline\"; done";
83+
// The length of the command exceeds what we can use for COLUMNS so we use a pipe to detect the process we're looking for
84+
7885
/**
7986
* Tracks the currently running Docker image. An earlier implementation used a fixed container name,
8087
* but that appeared to cause problems with repeatedly destroying and recreating containers with
@@ -185,11 +192,8 @@ public static void waitForElasticsearchToStart() {
185192
try {
186193
// Give the container enough time for security auto-configuration or a chance to crash out
187194
Thread.sleep(STARTUP_SLEEP_INTERVAL_MILLISECONDS);
188-
189-
// Set COLUMNS so that `ps` doesn't truncate its output
190-
psOutput = dockerShell.run("bash -c 'COLUMNS=3000 ps ax'").stdout();
191-
192-
if (psOutput.contains("org.elasticsearch.bootstrap.Elasticsearch")) {
195+
psOutput = dockerShell.run("bash -c '" + FIND_ELASTICSEARCH_PROCESS + " | wc -l'").stdout();
196+
if (psOutput.contains("1")) {
193197
isElasticsearchRunning = true;
194198
break;
195199
}

0 commit comments

Comments
 (0)