RFR(S): 8247533: SA stack walking sometimes fails with sun.jvm.hotspot.debugger.DebuggerException: get_thread_regs failed for a lwp

David Holmes david.holmes at oracle.com
Thu Jun 18 02:43:37 UTC 2020


Hi Chris,

On 18/06/2020 6:34 am, Chris Plummer wrote:
> Hello,
> 
> Please help review the following:
> 
> https://bugs.openjdk.java.net/browse/JDK-8247533
> http://cr.openjdk.java.net/~cjplummer/8247533/webrev.00/index.html
> 
> The CR contains all the needed details. Here's a summary of changes in 
> each file:

The problem sounds to me like a variation of the more general problem of 
not ensuring a thread is kept alive whilst acting upon it. I don't know 
how the SA finds these references to the threads it is going to 
stackwalk, but is it possible to fix this via appropriate uses of 
ThreadsListHandle/Iterator?

Cheers,
David

> src/jdk.hotspot.agent/linux/native/libsaproc/LinuxDebuggerLocal.cpp
> src/jdk.hotspot.agent/macosx/native/libsaproc/MacosxDebuggerLocal.m
> src/jdk.hotspot.agent/windows/native/libsaproc/sawindbg.cpp
> -Instead of throwing an exception when the OS ThreadID is invalid, print 
> a warning.
> 
> src/jdk.hotspot.agent/linux/native/libsaproc/ps_proc.c
> -Improve a print_debug message
> 
> src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThread.java 
> 
> src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/LinuxThread.java 
> 
> src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/windbg/amd64/WindbgAMD64Thread.java 
> 
> -Deal with the array of registers read in being null due to the OS 
> ThreadID not being valid.
> 
> src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebuggerLocal.java 
> 
> src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/LinuxDebuggerLocal.java 
> 
> -Fix issue with "sun.jvm.hotspot.debugger.DebuggerException" appearing 
> twice when printing the exception.
> 
> thanks,
> 
> Chris


More information about the serviceability-dev mailing list