-
Notifications
You must be signed in to change notification settings - Fork 417
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
SIGSEGV in memory profiler (when memalloc_add_event
calls traceback_free
)
#11751
Comments
FYI, this will be released (later today, I hope) in 2.18.1. I'm also attempting to back-port to the 2.17 and 2.16 lines (🤞). It'll be part of mainline starting in the 2.19.0 release. |
Confirming that 2.18.1 shipped. Would love to hear some folks weigh in on whether or not it solved this problem for them. |
We have some real serious production issues with 2.18.1 (and previous versions) with 2.14.1 because the last working one for us. We get a bunch of SIGSEGV and cripplingly high cpu/memory usage until everything dies. I made an actual support ticket (1984876) that I wanted to highlight here in case it's related. (might be a separate issue, but this is the only issue we found that seemed semi-related) |
@apenney following up with our support organization for the circumstantial details in your ticket. Will respond with top priority. |
@apenney I'm not sure yet whether your report is related to this one. I'm going to try to override our support processes and will iterate through there (it's a lot easier for me to review customer environments in the context of a support ticket than to ask for some kind of painful back-and-forth over Github Issues). Note that my fix here DID introduce a performance regression, which has been fixed and backported by @nsrip-dd, but it has yet to land in a release. |
@apenney still investigating this. Let me break down where we're at.
Anyway @apenney, in terms of timeline, here's what you can expect.
|
We're hitting SIGSEGVs every now and then with the memory profiler.
Python version is 3.11.11. ddtrace is 2.17.3. We're using the amd64 architecture.
I've extracted a native stack traceback from the coredump:
It seems to me that this call access some invalid memory.
I believe #11460 might fix it; a possible explanation is that two threads decide to ditch the same traceback, in case reservoir sampling yielded the same index in both threads, then we might call
traceback_free
twice on the same pointer (as long as it isn't guarded by a lock).I'm not sure if that's the case though, but it's a possible explanation.
The text was updated successfully, but these errors were encountered: