On 16/06/14 11:51, Phil Mayers wrote:
We've got a version of 3.0.x HEAD running on our test server. It's sporadically hanging - stopping answering requests.
I've caught a process doing it - backtrace here:
https://gist.github.com/philmayers/5582ca9fb89f373919b5
Looks like it's actually faulted, but the fault handler stuff is stuck on a mutex - inside talloc?
Huh, looks like backtrace() is actually calling malloc(). Oh dear: https://sourceware.org/bugzilla/show_bug.cgi?id=956 I'd love to say I'm surprised by the tone in the comments of that bug, but I've read enough glibc bugs to know that it was a common problem in the mid-2000s... See however the far more reasonable and clueful: https://sourceware.org/bugzilla/show_bug.cgi?id=16159 Basically - backtrace() not safe to call from signal handlers by the looks of it? Glumness. Still not clear why the process is SEGVing - vp->length is 3, talloc_array should not fail. I guess memory corruption of some sort?