On Mon, Aug 22, 2016 at 07:35:49PM +0200, Otto Moerbeek wrote:

> On Mon, Aug 22, 2016 at 07:07:21PM +0200, Gregor Best wrote:
> 
> > On Mon, Aug 22, 2016 at 05:03:34PM +0200, Otto Moerbeek wrote:
> > > On Mon, Aug 22, 2016 at 05:00:12PM +0200, Otto Moerbeek wrote:
> > > 
> > > > Hmm, indeed, looking into it.
> > > 
> > > Fixed diff now online,
> > > [...]
> > 
> > With that one, Firefox and Chromium work fine. There's a problem with
> > Gimp though:
> > 
> > $ gimp
> > gimp(51103) in free(): error: bogus pointer (double free?) 0x127da3e84400
> > gimp(51103) in malloc(): error: recursive call
> > GLib (gthread-posix.c): Unexpected error from C library during 'malloc':
> > Resource deadlock avoided.  Aborting.
> > 
> > This doesn't happen when starting Gimp for the first time, so the
> > process to reproduce it (on my machine at least) is:
> > 
> > - install gimp
> > - move ~/.gimp-2.8 out of the way if it exists to make sure it's a clean
> >   start
> > - launch gimp
> > - (gimp works fine now)
> > - close gimp, start it again
> > - the above error message appears during startup while starting the
> >   extension "extension-script-fu" and gimp doesn't continue starting
> > 
> > How can I debug this further? At first glance, I don't really see a way
> > for malloc to be called recursively :/
> 
> most likely an SIGABRT signal handler is involved.

indeed, attaching gdb shows that.

The problem is in a race wrt the setting of __isthreaded.

Changing the __isthreaded test in ofree() to TRUE fixed this for me.

More later, have to do some other things first.

        -Otto


Reply via email to