Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Mar 2017 09:59:00 -0600
From:      Justin Hibbits <jrh29@alumni.cwru.edu>
To:        FreeBSD Current <freebsd-current@freebsd.org>
Subject:   hang in dlclose() on rtld lock (powerpc64)
Message-ID:  <CAHSQbTBky3OcD9dkeW%2BzRxUw5ng-YT3k5iJ44G9PQgbOzYxufQ@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
When building ports in poudriere, I see gdk-pixbuf-query-modules and
gio-querymodules hanging on r314676, but working in r305820.  I took a
backtrace on both in gdb, and see the following (identical between both):

Program received signal SIGINT, Interrupt.
0x00000000506831d8 in .__sys.umtx_op () from /lib/libc.so.7
(gdb) bt
#0  0x00000000506831d8 in .__sys.umtx_op () from /lib/libc.so.7
#1  0x0000000050588010 in _umtx_op_err (obj=0x4, op=13, val=0, uaddr=0x0,
    uaddr2=0x0)
    at /home/chmeee/freebsd/pristine/lib/libthr/thread/thr_umtx.c:37
#2  0x00000000505881b8 in __thr_rwlock_wrlock (rwlock=<optimized out>,
    tsp=<optimized out>)
    at /home/chmeee/freebsd/pristine/lib/libthr/thread/thr_umtx.c:325
#3  0x00000000505965f0 in _thr_rwlock_wrlock (tsp=<optimized out>,
    rwlock=<optimized out>)
    at /home/chmeee/freebsd/pristine/lib/libthr/thread/thr_umtx.h:239
#4  _thr_rtld_wlock_acquire (lock=0x505bdd00)
    at /home/chmeee/freebsd/pristine/lib/libthr/thread/thr_rtld.c:141
#5  0x0000000050026bf4 in wlock_acquire (lock=0x5004cf20 <rtld_locks>,
    lockstate=0xffffffffffffcab0)
    at /home/chmeee/freebsd/pristine/libexec/rtld-elf/rtld_lock.c:222
#6  0x0000000050022b1c in dlclose (handle=0x51d62000)
    at /home/chmeee/freebsd/pristine/libexec/rtld-elf/rtld.c:3021
#7  0x0000000050022c90 in free_needed_filtees (n=0x509f7420)
    at /home/chmeee/freebsd/pristine/libexec/rtld-elf/rtld.c:2113
#8  0x0000000050022d18 in unload_filtees (obj=0x509fa800)
    at /home/chmeee/freebsd/pristine/libexec/rtld-elf/rtld.c:2129
#9  0x0000000050022e54 in unload_object (root=<optimized out>)
    at /home/chmeee/freebsd/pristine/libexec/rtld-elf/rtld.c:4464
#10 0x0000000050022c20 in dlclose (handle=0x50054000)
    at /home/chmeee/freebsd/pristine/libexec/rtld-elf/rtld.c:3044
---Type <return> to continue, or q <return> to quit---q


This happens on powerpc64.  I haven't tested on powerpc or any other arch.

- Justin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAHSQbTBky3OcD9dkeW%2BzRxUw5ng-YT3k5iJ44G9PQgbOzYxufQ>