08:29:24 To rebuild the failed test in a jenkins job, copy the following link and fill out the <Jenkins URL> and <FAILED test target>:
08:29:24 <Jenkins URL>/parambuild/?JDK_VERSION=8&JDK_IMPL=openj9&BUILD_LIST=system/mauveLoadTest&Jenkinsfile=openjdk_x86-64_windows&TARGET=<FAILED test target>
https://ci.eclipse.org/openj9/job/Test_openjdk8_j9_special.system_x86-64_windows_Nightly/220
MauveMultiThreadLoadTest_special_20
05:20:41 variation: Mode557
05:20:41 JVM_OPTIONS: -Xcompressedrefs -XX:+UseCompressedOops -Xgcpolicy:balanced -Xdebug -Xrunjdwp:transport=dt_socket,address=8888,server=y,onthrow=no.pkg.foo,launch=echo -Xjit:count=0
05:22:54 LT 04:22:59.355 - Test failed
05:22:54 LT Failure num. = 1
05:22:54 LT Test number = 90
05:22:54 LT Test details = 'Mauve[gnu.testlet.java.io.InputStreamReader.utf8]'
05:22:54 LT Suite number = 0
05:22:54 LT Thread number = 2
05:22:54 LT >>> Captured test output >>>
05:22:54 LT FAIL: gnu.testlet.java.io.InputStreamReader.utf8: UTF-8 decoder finished (number 0)
https://ci.eclipse.org/openj9/job/Test_openjdk8_j9_special.system_x86-64_linux_Nightly/312
MauveMultiThreadLoadTest_special_20
@andrewcraik @liqunl
@kobinau Could you take a look?
Building and running a grinder
https://hyc-runtimes-jenkins.swg-devops.com/view/Test_grinder/job/Grinder/3189/
The Grinder was aborted. But from the output we had 43 successful runs.
I tried testing from parallel runs, but it also didn't generate any similar failures.
Haven't seen any new failures and it couldn't be reproduced. Closing until it's seen again.
https://ci.eclipse.org/openj9/job/Test_openjdk8_j9_special.system_x86-64_linux_Nightly/617
MauveMultiThreadLoadTest_special_15
variation: Mode554
JVM_OPTIONS: -Xcompressedrefs -Xcompressedrefs -Xgcpolicy:balanced -XXgc:tarokEnableExpensiveAssertions,fvtest_tarokPGCRotateCollectors -Xjit:count=0,optlevel=hot,gcOnResolve,rtResolve
@liqunl @kobinau Can you pick up the investigation on this again?
I've been running Grinders with no success at resimulation. Speaking to @liqunl to discuss further.
@JasonFengJ9 can you please take a look at the test and confirm it's valid to run multi-threaded.
Here is the test code.
public class utf8 implements Testlet, Runnable
{
TestHarness harness;
boolean ok = false;
public void test (TestHarness h)
{
harness = h;
Thread t = new Thread(this);
t.start();
// Wait a few seconds for the thread to finish.
try
{
t.join(3 * 1000);
}
catch (InterruptedException ie)
{
harness.debug("Interrupted: " + ie);
}
harness.check(ok, "UTF-8 decoder finished");
if (!ok)
t.interrupt();
}
public void run()
{
try
{
PipedOutputStream pos = new PipedOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(pos, "UTF-8");
PrintWriter ps = new PrintWriter(osw);
PipedInputStream pis = new PipedInputStream(pos);
InputStreamReader isr = new InputStreamReader(pis, "UTF-8");
char[] buf = new char[256];
int read;
ps.print("0123456789ABCDEF");
ps.flush();
// Read much more then we actually expect (16 characters).
read = isr.read(buf, 0, 256);
harness.check(read, 16, "16 characters read");
ok = true;
}
catch (IOException ioe)
{
harness.debug(ioe);
harness.check(false, "IOException in run()");
}
}
}
It is not obvious that the problem could be caused by multi-threaded load tests.
The test seems bogus in that ok should either be volatile or use synchronization to update and check it in the different threads. Also it uses a hard coded timeout. I'm thinking we should just exclude it.
@Mesbah-Alam
https://ci.eclipse.org/openj9/job/Test_openjdk8_j9_special.system_ppc64_aix_Nightly/71
LT 01:21:29.308 - Starting thread. Suite=0 thread=6
LT 01:21:54.805 - First failure detected by thread: load-3. Not creating dumps as no dump generation is requested for this load test
LT 01:21:54.883 - suite.getInventory().getInventoryFileRef(): openjdk.test.load/config/inventories/mauve/mauve_multiThread.xml
LT 01:21:54.898 - suite.isCreateDump() : false
LT 01:21:54.961 - Test failed
LT Failure num. = 1
LT Test number = 90
LT Test details = 'Mauve[gnu.testlet.java.io.InputStreamReader.utf8]'
LT Suite number = 0
LT Thread number = 3
LT >>> Captured test output >>>
LT FAIL: gnu.testlet.java.io.InputStreamReader.utf8: UTF-8 decoder finished (number 0)
LT <<<
LT
@Mesbah-Alam are you going to exclude this test?
The test has been excluded. This PR can be closed now.
Most helpful comment
The test seems bogus in that
okshould either be volatile or use synchronization to update and check it in the different threads. Also it uses a hard coded timeout. I'm thinking we should just exclude it.@Mesbah-Alam