JDK-6659981 : +ParallelRefProcEnabled crashes on single core platform
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 6,6u5
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic,solaris_10
  • CPU: generic,x86
  • Submitted: 2008-02-06
  • Updated: 2011-04-20
  • Resolved: 2011-04-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 6 Other
6u14Fixed hs12Fixed
Related Reports
Duplicate :  
Relates :  
Description
VMark Stability Test crash x64 Solaris 64 bit 6.0 VM.

Java Release            : 1.6.0u5
Java Builds             : b11
Java HotSpot(TM) 	: 64-Bit Server VM (build 10.0-b19, mixed mode)
VM flavors              : server
VM Modes                : -Xmixed 
AdHotKey		: -XX:+AggressiveOpts

run.vmark: Starting VMark Server.
run.vmark: Starting Stability Test.
java version "1.6.0_05"
Java(TM) SE Runtime Environment (build 1.6.0_05-b11)
Java HotSpot(TM) 64-Bit Server VM (build 10.0-b19, mixed mode)

run.vmark: Iteration # 1
run.vmark: Current date : Tue Jan 29 21:14:24 GMT 2008
---
run.vmark: Iteration # 8
run.vmark: Current date : Tue Jan 29 21:18:33 GMT 2008

VolanoMark(TM) Benchmark Version 2.5.0.9
Copyright (C) 1996-2002 Volano LLC.  All rights reserved.
Creating room number 1 ...
20 connections so far.
Creating room number 2 ...
40 connections so far.
Creating room number 3 ...
60 connections so far.
Creating room number 4 ...
80 connections so far.
Creating room number 5 ...
100 connections so far.
Creating room number 6 ...
120 connections so far.
Java heap:  3998 KB in use, 11396 KB available (35% in use).
Running the test ...
Mark14 in Room10 disconnected from server.
-rw-r--r--   1 root     root       59977 Jan 29 21:18 hs_err_pid5260.log
#
# An unexpected error has been detected by Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0xfffffd7ffea1687c, pid=5260, tid=4
#
# Java VM: Java HotSpot(TM) 64-Bit Server VM (10.0-b19 mixed mode solaris-amd64)# Problematic frame:
# V  [libjvm.so+0x61687c]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
#

I can't reproduce the crash at present time. The login detail and full damp in comments.
<removed incorrect comment>
Changed synopsis from:

    VMark Stability Test crash x64 Solaris 64 bit 6.0 VM

to:

    +ParallelRefProcEnabled crashes on single core platform

Comments
EVALUATION Fixed via jprt:2008-02-13-003108.ysr.hg_gc_baseline in hg/hotspot-gc
22-02-2008

SUGGESTED FIX changeset: 2:41c3a43ba00b user: ysr date: Tue Feb 12 16:07:46 2008 -0800 summary: 6659981: +ParallelRefProcEnabled crashes on single core platform diff --git a/src/share/vm/memory/referenceProcessor.cpp b/src/share/vm/memory/referenceProcessor.cpp --- a/src/share/vm/memory/referenceProcessor.cpp +++ b/src/share/vm/memory/referenceProcessor.cpp @@ -85,7 +85,7 @@ ReferenceProcessor* ReferenceProcessor:: ReferenceProcessor* rp = new ReferenceProcessor(span, atomic_discovery, mt_discovery, mt_degree, - mt_processing); + mt_processing && (parallel_gc_threads > 0)); if (rp == NULL) { vm_exit_during_initialization("Could not allocate ReferenceProcessor object"); }
07-02-2008

WORK AROUND Do not use -XX:+ParallelRefProcEnabled when running on a single core platform (or prset).
07-02-2008

EVALUATION The problem was that +ParallelRefProcEnabled was being used in the case of a platform with just a single core. The parallel reference processing code was being surprised by this. It should be made more robust in the face of such pilot error. Simple fix. Watch the "Suggested Fix" space for a fix, and the "Work Around" section for a work around.
07-02-2008