JDK-6665210 : Crash in first CMS when -XX:-UseParNewGC -XX:+ParallelRefProcEnabled specified
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 6
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: solaris_10
  • CPU: x86
  • Submitted: 2008-02-20
  • Updated: 2011-02-16
  • Resolved: 2008-02-20
Related Reports
Duplicate :  
Description
FULL PRODUCT VERSION :
java version "1.6.0_04"
Java(TM) SE Runtime Environment (build 1.6.0_04-b12)
Java HotSpot(TM) 64-Bit Server VM (build 10.0-b19, mixed mode)

FULL OS VERSION :
SunOS gold01 5.10 Generic_125101-07 i86pc i386 i86pc Solaris

EXTRA RELEVANT SYSTEM CONFIGURATION :
X4600, 8xdual core AMD, local zone

A DESCRIPTION OF THE PROBLEM :
When starting our main application server with both -XX:-UseParNewGC -XX:+ParallelRefProcEnabled specified, we got a guaranteed crash and core dump on the first CMS run. Problem was not happening with 1.6.0_02. Any other combination of these two flags (+ and + or - and -) are not causing this crash. Both -server and -client are crashing.

We used to have crashed after few hours with -XX:+UseParNewGC enabled ((Incident Review ID: 583589) JVM server crash in CMS collection), so we have disabled it for production runs. We will try to see if they are still happening with 1.6.0_04. If it is a case, we will also have to disable ParallelRefProcEnabled to get _04 working, which will affect our CMS pause times.

THE PROBLEM WAS REPRODUCIBLE WITH -Xint FLAG: Did not try

THE PROBLEM WAS REPRODUCIBLE WITH -server FLAG: Yes

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
We run our application with following parameters

java -d64 -server -XX:-OmitStackTraceInFastThrow -Xloggc:gc.log -Xmx5000m -Xms512m -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:PermSize=128m -XX:+PrintTenuringDistribution -XX:MaxTenuringThreshold=8 -XX:NewSize=48m -XX:MaxNewSize=48m -XX:SurvivorRatio=5 -XX:+TraceClassUnloading -XX:+PrintHeapAtGC -XX:+CMSIncrementalMode -XX:CMSIncrementalDutyCycleMin=5 -XX:+CMSIncrementalPacing -XX:PrintCMSStatistics=1 -XX:-UseParNewGC -XX:+ParallelRefProcEnabled -cp /home/icomdev/MMS/lib/java/mmmasterserver.jar:/home/icomdev/MMS/lib/java/icomlib.jar  com.cbksec.icom.server.core.MMServer -p -o SERVER -c /home/icomdev/MMS/etc/mmserver.config

EXPECTED VERSUS ACTUAL BEHAVIOR :
Expected result is that application should run correctly. We are getting a crash few seconds after startup (when first CMS is running)

ERROR MESSAGES/STACK TRACES THAT OCCUR :
Attached seperatly

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
Not reproducible with any simple application. Our main app is bit special in the way it uses a lot of weak references (tens of thousands probably by the time it crashes).
---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :
Specify -XX:-UseParNewGC -XX:-ParallelRefProcEnabled OR -XX:+UseParNewGC -XX:+ParallelRefProcEnabled OR use 1.6.0_02.

Release Regression From : 6u2
The above release value was the last known release where this 
bug was not reproducible. Since then there has been a regression.

Comments
EVALUATION This is a duplicate of 6659981.
20-02-2008