RFR (S) : 8014959 : assert(Compile::current()->live_nodes() < (uint)MaxNodeLimit) failed: Live Node limit exceeded limit

David Chase david.r.chase at oracle.com
Sat Jun 8 16:56:26 PDT 2013


webrev: http://cr.openjdk.java.net/~drchase/8014959/webrev.00/

bug:
SQE MethodHandle + breakpoint + step torture test has four outcomes:
1) success;
2) failure, timeout.;
3) failure, does not reach target breakpoint;
4) crash, too many nodes

Failures 2 & 3 are a result of the torture being a little too thorough; the target methodHandle is wrapped in a random number N of various MH transformations, where N varies from 0 to 999.  However, the number of steps required to complete is about 22-25 times the wrapping level, and only 9000 steps are allowed (only enough for about 360-410 deep).  So it is recommended that the test be random in a smaller range that runs to nearly 9000 steps (i.e., 250-350).

fix: two-part; see also INTJDK-7604173 filed against the test.
This fix hardens the compiler against running out of nodes (failure #4); several missing bailout checks were added, the fudgefactor was doubled, and the node limit was increased to leave about the same number of available nodes net of tripled fudgefactor (which occurs in some tests).

testing:
1) jtreg test/compiler + test/closed on Mac laptop
2) JPRT on compiler
3) 200 runs of tweaked version of SQE test in attempt to provoke crash (with failures ignored): 100 from 900-999, 100 from 400 to 900.

David


More information about the hotspot-compiler-dev mailing list