Fibers and stack traces
Bela Ban
belaban at mailbox.org
Mon Jul 6 07:58:24 UTC 2020
Hi Ron
On 04.07.20 15:58, Ron Pressler wrote:
> Hi Bela! I've been a fan of JGroups for many years, and I'm happy to see you're
> interested in Loom.
Thanks!
No problem for now, as I can keep track of my virtual threads (all of
them are created via a factory), install a signal handler (USR1) and
dump them, plus regular threads when getting that signal.
I'll provide my 5 cents when the discussion about supportability starts.
Keep up the good work!
Cheers,
> You're asking a good question. Serviceability/observability is a top concern for
> Loom, and we know we need to come up with a good story for thread dumps, but
> haven't yet settled on an approach. Here are two ideas we've considered so far:
>
> 1. Have the creator of a virtual thread opt-in to mark a thread as "managed"
> (all platform threads would be automatically managed), which would make those
> particular ones, but no others, appear in thread dumps and perhaps other
> observability mechanisms, like platform MXBeans.
>
> 2. Take advantage of structured concurrency, and have those threads created in a
> structured scope (via some ExecutorService), but no others, displayed in thread
> dumps in a tree that captures their scope. Such presentation would hopefully make
> it easier to make sense of a great number of threads.
>
> Personally, I prefer the second idea, but neither has been prototyped yet.
>
> — Ron
>
>
>
>
> On 4 July 2020 at 08:20:25, Bela Ban (belaban at mailbox.org(mailto:belaban at mailbox.org)) wrote:
>
>> Hi everyone (from a just-joined member)
>>
>> quick introduction: Bela Ban, JGroups lead (jgroups.org), I work for Red
>> Hat / IBM. My interest in Loom is to see how/whether fibers affect
>> performance, e.g. for blocking RPCs across a cluster. Also, the wet
>> dream of continuing down the road of blocking programming without the
>> callback hell of async / reactive programming (but still reaping the
>> benefits of fewer ctx switches) looks enticing!
>>
>> Testing performance of fibers against JGroups looks good, besides the
>> occasional JVM (16-ea29) crash :-)
>>
>> The question I have is about stack traces, here's an email excerpt I
>> sent to Alan earlier this week (I did read through some of the archives,
>> but might have overseen this):
>>
>> A big issue, however, is that stack dumps don't show anything
>> meaningful. If a fiber is in BLOCKED or (TIME_)WAITING state, then its
>> stack trace isn't visible.
>>
>> If I keep track of all fibers I create, then I can provide a thread dump
>> of them myself: see the attached (deadlocking) program.
>>
>> But most customers will want to produce this via
>> jstack/CTRL-kill/whatever, so the above is not feasible.
>>
>> What have you guys planned to tackle this? I know I should probably be
>> asking this on the ML...
>>
>> I understand that a stack trace of millions of threads is cumbersome, but
>> * I assume most apps still use only a few or a few tens of threads, so
>> this would still be useful
>> * Filtering could be used, e.g. only BLOCKED threads, or threads
>> starting with "Invoker*"
>>
>> Thoughts?
>>
>>
>> --
>> Bela Ban | http://www.jgroups.org
>>
>
--
Bela Ban | http://www.jgroups.org
More information about the loom-dev
mailing list