JDK-4996670 : RFE: ParallelScavenge needs NoResourceMarkVerifier guards
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 5.0
  • Priority: P4
  • Status: Closed
  • Resolution: Not an Issue
  • OS: solaris_8
  • CPU: sparc
  • Submitted: 2004-02-18
  • Updated: 2020-06-18
  • Resolved: 2020-06-18
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 Availability Release.

To download the current JDK release, click here.
Other
tbdResolved
Related Reports
Relates :  
Description
The ParallelScavenge collector uses GCTasks to partition work amoung various
worker threads. GCTasks are resource objects, which are not explicitly
released.

Typical use allocates GCTasks inline, like this:

q->enqueue(new ScavengeRootsTask(ScavengeRootsTask::object_synchronizer));
q->enqueue(new ScavengeRootsTask(ScavengeRootsTask::flat_profiler));
q->enqueue(new ScavengeRootsTask(ScavengeRootsTask::management));
q->enqueue(new ScavengeRootsTask(ScavengeRootsTask::system_dictionary));
q->enqueue(new ScavengeRootsTask(ScavengeRootsTask::jvmti));

However, there are some cases where we create tasks by calling out
to another ojbect:

// We scan the thread roots in parallel
Threads::create_thread_roots_tasks(q);

It is possible that the methods invoked might either contain or in
the future contain a ResourceMark. This would be a bad thing :-).

I believe we should add a NoResourceMarkVerifier object before creating
the various task objects in the vm thread, to make sure that we catch
any problems before they happen.

The meaty part of this bug is that at first inspection, I could not
find a NoResourceMarkVerifier class, one may need to be written.
###@###.### 2004-12-09 21:17:51 GMT

Comments
Since JDK-8204951 Parallel GC uses the WorkGang abstraction for parallel workers, making this change obsolete.
18-06-2020

CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: dragon
14-06-2004

EVALUATION This is an RFE that will be addressed post 1.5. A NoResourceMarkVerifier class should be created and applied as suggested in the description.
11-06-2004

PUBLIC COMMENTS no comment
10-06-2004