8253877: gc/g1/TestGCLogMessages.java fails - missing "Evacuation failure" message #624
can I have reviews for this change to gc/g1/TestGCLogMessages to hopefully make it more reliable?
One subtest tries to force evacuation failure, but apparently this does not always succeed. Particularly with upcoming young gen sizing changes, there seems to be a larger than before chance that the current mechanism does not work.
This mechanism assumes that before that test the young gen has been sized that much that the allocation of a half-heap humongous object causes an evacuation failure next time - of course that's a somewhat dodgy assumption that apparently recently started failing more.
The change employs the G1 internal evacuation failure debugging mechanism to force this kind of situation. The advantage is that this is guaranteed to work, the disadvantage is that it relies on that feature.
Additionally I did some slight renaming to the helper that used the term "ToSpaceExhaustion" instead of "EvacuationFailure" which is the name of the message that is actually checked for.
Testing: 2k+ tests of previous version without reproduction (meaning that at least for me without context of other tests, the issue has not been reproducable, at least not with the mentioned 1% failure rate), 3k tests with new version without reproduction
The text was updated successfully, but these errors were encountered:
@tschatzl This change now passes all automated pre-integration checks.
After integration, the commit message for the final commit will be:
At the time when this comment was updated there had been 58 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.
I agree, trying to recover from OOME is very error-prone. In this case since the test is starting in its own process it might be fine to just let it exit with an OOME. We would have to change the check for exit-code 0, but I think it should work.
Not saying this is a better approach, just threw it out here :) Again, I'm good with the change you propose.
@tschatzl Since your change was applied there have been 78 commits pushed to the
Your commit was automatically rebased without conflicts.
Pushed as commit cd66e0f.