Skip to content
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

Remove atomic setter transformers #428

Open
wants to merge 5 commits into
base: develop
Choose a base branch
from

Conversation

eupp
Copy link
Collaborator

@eupp eupp commented Nov 27, 2024

Remove separate bytecode transformers which tracked methods like .set, .compareAndSet, etc, of VarHandle, AFU, and Unsafe APIs, to inform the ObjectTracker about changes in object graph topology (registerObjectLink listener).

Instead, modify ManagedStrategy::beforeMethodCall to parse the method name and arguments to extract relevant information and pass it into ObjectTracker.

Also, it looks like the new approach is more robust and handles more cases, which were not handled previously (e.g. atomic array APIs). As such, there are changes in some representation tests --- the reported traces now include more events, which were previously incorrectly classified as local object accesses.

eupp added 4 commits November 27, 2024 19:26
…d of `afterReflectiveSetter`

Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
@ndkoval
Copy link
Collaborator

ndkoval commented Nov 28, 2024

@eupp, do we have tests checking that the local object detection works correctly with updates via methods like .set, .compareAndSet, etc, of VarHandle, AFU, and Unsafe APIs

@eupp
Copy link
Collaborator Author

eupp commented Dec 10, 2024

@eupp, do we have tests checking that the local object detection works correctly with updates via methods like .set, .compareAndSet, etc, of VarHandle, AFU, and Unsafe APIs

Apparently, there are tests for AFU, Unsafe, and VarHandle APIs, but it looks like there are no tests for Atomics and Atomic Arrays. I can add them.

@eupp
Copy link
Collaborator Author

eupp commented Dec 24, 2024

I have added new tests to check that local object detection works correctly with AtomicReference and AtomicReferenceArray classes. Tests for other APIs (AFU, VarHandle, Unsafe) were already there.

@eupp eupp marked this pull request as ready for review December 24, 2024 18:14
@eupp eupp requested a review from ndkoval December 24, 2024 19:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants