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

Remote debugging stops with AGENT_ERROR_INVALID_THREAD(203) #19759

Closed
pshipton opened this issue Jun 25, 2024 · 2 comments
Closed

Remote debugging stops with AGENT_ERROR_INVALID_THREAD(203) #19759

pshipton opened this issue Jun 25, 2024 · 2 comments

Comments

@pshipton
Copy link
Member

See ibmruntimes/Semeru-Runtimes#80 for details.

@babsingh
Copy link
Contributor

babsingh commented Jul 9, 2024

@thallium Please investigate the issue in ibmruntimes/Semeru-Runtimes#80. I was unable to assign ibmruntimes/Semeru-Runtimes#80 to you; you will have to post a comment in the issue for your name to show in the Assignees list.

Begin by reproducing the issue locally using the instructions in ibmruntimes/Semeru-Runtimes#80 (comment). Then, get in touch with @JasonFengJ9 for insights on debugging JDWP issues.

fyi @tajila

thallium pushed a commit to thallium/openj9 that referenced this issue Jul 12, 2024
Currently destroyThreadData() is hooked onto the VirtualThreadEnd event
which is called before the event callback. In JDWP where the agent uses
TLS to associate nodes in the running thread list. Clearing TLS before
the event callback makes the agent lost track of the node thus failed to
remove existed virtual threads from the list. This commit removes
jvmtiHookVirtualThreadDestroy() and calls destroyThreadData() directly
inside jvmtiHookVirtualThreadEnd().

Fixes:
ibmruntimes/Semeru-Runtimes#80
eclipse-openj9#19759

Signed-off-by: Gengchen Tuo <[email protected]>
thallium pushed a commit to thallium/openj9 that referenced this issue Jul 12, 2024
Currently destroyThreadData() is hooked onto the VirtualThreadEnd event
which is called before the event callback. In JDWP, the agent uses TLS
to associate nodes in the running thread list. Clearing TLS before
the event callback makes the agent lost track of the node thus failed to
remove existed virtual threads from the list. This commit removes
jvmtiHookVirtualThreadDestroy() and calls destroyThreadData() directly
inside jvmtiHookVirtualThreadEnd().

Fixes:
ibmruntimes/Semeru-Runtimes#80
eclipse-openj9#19759

Signed-off-by: Gengchen Tuo <[email protected]>
thallium pushed a commit to thallium/openj9 that referenced this issue Jul 12, 2024
Currently destroyThreadData() is hooked onto the VirtualThreadEnd event
which is called before the event callback. In JDWP, the agent uses TLS
to associate nodes in the running thread list. Clearing TLS before
the event callback makes the agent lost track of the node thus failed to
remove existed virtual threads from the list. This commit removes
jvmtiHookVirtualThreadDestroy() and calls destroyThreadData() directly
inside jvmtiHookVirtualThreadEnd().

Fixes:
ibmruntimes/Semeru-Runtimes#80
eclipse-openj9#19759

Signed-off-by: Gengchen Tuo <[email protected]>
thallium pushed a commit to thallium/openj9 that referenced this issue Jul 12, 2024
Currently destroyThreadData() is hooked onto the VirtualThreadEnd event
which is called before the event callback. In JDWP, the agent uses TLS
to associate nodes in the running thread list. Clearing TLS before
the event callback makes the agent lose track of the node thus failed to
remove existed virtual threads from the list. This commit removes
jvmtiHookVirtualThreadDestroy() and calls destroyThreadData() directly
inside jvmtiHookVirtualThreadEnd().

Fixes:
ibmruntimes/Semeru-Runtimes#80
eclipse-openj9#19759

Signed-off-by: Gengchen Tuo <[email protected]>
thallium pushed a commit to thallium/openj9 that referenced this issue Jul 12, 2024
Currently destroyThreadData() is hooked onto the VirtualThreadEnd event
which is called before the event callback. In JDWP, the agent uses TLS
to associate nodes in the running thread list. Clearing TLS before
the event callback makes the agent lose track of the node thus failed to
remove existed virtual threads from the list. This commit removes
jvmtiHookVirtualThreadDestroy() and calls destroyThreadData() directly
inside jvmtiHookVirtualThreadEnd().

Fixes:
ibmruntimes/Semeru-Runtimes#80
eclipse-openj9#19759

Signed-off-by: Gengchen Tuo <[email protected]>
thallium pushed a commit to thallium/openj9 that referenced this issue Jul 12, 2024
Currently destroyThreadData() is hooked onto the VirtualThreadEnd event
which is called before the event callback. In JDWP, the agent uses TLS
to associate nodes in the running thread list. Clearing TLS before
the event callback makes the agent lose track of the node thus failed to
remove existed virtual threads from the list. This commit removes
jvmtiHookVirtualThreadDestroy() and calls destroyThreadData() directly
inside jvmtiHookVirtualThreadEnd().

Fixes:
ibmruntimes/Semeru-Runtimes#80
eclipse-openj9#19759

Signed-off-by: Gengchen Tuo <[email protected]>
thallium added a commit to thallium/openj9 that referenced this issue Jul 12, 2024
Currently destroyThreadData() is hooked onto the VirtualThreadEnd event
which is called before the event callback. In JDWP, the agent uses TLS
to associate nodes in the running thread list. Clearing TLS before
the event callback makes the agent lose track of the node thus failed to
remove existed virtual threads from the list. This commit removes
jvmtiHookVirtualThreadDestroy() and calls destroyThreadData() directly
inside jvmtiHookVirtualThreadEnd().

Fixes:
ibmruntimes/Semeru-Runtimes#80
eclipse-openj9#19759

Signed-off-by: Gengchen Tuo <[email protected]>
thallium added a commit to thallium/openj9 that referenced this issue Jul 16, 2024
Currently destroyThreadData() is hooked onto the VirtualThreadEnd event
which is called before the event callback. In JDWP, the agent uses TLS
to associate nodes in the running thread list. Clearing TLS before
the event callback makes the agent lose track of the node thus failed to
remove existed virtual threads from the list. This commit adds JVMTI
VirtualThreadDestroy event which is triggered after VirtualThreadEnd and
jvmtiHookVirtualThreadDestroy() is hooked onto VirtualThreadDestroy
event.

Fixes:
ibmruntimes/Semeru-Runtimes#80
eclipse-openj9#19759

Signed-off-by: Gengchen Tuo <[email protected]>
thallium added a commit to thallium/openj9 that referenced this issue Jul 16, 2024
Currently destroyThreadData() is hooked onto the VirtualThreadEnd event
which is called before the event callback. In JDWP, the agent uses TLS
to associate nodes in the running thread list. Clearing TLS before
the event callback makes the agent lose track of the node thus failed to
remove existed virtual threads from the list. This commit adds JVMTI
VirtualThreadDestroy event which is triggered after VirtualThreadEnd and
jvmtiHookVirtualThreadDestroy() is hooked onto VirtualThreadDestroy
event.

Fixes:
ibmruntimes/Semeru-Runtimes#80
eclipse-openj9#19759

Signed-off-by: Gengchen Tuo <[email protected]>
thallium added a commit to thallium/openj9 that referenced this issue Jul 16, 2024
Currently destroyThreadData() is hooked onto the VirtualThreadEnd event
which is called before the event callback. In JDWP, the agent uses TLS
to associate nodes in the running thread list. Clearing TLS before
the event callback makes the agent lose track of the node thus failed to
remove existed virtual threads from the list. This commit adds JVMTI
VirtualThreadDestroy event which is triggered after VirtualThreadEnd and
jvmtiHookVirtualThreadDestroy() is hooked onto VirtualThreadDestroy
event.

Fixes:
ibmruntimes/Semeru-Runtimes#80
eclipse-openj9#19759

Signed-off-by: Gengchen Tuo <[email protected]>
thallium added a commit to thallium/openj9 that referenced this issue Jul 17, 2024
Currently destroyThreadData() is hooked onto the VirtualThreadEnd event
which is called before the event callback. In JDWP, the agent uses TLS
to associate nodes in the running thread list. Clearing TLS before
the event callback makes the agent lose track of the node thus failed to
remove existed virtual threads from the list. This commit adds JVMTI
VirtualThreadDestroy event which is triggered after VirtualThreadEnd and
jvmtiHookVirtualThreadDestroy() is hooked onto VirtualThreadDestroy
event.

Fixes:
ibmruntimes/Semeru-Runtimes#80
eclipse-openj9#19759

Signed-off-by: Gengchen Tuo <[email protected]>
thallium added a commit to thallium/openj9 that referenced this issue Jul 17, 2024
Currently destroyThreadData() is hooked onto the VirtualThreadEnd event
which is called before the event callback. In JDWP, the agent uses TLS
to associate nodes in the running thread list. Clearing TLS before
the event callback makes the agent lose track of the node thus failed to
remove existed virtual threads from the list. This commit adds JVMTI
VirtualThreadDestroy event which is triggered after VirtualThreadEnd and
jvmtiHookVirtualThreadDestroy() is hooked onto VirtualThreadDestroy
event.

Fixes:
ibmruntimes/Semeru-Runtimes#80
eclipse-openj9#19759

Signed-off-by: Gengchen Tuo <[email protected]>
thallium added a commit to thallium/openj9 that referenced this issue Jul 18, 2024
Currently destroyThreadData() is hooked onto the VirtualThreadEnd event
which is called before the event callback. In JDWP, the agent uses TLS
to associate nodes in the running thread list. Clearing TLS before
the event callback makes the agent lose track of the node thus failed to
remove existed virtual threads from the list. This commit adds JVMTI
VirtualThreadDestroy event which is triggered after VirtualThreadEnd and
jvmtiHookVirtualThreadDestroy() is hooked onto VirtualThreadDestroy
event.

Fixes:
ibmruntimes/Semeru-Runtimes#80
eclipse-openj9#19759

Signed-off-by: Gengchen Tuo <[email protected]>
@babsingh
Copy link
Contributor

Closing as per ibmruntimes/Semeru-Runtimes#80 (comment).

tajila pushed a commit to tajila/openj9 that referenced this issue Jul 30, 2024
Currently destroyThreadData() is hooked onto the VirtualThreadEnd event
which is called before the event callback. In JDWP, the agent uses TLS
to associate nodes in the running thread list. Clearing TLS before
the event callback makes the agent lose track of the node thus failed to
remove existed virtual threads from the list. This commit adds JVMTI
VirtualThreadDestroy event which is triggered after VirtualThreadEnd and
jvmtiHookVirtualThreadDestroy() is hooked onto VirtualThreadDestroy
event.

Fixes:
ibmruntimes/Semeru-Runtimes#80
eclipse-openj9#19759

Signed-off-by: Gengchen Tuo <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants