SUGGESTED FIX
Event: putback-to
Parent workspace: /net/jano.sfbay/export/disk05/hotspot/ws/main/gc_baseline
(jano.sfbay:/export/disk05/hotspot/ws/main/gc_baseline)
Child workspace: /net/prt-web/prt-workspaces/20060922160805.ysr.bot/workspace
(prt-web:/net/prt-web/prt-workspaces/20060922160805.ysr.bot/workspace)
User: ysr
Comment:
---------------------------------------------------------
Job ID: 20060922160805.ysr.bot
Original workspace: karachi:/net/spot/scratch/ysr/bot
Submitter: ysr
Archived data: /net/prt-archiver.sfbay/data/archived_workspaces/main/gc_baseline/2006/20060922160805.ysr.bot/
Webrev: http://analemma.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/gc_baseline/2006/20060922160805.ysr.bot/workspace/webrevs/webrev-2006.09.22/index.html
Fixed 6472335: Allocation of huge array which would cause OutOfMemoryError causes JVM to hang with -Xincgc.
Webrev: http://analemma.sfbay/net/spot/scratch/ysr/bot/webrev
A predicate computation in CMSGen::allocation_limit_reached()
was overflowing. This day-one bug was unmasked because of the
recent (b92) fix for CR 6415406.
Reviewed by: Andrey Petrusenko
Fix Verified: yes
Verification Testing: test in bug report
Other testing: PRT & refworload ?? incgc ?? concgc
Files:
update: src/share/vm/memory/concurrentMarkSweepGeneration.cpp
Examined files: 3878
Contents Summary:
1 update
3877 no action (unchanged)
|
|
|
EVALUATION
The fix should be backported to 6u1, 5u10 and any other update release
to which 6415406 has been backported.
|
|
|
SUGGESTED FIX
--- For diffs, see PRT webrev below ---
|
|
|
EVALUATION
The changes in 6415406 have unmasked a long-standing bug in
CMSCollector::allocation_limit_reached() which does not
correctly account for the possibility of arithmetic overflow
when doing range / threshold-crossing checks involving
large allocation requests.
|
|
|
WORK AROUND
None known, except to not use -Xincgc, instead using -Xconcgc
(i.e. the non-incremental version of CMS).
|
|
|