-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Crash when enabling weak refs #184
Comments
Not sure what's the problem. But our CI did not catch this. |
Can you try if it works without harness/probe? |
This is what's happening: https://github.com/mmtk/mmtk-openjdk/blob/master/mmtk/src/object_scanning.rs#L121 impl OopIterate for InstanceRefKlass {
fn oop_iterate(&self, oop: Oop, closure: &mut impl EdgeVisitor<OpenJDKEdge>) {
...
match self.instance_klass.reference_type {
...
ReferenceType::Soft => add_soft_candidate(reference),
...
ReferenceType::Final | ReferenceType::Other => {
Self::process_ref_as_strong(oop, closure)
} When I have a partially working fix for soft-refs only. I'll try to fix it for all the reference types. |
|
The weak processing on JikesRVM and OpenJDK is different. For JikesRVM, here are the steps of soft processing:
For OpenJDK (vanilla, without mmtk):
Yes my previous discussion on But this means that the newly discovered unreachable soft references during reference processing are not properly marked and forwarded. They're simply remembered by the reference processor. This is correct for JikesRVM, because the soft-refs list is built ahead of time, as part of the |
So for openjdk, we need to (1) disable (2) is still a problem. When |
The text was updated successfully, but these errors were encountered: