United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-5030646 CMS: atg crashed with fastdebug build on rhas_3.0 SP1
JDK-5030646 : CMS: atg crashed with fastdebug build on rhas_3.0 SP1

Details
Type:
Bug
Submit Date:
2004-04-13
Status:
Closed
Updated Date:
2012-10-08
Project Name:
JDK
Resolved Date:
2004-06-03
Component:
hotspot
OS:
linux_redhat_3.0,generic
Sub-Component:
runtime
CPU:
x86,generic
Priority:
P2
Resolution:
Fixed
Affected Versions:
1.4.2_12,5.0
Fixed Versions:
5.0 (beta2)

Related Reports
Backport:
Relates:

Sub Tasks

Description
atg crashed with fastdebug build.

java version:
Java HotSpot(TM) Server VM (build 20040408044023.nips.c2_baseline_to_main_baseline-debug, mixed mode)

Test machine:
jtg-linux1.sfbay (RedHat 3.0 SP1)
Linux jtg-linux1 2.4.21-9.ELsmp #1 SMP

See see Ramki and Hui's emails in the comments section .

                                    

Comments
PUBLIC COMMENTS

 
                                     
2004-06-10
SUGGESTED FIX

se cycle that we are at,
and because (1) and/or (2) would involve somehwat large
code changes (in the case of (2)) or subtle, far-reaching
and not very easily testable repercussions (in the case of (1))
we decided to use solution (3) above.

Thanks to June for finding the bug through her diligent
testing, Hui for the initial analysis, and to
Hui, John, June, Karen, Ken and Steve G for useful
interaction.

Thanks to June and Frances for testing and evaluation
of alternative solution (1), and June for her testing and
evaluation of the current solution (3).

The sneaky locking code will likely be revisited for clean-up
(removal?) in Dragonfly.

Reviewed by: John Coomes, Hui Huang, Jon Masamitsu, Ken Russell,
             Steve Goldman (partial)
Approved by: Dave Therkelsen (server team; low risk)

Fix verified: yes

Verification test:
  DeoptimizeALot/SafepointALot with CMS on RHAS
  (i.e. the test that led to the original assertion violation)
  
Testing:
. {refworkload, runThese} with fastdebug/product on solaris/server/client
. spec with DeoptimizeALot, SafepointALot, ScavengeALot and
  CMSALot (i.e. low initiating threshold) with fastdebug/solaris/server/client
. PRT testing
. bigapps testing by June; testing on Linux showed that the assertion
  violation went away. The hangs that appear to indicate loss
  of signal issue on condvars on Linux, are still present and are
  being investigated separately.

-----------------------------------------------------------------------------
User: Y. Srinivas Ramakrishna
-----------------------------

5033837 CMS: assertion with ScavengeALot/FullGCALot

  http://analemma.sfbay/net/spot/scratch/ysr/tiger_bugs/webrev.alot

The assertion, which stated that we were trying to switch off a timer
that had not been previously switched on, arose because of a slight
asymmetry between the switching on of the timer (in gc_prologue
when full gc is not happening) and switching it off (in update_gc_stats()
which may be called even if "full" is true, for example with SavevengeALot).
The fix was to pass an extra argument "full" to update_gc_stats()
which allows generations to do as appropriate in the case of "full".
In the present case, we ignore the call in CMS if it's made with
"full" true.

The code for ScavengeALot will likely need to be cleaned up
for Dragofly. The current change is localized and low-risk
and addresses the immediate issue of not being able to test
the CMS collector with ScavengeALot. The behaviour of no
other collector is affected in any manner.

Reviewed by: John Coomes, Jon Masamitsu
Approved by: Jerry Driscoll (server team, low-risk)

Fix Verified: yes

Verification Testing: spec with -XX:+ScavengeALot -XX:+UseConcMarkSweepGC

Testing:
. spec with DeoptimizeALot, SafepointALot, ScavengeALot and
  CMSALot (i.e. low initiating threshold) with fastdebug/solaris/server
. PRT testing
. {refworkload, runThese} with fastdebug/product on solaris/server

Files:
update: src/cpu/i486/vm/vm_version_i486.cpp
update: src/cpu/i486/vm/vm_version_i486.hpp
update: src/os/linux/vm/mutex_linux.cpp
update: src/os/solaris/vm/mutex_solaris.cpp
update: src/os/win32/vm/mutex_win32.cpp
update: src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp
update: src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp
update: src/share/vm/memory/concurrentMarkSweepGeneration.cpp
update: src/share/vm/memory/concurrentMarkSweepGeneration.hpp
update: src/share/vm/memory/genCollectedHeap.cpp
update: src/share/vm/memory/genCollectedHeap.hpp
update: src/share/vm/memory/generation.hpp
update: src/share/vm/memory/tenuredGeneration.cpp
update: src/share/vm/memory/tenuredGeneration.hpp
update: src/share/vm/runtime/globals.hpp
update: src/share/vm/runtime/mutex.cpp
update: src/share/vm/runtime/mutex.hpp
update: src/share/vm/runtime/safepoint.cpp
update: src/share/vm/runtime/safepoint.hpp

Examined files: 3200

Contents Summary:
      19   update
    3181   no action (unchanged)
                                     
2004-06-11
WORK AROUND

 
                                     
2004-06-11
EVALUATION

see comments section.
                                     
2004-06-11
CONVERTED DATA

BugTraq+ Release Management Values

COMMIT TO FIX:
tiger-beta2

FIXED IN:
tiger-beta2

INTEGRATED IN:
tiger-beta2


                                     
2004-06-14



Hardware and Software, Engineered to Work Together