JDK-8028306 : nsk stress tests, CodeCache fills, then safepoint asserts
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs25
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: linux
  • CPU: x86
  • Submitted: 2013-11-13
  • Updated: 2014-01-14
  • Resolved: 2013-11-20
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 Other
8Fixed hs25Fixed
Related Reports
Relates :  
Description
[2013-11-09T10:25:04.27] CodeCache: size=32768Kb used=32126Kb max_used=32126Kb free=641Kb
[2013-11-09T10:25:04.27] Java HotSpot(TM) Client VM warning: CodeCache is full. Compiler has been disabled.
[2013-11-09T10:25:04.27]  bounds [0xf459f000, 0xf659f000, 0xf659f000]
[2013-11-09T10:25:04.27]  total_blobs=2506 nmethods=2360 adapters=86
[2013-11-09T10:25:04.27] Java HotSpot(TM) Client VM warning: Try increasing the code cache size using -XX:ReservedCodeCacheSize=
[2013-11-09T10:25:04.27]  compilation: disabled (not enough contiguous free space left)
[2013-11-09T10:25:04.27] # To suppress the following error report, specify this argument
[2013-11-09T10:25:04.27] # after -XX: or in .hotspotrc:  SuppressErrorAt=/thread.cpp:914
[2013-11-09T10:25:04.27] #
[2013-11-09T10:25:04.27] # A fatal error has been detected by the Java Runtime Environment:
[2013-11-09T10:25:04.27] #
[2013-11-09T10:25:04.27] #  Internal Error (/opt/jprt/T/P1/221711.drchase/s/src/share/vm/runtime/thread.cpp:914), pid=17191, tid=3952081776
[2013-11-09T10:25:04.27] #  fatal error: Possible safepoint reached by thread that does not allow it

Comments
Release team: Approved for fixing
19-11-2013

RULE bigapps/Kitchensink/stability Crash Internal Error ...thread.cpp...fatal error: Possible safepoint reached by thread that does not allow it
19-11-2013

problem: 1) ciEnv::register_method() calls CodeCache::handle_full_code_cache() in a block where no safepoints are allowed. However, handle_full_code_cache can reach a safepoint since it uses locks. 2) I added a check in 'possibly_sweep()' that ensures that only compiler threads can sweep the code cache. It can happen that normal Java threads can call 'possibly_sweep()' via 'handle_full_code_cache()'. solution: 1) move call to 'handle_full_code_cache()' outside the block where no safepoints are allowed 2) see above testing: failing test case passes.
19-11-2013

ILW=HMM=P2 I: High, Test hangs L: Medium, Reproduces more often with -XX:+DeOptmizeALot but otherwise is intermittent W: Medium, larger code cache reduces the likelihood but not always 8-critical-request: NSK regression failures, these should be fixed for JDK8 release criteria.
15-11-2013

Uses -XX:+DeoptimizeALot.
14-11-2013