JDK-5030646 : CMS: atg crashed with fastdebug build on rhas_3.0 SP1
  • Type: Bug
  • Status: Closed
  • Resolution: Fixed
  • Component: hotspot
  • Sub-Component: runtime
  • Priority: P2
  • Affected Version: 1.4.2_12,5.0
  • OS: generic,linux_redhat_3.0
  • CPU: generic,x86
  • Submit Date: 2004-04-13
  • Updated Date: 2012-10-08
  • Resolved Date: 2004-06-03
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 Availabitlity Release.

To download the current JDK release, click here.
Related Reports
Relates :  
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 .

CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: tiger-beta2 FIXED IN: tiger-beta2 INTEGRATED IN: tiger-beta2

EVALUATION see comments section.


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)