-
-
Notifications
You must be signed in to change notification settings - Fork 942
Description
Since upgrading to 9.2.11.1 we have started to get occasional stack overflow exceptions. I think at this point that turning off invokedynamic.yield has fixed it for us.
Initially the stack traces looked unremarkable and certainly not like they should overflow the stack (as in #6124 ), but if I run java with -XX:+UnlockDiagnosticVMOptions and -XX:+ShowHiddenFrames I get this: https://gist.github.com/pcarlisle/93f0aebcb90335fd38dbe071d22e22a0
It's cut off by the default stack limit of 1024 but is almost entirely just these two lines repeating:
at java.base/java.lang.invoke.DelegatingMethodHandle$Holder.delegate(DelegatingMethodHandle$Holder)
at java.base/java.lang.invoke.LambdaForm$MH/0x00000008418fd040.guard(LambdaForm$MH)
A heap dump taken shortly after one of these exceptions also shows hundreds of megabytes retained in a single YieldSite instance.
It takes some hours or even a couple days for these to occur and we no longer have it running this way in production where it was happening but I can try to track down any more information you might need.
(our own tracking is at https://tickets.puppetlabs.com/browse/SERVER-2793 and is public)
Environment Information
jruby 9.2.11.1
Linux 3.10