Skip to content

Commit

Permalink
Merge pull request #17313 from dsouzai/jitserverCriuTestVerbose
Browse files Browse the repository at this point in the history
Make JITServer CRIU tests more robust
  • Loading branch information
mpirvu committed May 5, 2023
2 parents 84d3914 + 2f9aa9b commit 746811d
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 15 deletions.
8 changes: 7 additions & 1 deletion test/functional/cmdLineTests/criu/criuJitServerScript.sh
Expand Up @@ -44,6 +44,7 @@ JITSERVER_OPTIONS="-XX:JITServerPort=$JITSERVER_PORT"

echo "Starting $2/jitserver $JITSERVER_OPTIONS"
$2/jitserver $JITSERVER_OPTIONS &
JITSERVER_PID=$!
sleep 2

$2/java -XX:+EnableCRIUSupport -XX:JITServerPort=$JITSERVER_PORT $3 -cp "$1/criu.jar" $4 $5 -XX:JITServerPort=$JITSERVER_PORT $6 >testOutput 2>&1;
Expand All @@ -63,8 +64,13 @@ if [ "$7" != true ]; then
echo "Removed testOutput file"
fi

echo "Checking that JITServer Process is still alive"
ps -ef | grep $JITSERVER_PID

echo "Terminating $2/jitserver $JITSERVER_OPTIONS"
pkill -9 -xf "$2/jitserver $JITSERVER_OPTIONS"
kill -9 $JITSERVER_PID
# For consistency with the jitserver cmdline tests, use kill
#pkill -9 -xf "$2/jitserver $JITSERVER_OPTIONS"
sleep 2

echo "finished script";
Expand Up @@ -27,8 +27,8 @@
<suite id="J9 Criu Command-Line Post Restore JIT Option Tests" timeout="300">
<variable name="MAINCLASS_OPTIONSFILE_TEST" value="org.openj9.criu.OptionsFileTest" />
<variable name="ENABLE_JITSERVER" value="-XX:+UseJITServer" />
<variable name="PRE_CRIU_VERBOSE" value="-Xjit:verbose={JITServer},verbose={JITServerConns},vlog=preCheckpointVlog" />
<variable name="POST_CRIU_VERBOSE" value="-Xjit:verbose={CheckpointRestore},verbose={JITServer},verbose={JITServerConns},vlog=postRestoreVlog" />
<variable name="PRE_CRIU_VERBOSE" value="-Xjit:verbose={compilePerformance},verbose={JITServer},verbose={JITServerConns},vlog=preCheckpointVlog" />
<variable name="POST_CRIU_VERBOSE" value="-Xjit:verbose={compilePerformance},verbose={CheckpointRestore},verbose={JITServer},verbose={JITServerConns},vlog=postRestoreVlog" />
<variable name="PORTABLE_CRIU_MODE" value="-XX:-CRIURestoreNonPortableMode" />

<test id="Generate Verbose Log">
Expand Down
Expand Up @@ -27,7 +27,7 @@
<suite id="J9 Criu Command-Line Post Restore JIT Option Tests" timeout="300">
<variable name="MAINCLASS_OPTIONSFILE_TEST" value="org.openj9.criu.OptionsFileTest" />
<variable name="ENABLE_JITSERVER" value="-XX:+UseJITServer" />
<variable name="CRIU_VERBOSE" value="-Xjit:verbose={CheckpointRestore},verbose={JITServer},verbose={JITServerConns},vlog=vlog" />
<variable name="CRIU_VERBOSE" value="-Xjit:verbose={compilePerformance},verbose={CheckpointRestore},verbose={JITServer},verbose={JITServerConns},vlog=vlog" />

<test id="Generate Verbose Log">
<command>bash $SCRIPPATH$ $TEST_RESROOT$ $TEST_JDK_BIN$ "$JVM_OPTIONS$" $MAINCLASS_OPTIONSFILE_TEST$ "JitOptionsTest $ENABLE_JITSERVER$ $CRIU_VERBOSE$" 1 false</command>
Expand Down
1 change: 1 addition & 0 deletions test/functional/cmdLineTests/criu/playlist.xml
Expand Up @@ -171,6 +171,7 @@
<platformRequirements>os.linux,^arch.arm,^arch.aarch64,bits.64</platformRequirements>
<features>
<feature>CRIU:required</feature>
<feature>JITAAS:nonapplicable</feature>
</features>
<levels>
<level>sanity</level>
Expand Down
Expand Up @@ -293,6 +293,13 @@ static void jitOptionsTest(String[] args) {
System.out.println("Pre-checkpoint");
CRIUTestUtils.checkPointJVM(criuSupport, imagePath, true);
System.out.println("Post-checkpoint");

// Sleep to ensure that the JVM produces output needed for test success.
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}

}
Expand Up @@ -68,15 +68,4 @@
<output type="failure" caseSensitive="no" regex="yes" javaUtilPattern="yes">(Fatal|Unhandled) Exception</output>
</test>

<test id="Test Metrics Disabled">
<command>bash $SCRIPPATH$ $TEST_RESROOT$ $TEST_JDK_BIN$ "$DEFAULT_JITSERVER_OPTIONS$ -XX:-JITServerMetrics" "$ENABLE_JITSERVER$ $JITSERVER_VERBOSE$" true</command>
<output type="required" caseSensitive="no" regex="yes" javaUtilPattern="yes">(java|openjdk|semeru) version</output>
<output type="failure" caseSensitive="no" regex="no">jitserver_cpu_utilization</output>
<output type="failure" caseSensitive="no" regex="no">jitserver_available_memory</output>
<output type="failure" caseSensitive="no" regex="no">jitserver_connected_clients</output>
<output type="failure" caseSensitive="no" regex="no">jitserver_active_threads</output>
<output type="success" caseSenstive="no" regex="no">Connection refused</output>
<output type="failure" caseSensitive="no" regex="yes" javaUtilPattern="yes">(Fatal|Unhandled) Exception</output>
</test>

</suite>
3 changes: 3 additions & 0 deletions test/functional/cmdLineTests/jitserver/jitserverScript.sh
Expand Up @@ -58,6 +58,9 @@ if [ "$METRICS" == true ]; then
curl http://localhost:$METRICS_PORT/metrics
fi

echo "Checking that JITServer Process is still alive"
ps -ef | grep $JITSERVER_PID

echo "Terminating $TEST_JDK_BIN/jitserver $JITSERVER_OPTIONS"
kill -9 $JITSERVER_PID
# Running pkill seems to cause a hang...
Expand Down

0 comments on commit 746811d

Please sign in to comment.