Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 19 Mar 2016 12:32:56 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        "Oleg V. Nauman" <oleg@opentransfer.com>
Cc:        freebsd-current@freebsd.org
Subject:   Re: Fatal error 'mutex is on list' at line 139 in file /usr/src/lib/libthr/thread/thr_mutex.c (errno = 35)
Message-ID:  <20160319103256.GD1741@kib.kiev.ua>
In-Reply-To: <45576337.8zmzmA87YE@asus.theweb.org.ua>
References:  <5093647.qxI0C33PyG@asus.theweb.org.ua> <2033024.6HYPrpyIJj@asus.theweb.org.ua> <20160319101433.GB1741@kib.kiev.ua> <45576337.8zmzmA87YE@asus.theweb.org.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Mar 19, 2016 at 12:24:11PM +0200, Oleg V. Nauman wrote:
> On Saturday 19 March 2016 12:14:33 Konstantin Belousov wrote:
> > On Sat, Mar 19, 2016 at 09:03:56AM +0200, Oleg V. Nauman wrote:
> > > On Friday 18 March 2016 11:55:31 Konstantin Belousov wrote:
> > > > On Fri, Mar 18, 2016 at 08:14:57AM +0200, Konstantin Belousov wrote:
> > > > > Yes, please.  It would be significantly easier to diagnose the problem
> > > > > if
> > > > > the minimal example is provided.  If not, please pack one crashing app
> > > > > and all it non-system libraries and provide the tarball to me.
> > > > 
> > > > Meantime you could also try the following change.  I doubt that it would
> > > > fix your issue, but it is possibly related.  Only libthr needs to be
> > > > rebuilt.
> > > > 
> > > > diff --git a/lib/libthr/thread/thr_fork.c b/lib/libthr/thread/thr_fork.c
> > > > index 7256b68..531e09c 100644
> > > > --- a/lib/libthr/thread/thr_fork.c
> > > > +++ b/lib/libthr/thread/thr_fork.c
> > >  
> > >  No it is still coredumping.
> > > 
> > > The only positive effect is that segfaults are quite occasional comparing
> > > to stock libthr
> > > 
> > > Loaded symbols for /libexec/ld-elf.so.1
> > > #0  0x00000008041b2d6a in thr_kill () from /lib/libc.so.7
> > > [New Thread 809215000 (LWP 100253/<unknown>)]
> > > (gdb) bt
> > > #0  0x00000008041b2d6a in thr_kill () from /lib/libc.so.7
> > > #1  0x00000008041b2d3b in __raise (s=6) at
> > > /usr/src/lib/libc/gen/raise.c:52
> > > #2  0x00000008041b2ca9 in abort () at /usr/src/lib/libc/stdlib/abort.c:65
> > > #3  0x0000000803eda67c in _thread_exit (fname=<value optimized out>,
> > > 
> > >     lineno=<value optimized out>, msg=<value optimized out>)
> > >     at /usr/src/lib/libthr/thread/thr_exit.c:182
> > > 
> > > #4  0x0000000803ed56fc in mutex_lock_common (m=<value optimized out>,
> > > 
> > >     abstime=<value optimized out>, cvattach=<value optimized out>)
> > >     at /usr/src/lib/libthr/thread/thr_mutex.c:139
> > > 
> > > #5  0x0000000803ed4c20 in __pthread_mutex_timedlock (mutex=0x818200008,
> > > 
> > >     abstime=0x7fffffffc468) at /usr/src/lib/libthr/thread/thr_mutex.c:566
> > 
> > Again, please show me
> > p *mutex
> > p m
> > p *m
> > from the frame 5.
> 
>  #0  0x00000008041b2d6a in thr_kill () from /lib/libc.so.7
> [New Thread 809215000 (LWP 100253/<unknown>)]
> (gdb) f 5
> #5  0x0000000803ed4c20 in __pthread_mutex_timedlock (mutex=0x818200008,
>     abstime=0x7fffffffc468) at /usr/src/lib/libthr/thread/thr_mutex.c:566
> 566                     ret = mutex_lock_common(m, abstime, 0);
> Current language:  auto; currently minimal
> (gdb) p *mutex
> $1 = 0x8000000000000001
> (gdb) p m
> $2 = <value optimized out>
> (gdb) p *m
> Cannot access memory at address 0x1300000049
> (gdb)
Try devel/gdb.  Also, you could recompile libthr with DEBUG_FLAGS="-O0 -g"
to get rid of optimizations.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160319103256.GD1741>