Re: glibc mutex deadlock in signal handler
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 4, 2015, 21:56 UTC
- Message-ID
- <xmqq7fo5g85x.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20150904092355.GA524@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 5 quoted lines
> Perhaps we should reconsider whether f4c3edc (vreportf: avoid > intermediate buffer, 2015-08-11) is a good idea. Note that snprintf is > not on the list of safe functions, but I imagine that in practice it is > fine. Though just avoiding error()/warning() in signal handlers might be > a more practical solution anyway.
I had exactly the same thought when I read the initial report here.
I wish we can just do "if (in_signal) return;" at the beginning of vreportf(), but we would not want a global variable there, so... ;-)
Further, I briefly hoped that avoiding error/warning in the signal handler codepath would allow us to be more lax around allocations, but I suspect that it unfortunately would not help us that much, as we may be calling these functions in low memory situations.
So let's queue Takashi's patch as-is for now and look at other signal codepaths.
Thanks.