Hi all,
Please, review a fix for:
https://bugs.openjdk.java.net/browse/JDK-8200387
Webrev:
http://cr.openjdk.java.net/~sspitsyn/webrevs/2018/8200387-graal-queue.1/
Summary:
A number of tests are failing when executed with Graal compiler.
The issue is that the JDI client event queue becomes overloaded:
248 private synchronized void controlEventFlow(int maxQueueSize) {
249 if (!eventsHeld && (maxQueueSize > OVERLOADED_QUEUE)) {
250 eventController().hold();
251 eventsHeld = true;
252 } else if (eventsHeld && (maxQueueSize < UNDERLOADED_QUEUE)) {
253 eventController().release();
254 eventsHeld = false;
255 }
256 }
with the events generated from the Graal compiler execution.
As a result, the eventsHeld mode is enabled.
The tests hang because the back-end does not get needed commands
from the JDI client.
Thanks a lot to Igor Veresov for the analysis and suggested
fixes!
After some discussion we agreed on the work around fix in webrev
which is to increase the OVERLOADED_QUEUE value.
In fact, the tests have to be fixed as well to filter out the
Graal threads posting the events.
At this point, fixing of all these tests requires resources but
not that critical.
Now, there is a mess with a relatively big number of the tests
failing with different failure modes.
The corresponding bugs have already been filed (not sure, all of
them).
This fix is the first step and a good base for sorting out the
rest of the Graal related issues.
I've just filed one more Graal bug that was masked other bugs:
https://bugs.openjdk.java.net/browse/JDK-8203809
and suspect, more bugs might be needed to cover all different
failure modes.
Such bugs should include sub-tasks for including the impacted
tests into the ProblemList-graal.
A part of the fix is a ProblemList-graal.txt update.
Almost all the tests listed in the following Graal related bug
stopped failing with the the fix:
https://bugs.openjdk.java.net/browse/JDK-8195600
So, these tests are removed from the ProblemList-graal.
Thanks,
Serguei
|