Fibers and stack traces
Bela Ban
belaban at mailbox.org
Sat Jul 4 07:19:28 UTC 2020
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
More information about the loom-dev
mailing list