United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6892749 assert(UseParNewGC || UseSerialGC || UseConcMarkSweepGC, "...") fails
JDK-6892749 : assert(UseParNewGC || UseSerialGC || UseConcMarkSweepGC, "...") fails

Details
Type:
Bug
Submit Date:
2009-10-18
Status:
Closed
Updated Date:
2011-03-07
Project Name:
JDK
Resolved Date:
2011-03-07
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P2
Resolution:
Fixed
Affected Versions:
hs17
Fixed Versions:
hs17 (b04)

Related Reports
Backport:
Backport:
Backport:
Backport:
Relates:

Sub Tasks

Description
Lots of tests are failing due to this assert:

[2009-10-18T06:38:28.12] # Actual: /export/local/common/jdk/baseline/solaris-sparcv9/bin/java -d64 -server -Xmixed -XX:DefaultMaxRAMFraction=8 -XX:-UseCompressedOops -XX:-PrintVMOptions nsk.regression.b4242912.b4242912
[2009-10-18T06:38:28.12] # To suppress the following error report, specify this argument
[2009-10-18T06:38:47.20] # after -XX: or in .hotspotrc:  SuppressErrorAt=/genCollectedHeap.hpp:270
[2009-10-18T06:38:47.20] #
[2009-10-18T06:38:47.20] # A fatal error has been detected by the Java Runtime Environment:
[2009-10-18T06:38:47.20] #
[2009-10-18T06:38:47.20] #  Internal Error (/tmp/jprt/P1/B/090751.ysr/source/src/share/vm/memory/genCollectedHeap.hpp:270), pid=60, tid=2
[2009-10-18T06:38:47.20] #  Error: assert(UseParNewGC || UseSerialGC || UseConcMarkSweepGC,"Check can_elide_initializing_store_barrier() for this collector")
[2009-10-18T06:38:47.20] #
[2009-10-18T06:38:47.20] # JRE version: 7.0-b73
[2009-10-18T06:38:47.20] # Java VM: OpenJDK 64-Bit Server VM (17.0-b01-2009-10-16-090751.ysr.cardmarks-fastdebug mixed mode solaris-sparc )
[2009-10-18T06:38:47.20] # An error report file with more information is saved as:
[2009-10-18T06:38:47.20] # /export/local/23536.JDK7.NIGHTLY.VM+solaris-sparcv9_server_mixed_nsk.quick-regression.testlist/results/ResultDir/b4242912/hs_err_pid60.log
[2009-10-18T06:38:47.20] #
[2009-10-18T06:38:47.20] # If you would like to submit a bug report, please visit:
[2009-10-18T06:38:47.20] #   http://java.sun.com/webapps/bugreport/crash.jsp
[2009-10-18T06:38:47.20] #

                                    

Comments
EVALUATION

It's most likely caused by 6888898.
                                     
2009-10-18
EVALUATION

The global flag UseSerialGC is not always be explcitly set when serial GC is being
used. One solution is to explicitly set it at start-up in such cases where serial
gc is used, so that assertions can easily check for the case where serial gc is
being used by testing the value of this flag.
                                     
2009-10-19
SUGGESTED FIX

diff -r 39b01ab7035a src/share/vm/memory/genCollectedHeap.hpp
--- a/src/share/vm/memory/genCollectedHeap.hpp  Fri Oct 16 02:05:46 2009 -0700
+++ b/src/share/vm/memory/genCollectedHeap.hpp  Mon Oct 19 12:23:41 2009 -0700
@@ -266,8 +266,11 @@ public:
   // only and may need to be re-examined in case other
   // kinds of collectors are implemented in the future.
   virtual bool can_elide_initializing_store_barrier(oop new_obj) {
-    assert(UseParNewGC || UseSerialGC || UseConcMarkSweepGC,
-           "Check can_elide_initializing_store_barrier() for this collector");
+    // We wanted to assert that:-
+    // assert(UseParNewGC || UseSerialGC || UseConcMarkSweepGC,
+    //       "Check can_elide_initializing_store_barrier() for this collector");
+    // but unfortunately the flag UseSerialGC need not necessarily always
+    // be set when DefNew+Tenured are being used.
     return is_in_youngest((void*)new_obj);
   }
                                     
2009-10-19
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/052a899eec3e
                                     
2009-10-20
EVALUATION

http://hg.openjdk.java.net/hsx/hsx16/baseline/rev/164505f3849e
                                     
2009-10-22
EVALUATION

http://hg.openjdk.java.net/hsx/hsx16/master/rev/164505f3849e
                                     
2009-10-22



Hardware and Software, Engineered to Work Together