This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
Re: [Bug malloc/16159] malloc_printerr() deadlock, when calling malloc_printerr() again
- From: OndÅej BÃlka <neleai at seznam dot cz>
- To: carlos at redhat dot com <sourceware-bugzilla at sourceware dot org>
- Cc: glibc-bugs at sourceware dot org
- Date: Wed, 13 Nov 2013 08:57:16 +0100
- Subject: Re: [Bug malloc/16159] malloc_printerr() deadlock, when calling malloc_printerr() again
- Authentication-results: sourceware.org; auth=none
- References: <bug-16159-131 at http dot sourceware dot org/bugzilla/> <bug-16159-131-yQF598wncT at http dot sourceware dot org/bugzilla/>
On Wed, Nov 13, 2013 at 03:57:02AM +0000, carlos at redhat dot com wrote:
> One resolution to this problem is to ensure that malloc has a fall-back
> allocation scheme that is robust against failure and then during the
> malloc_printerr we flip an internal bit and switch to the temporary reserve
> allocations. We could also create a new internal API for using the temporary
> allocations and then dlopen could use that in the event that we are crashing
> and need to dlopen one last library (the unwinder on demand). That would
> prevent other threads from consuming the reserve allocations after
> malloc_printerr is entered by another thread.
>
> This is a considerable amount of work and we aren't going to get to this issue
> until a core developer or someone with serious interest commits to fixing this.
> Therefore I'm moving this to SUSPENDED until we find the resources to fix the
> issue.
>
Why not reuse a singal-safe malloc for dlopen?