[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    Re: RFR: 8284828: Use `os::ThreadCrashProtection` to protect AsyncGetCallTrace from crashing [v9]
From:       David Holmes <dholmes () openjdk ! java ! net>
Date:       2022-04-21 3:11:26
Message-ID: _3ndQ6uF29rGkGMmcxHykEIE1gAMyIxa8oXmxkz3Kxw=.188d2075-f2ed-4210-b4d4-80c8a1f1a5fa () github ! com
[Download RAW message or body]

On Thu, 14 Apr 2022 15:19:17 GMT, Johannes Bechberger <duke@openjdk.java.net> wrote:

> > Move the AsyncGetCallTrace method implementation into a separate method and wrap \
> > its call in non-assert compilation mode in `os::ThreadCrashProtection` like it is \
> > done in [JFR](https://github.com/openjdk/jdk/blob/965ea8d9cd29aee41ba2b1b0b0c67bb67eca22dd/src/hotspot/share/jfr/periodic/sampling/jfrThreadSampler.cpp#L165).
> >  This prevents AsyncGetCallTrace from crashing on segmentation faults (but not on \
> > `guarantee`s). 
> > If a crash is observed, then the `num_frames` field of the trace is set to \
> > `ticks_unknown_state` (-7) to signal a state that cannot be properly handled. \
> > `ticks_unknown_state` is currently also used for signaling unknown thread states \
> > but this should not be a problem, as the semantic is the same. If `num_frames` \
> > already has an error code then this error code is not changed. This helps to \
> > distinguish between errors in walking threads in Java and non-Java mode, as \
> > `num_frames` is set there before the walking to the appropriate error code. 
> > _Thanks for @tstuefe for suggesting this._
> 
> Johannes Bechberger has updated the pull request incrementally with one additional \
> commit since the last revision: 
> Use JavaThread::current_or_null

Sorry I wasn't clear - doing this kind of change as part of the ASGCT2 JEP is what I \
was suggesting. But that is not a JEP that I can actively get involved in. It is \
really for the serviceability team and JFR team to comment on. Unfortunately folks \
are very busy at the moment due to the Project Loom preview, so it may be hard to get \
that discussion going.

-------------

PR: https://git.openjdk.java.net/jdk/pull/8225


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic