United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
JDK-6659981 : +ParallelRefProcEnabled crashes on single core platform

Details
Type:
Bug
Submit Date:
2008-02-06
Status:
Closed
Updated Date:
2011-04-20
Project Name:
JDK
Resolved Date:
2011-04-20
Component:
hotspot
OS:
generic,solaris_10
Sub-Component:
gc
CPU:
x86,generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
6,6u5
Fixed Versions:
hs12 (b02)

Related Reports
Backport:
Backport:
Duplicate:
Relates:

Sub Tasks

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
                                     
2008-02-22
WORK AROUND

Do not use -XX:+ParallelRefProcEnabled when running on a single core
platform (or prset).
                                     
2008-02-07
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");
   }
                                     
2008-02-07
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.
                                     
2008-02-07



Hardware and Software, Engineered to Work Together