-
-
Notifications
You must be signed in to change notification settings - Fork 419
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Actor appears to stall during GC #1994
Comments
@patternspandemic are you able to use vtune or instruments to profile only once the stall has happened? |
Connecting to the process after core usage reaches 100%:
Also looked to be the same results connecting to the running thread. |
I think a breakpoint inside of |
Also, out of curiousity, does this happen if you compile your program in debug mode |
The program uses
I was thinking the same. I have very little experience with debugging C/C++. I assume I'll need to compile ponyc with config=debug and compile my example with that pony -d and then run the example with gdb/lldb? I'm always up for learning something new. |
@patternspandemic to really get a good sense of what is going on you want to build the runtime as debug. build your ponyc from source using: then ideally, yes also use there's an lldb cheatsheet that should help with lldb (and a little for gdb as well) as long as your are familiar with stepwise debugging. give that a go and let me know if you get stuck and i can help out some more. |
Alright, I've been able to walk the thread spinning in
Looks like @sylvanc solved this one short after release of 0.14.0 At least I learned how to use LLDB. Thanks for your help @SeanTAllen |
Awesome. We'll be releasing 0.15.0 soon. Can you run with the latest source and verify the problem is fixed for you? |
Indeed a compilation of the example with master solves the issue! |
For all details and code see this Gist.
Discussion on the User list.
Worker
actor's apply behavior, 1 call every second.A profiling of the example program results in the following:
Nearly all time spent in
sweep_small
from ponyc/src/libponyrt/mem/heap.cIt looks to me like GC has hung up on the actor for some reason. Note that, in the example the
HTTPClunk
class mirror'sHTTPClient
's creation of anSSLContext
in it's constructor. I've not been able to determine whether the SSL library has anything to do with this issue or not. For all I know it's inclusion simply makes GC of the actor occur faster. I don't have the experience or knowledge of Pony.Pony is awesome.
The text was updated successfully, but these errors were encountered: