JDK-4381840 : JVM/DI CLASS_UNLOAD event is never issued
  • Type: Bug
  • Component: vm-legacy
  • Sub-Component: jvmdi
  • Affected Version: 1.3.0
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2000-10-23
  • Updated: 2002-09-06
  • Resolved: 2002-09-06
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 Other
1.3.1 betaFixed 1.4.0Fixed
Related Reports
Relates :  
Relates :  
Description
daniel.daugherty@Eng 2000-10-23

While working on the following JVM/PI bug:

    4328741 3/5 assert(!Scavenge::is_active() && !MarkSweep::is_active(),
                "locking failed")

I noticed that the JVM/DI equivalent code is not implemented.

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: ladybird FIXED IN: ladybird-beta INTEGRATED IN: ladybird-beta merlin-beta
14-06-2004

EVALUATION daniel.daugherty@Eng 2000-11-06 The NSK team provided a test case that is the JVM/DI version of the test for 4328741. This test case shows that JVM/DI CLASS_UNLOAD event is never issued and also gets into the code where the event generation is commented out. There are a couple of complicating factors: - Currently all JVM/DI event generation is done by a JavaThread. The mechanism has asserts that trigger if the VMThread tries to issue a JVM/DI event. The solution is to create an infrastructure that allows the VMThread to be a proxy for posting CLASS_UNLOAD events on behalf of a JavaThread. - Posting the CLASS_UNLOAD event with a non-NULL clazz field causes a crash later in the GC process. GC attempts to deref the jobject and crashes due to an invalid memory address. The solution is to have the posting function clean up the jobject values after the event handler has returned.
11-06-2004

SUGGESTED FIX daniel.daugherty@Eng 2000-11-06 See attached webrev.tar file for the changes.
06-11-2000