-
Notifications
You must be signed in to change notification settings - Fork 729
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
JDK21 serviceability_jvmti_j9_0_FAILED serviceability/jvmti/vthread/BoundVThreadTest/BoundVThreadTest.java Type=Segmentation error vmState=0x00040000 #17868
Comments
gdb stack trace
Test source code
Summary
SolutionDerive the
References |
babsingh
added a commit
to babsingh/openj9
that referenced
this issue
Aug 3, 2023
JVMTI GetAllStackTraces only tracks live platform threads. This change correctly and consistently derives the threadObject from J9VMThread->carrierThreadObject in GetAllStackTraces for JDK19+. Currently, J9VMThread->threadObject is used in some places, which is incorrect since it can also point to a virtual thread. Related: eclipse-openj9#17868 Signed-off-by: Babneet Singh <[email protected]>
This was referenced Aug 3, 2023
babsingh
added a commit
to babsingh/openj9-openjdk-jdk21
that referenced
this issue
Aug 3, 2023
After GetAllStackTraces, derive the thread object from the stack_info array, which is filled by GetAllStackTraces. Currently, the thread object is retrieved from the threads_ptr array, which is filled by GetAllThreads before the call to GetAllStackTraces. Live platform threads might have been created or destroyed between the call to GetAllThreads and GetAllStackTraces. This makes the threads_ptr array stale after GetAllStackTraces. A bad thread object is accessed from the stale threads_ptr which causes a segfault. Related: eclipse-openj9/openj9#17868 Signed-off-by: Babneet Singh <[email protected]>
PRs which will FIX this issue:
|
tajila
pushed a commit
to ibmruntimes/openj9-openjdk-jdk
that referenced
this issue
Aug 12, 2023
After GetAllStackTraces, derive the thread object from the stack_info array, which is filled by GetAllStackTraces. Currently, the thread object is retrieved from the threads_ptr array, which is filled by GetAllThreads before the call to GetAllStackTraces. Live platform threads might have been created or destroyed between the call to GetAllThreads and GetAllStackTraces. This makes the threads_ptr array stale after GetAllStackTraces. A bad thread object is accessed from the stale threads_ptr which causes a segfault. Related: eclipse-openj9/openj9#17868 Signed-off-by: Babneet Singh <[email protected]>
Closing, all PRs in #17868 (comment) have been merged. |
jasonkatonica
pushed a commit
to jasonkatonica/openj9-openjdk-jdk
that referenced
this issue
Aug 22, 2023
After GetAllStackTraces, derive the thread object from the stack_info array, which is filled by GetAllStackTraces. Currently, the thread object is retrieved from the threads_ptr array, which is filled by GetAllThreads before the call to GetAllStackTraces. Live platform threads might have been created or destroyed between the call to GetAllThreads and GetAllStackTraces. This makes the threads_ptr array stale after GetAllStackTraces. A bad thread object is accessed from the stale threads_ptr which causes a segfault. Related: eclipse-openj9/openj9#17868 Signed-off-by: Babneet Singh <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Failure link
From an internal grinder build(
paix906
) - launched at #17865Rerun in Grinder - Change TARGET to run only the failed test targets.
Optional info
Failure output (captured from console output)
50x internal grinder - 3/50 failing rate
FYI @babsingh
The text was updated successfully, but these errors were encountered: