JDK-8140249 : JVM Crashing During startUp If Flight Recording is enabled
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 7u85
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2015-10-21
  • Updated: 2016-04-27
  • Resolved: 2015-10-30
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.
7u101Fixed 8u101Fixed 9 b94Fixed
1. We were getting 'Floating point exception' i.e. 'SIGFPE => 8' and the faulting function in the core dump is 'VM_Version_Ext::resolve_cpu_information_details()'.
2. Only statement inside VM_Version_Ext::resolve_cpu_information_details which may cause 'Floating point exception' is "_no_of_packages = _no_of_threads / threads_per_package" 
when 'threads_per_package' is zero.
3. Point (2) implies either 'threads_per_core()' or 'cores_per_cpu()' evaluate to zero. 
4. From the implementation of function 'cores_per_cpu()' it is obvious minimum value return by this function is 1, where as threads_per_core() may evaluated to zero.

So the quick fix is fall back to a default value if we get threads_per_core '0', so that we don't crash.

UR SQE OK to take the fix to PSU16_01 (8u72) and 7u95. UR SQE isn't OK to take it in 8u71.

Critical Request Template - Justification : This was requested by the cloud team in two separate bugs - Risk Analysis : Very low. Only affects machines that for some reason return 0 cores per CPU and stops those from crashing. Will not affect any other machine. - Webrev : http://hg.openjdk.java.net/jdk9/hs-rt/hotspot/rev/d806ff9d9804 - Testing (done/to-be-done) : We don't have any machines where this reproduces. We have given them a test build to verify, but the fix is trivial - Back ports (done/to-be-done) : Done - Fix For Release : JDK 7, JDK 8 PSU

Our plan is to fix this in two steps. Step one is to fall back to a default value if we get 0 threads_per_core, so that we don't crash. The second step will be to investigate why we get a 0 on this platform.