-
Notifications
You must be signed in to change notification settings - Fork 9
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
Call trace_object on an empty space #102
Labels
C-bug
Category: Bug
Comments
This was referenced Mar 9, 2022
qinsoon
added a commit
to mmtk/mmtk-core
that referenced
this issue
Mar 10, 2022
If a binding uses `ObjectReference` to point to an address that is not within our allocated memory, the SFT and the side metadata for the `ObjectReference` may not be initialized properly. This PR introduces a solution by introducing a constant `ObjectModel::OBJECT_REF_OFFSET_BEYOND_CELL`. If a binding may use object reference to point to an address beyond the cell we allocate, they need to provide a `Some` value for the constant. MMTk allocators need to guarantee that the object reference for an allocation won't point to a new chunk (so its metadata is properly initialized and is the same as the allocation result). This PR fixes mmtk/mmtk-jikesrvm#102. This PR: * introduces a constant `ObjectModel::OBJECT_REF_OFFSET_BEYOND_CELL`. By default, it is `None`. If a binding may use `ObjectReference` to point to an address outside a cell, they need to set the constant to a proper `Some` value. * Introduces a module `util::alloc::object_ref_guard`, which includes a few methods that help allocators to check and avoid breaking the invariant. * adds a few assertions to check if our allocation addresses and object references have valid SFT entries. * introduces a space acquire lock so we can guarantee when pages are acquired from a page resource, the SFT for the pages are always initialized. * removes unnecessary methods in `Map32`.
qinsoon
added a commit
that referenced
this issue
Mar 10, 2022
This PR updates MMTk core to mmtk/mmtk-core#555, and fixes #102
tianleq
pushed a commit
to tianleq/mmtk-core
that referenced
this issue
Apr 4, 2022
If a binding uses `ObjectReference` to point to an address that is not within our allocated memory, the SFT and the side metadata for the `ObjectReference` may not be initialized properly. This PR introduces a solution by introducing a constant `ObjectModel::OBJECT_REF_OFFSET_BEYOND_CELL`. If a binding may use object reference to point to an address beyond the cell we allocate, they need to provide a `Some` value for the constant. MMTk allocators need to guarantee that the object reference for an allocation won't point to a new chunk (so its metadata is properly initialized and is the same as the allocation result). This PR fixes mmtk/mmtk-jikesrvm#102. This PR: * introduces a constant `ObjectModel::OBJECT_REF_OFFSET_BEYOND_CELL`. By default, it is `None`. If a binding may use `ObjectReference` to point to an address outside a cell, they need to set the constant to a proper `Some` value. * Introduces a module `util::alloc::object_ref_guard`, which includes a few methods that help allocators to check and avoid breaking the invariant. * adds a few assertions to check if our allocation addresses and object references have valid SFT entries. * introduces a space acquire lock so we can guarantee when pages are acquired from a page resource, the SFT for the pages are always initialized. * removes unnecessary methods in `Map32`.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I started to see this error in #101
This is potentially a bug introduced by MMTk SFT trace object: mmtk/mmtk-core@e85d997
The text was updated successfully, but these errors were encountered: