JDK-4719001 : all collectors should implement Generation::commit_contiguous_available
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 1.4.2
  • Priority: P3
  • Status: Closed
  • Resolution: Not an Issue
  • OS: generic
  • CPU: generic
  • Submitted: 2002-07-23
  • Updated: 2002-07-25
  • Resolved: 2002-07-25
Related Reports
Relates :  
Description
This is a mirror bug for
  4697804   nsk/regression/b4432433 fails with java.lang.OutOfMemory Exception

A common case for bailing out to vm_exit_out_of_memory due to low
resource conditions was fixed in 4697804 for the default collector only.

Other collectors which hook up with DefNewGeneration (more generally,
which hook up with a young generation collector which doesn't implement
promotion undo) will still hit that case until they implement
  Generation::commit_contiguous_available(size_t bytes)

Currently, only OneContigCardSpaceGeneration implements this method.


Comments
EVALUATION This is just one case where we avoid vm_exit_out_of_memory. Also, the default implementation is optimisitic in that Generation::commit_contiguous_available returns true to preserve the current behavior, but maybe that should change when the rest of the Generation subtypes actually implement this method. ###@###.### 2002-07-23 We decided not to check in Generation::commit_contigous_available, as we'd prefer to catch out-of-swap situations early and fail. The alternative is to allow the VM to continue, but potentially fail in other ways due to low-swap (often, libthread will fail as VM exit involves running the exit hooks, so threads are started). Therefore, this bug is against non-existant code and is being closed. ###@###.### 2002-07-25
25-07-2002