On Sun, Oct 02, 2011 at 09:54:36PM +0200, Baptiste Daroussin wrote: > On Sun, Oct 02, 2011 at 12:55:27AM -0700, Doug Barton wrote: > > I'm on 9-current r225756 amd64. Since the latest version of libreoffice > > was committed I always get stuck with cppunittest pegging the cpu at > > 100% and never completing. I've tried removing the port and letting > > libreoffice reinstall it as a dependency, no luck. > > > > Here's where I'm getting stuck: > > > > ---------------------------------------------------------- > > - start unit test #1 on library ../../unxfbsd.pro/lib/libcppu_ifcontainer.so > > ---------------------------------------------------------- > > : && > > LD_LIBRARY_PATH=/mnt/local2/tmp/home/ports/editors/libreoffice/work/libreoffice-bootstrap-3.4.3.2/clone/ure/cppuhelper/unxfbsd.pro/lib:/mnt/local2/tmp/home/ports/editors/libreoffice/work/libreoffice-bootstrap-3.4.3.2/solver/340/unxfbsd.pro/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} > > > > /mnt/local2/tmp/home/ports/editors/libreoffice/work/libreoffice-bootstrap-3.4.3.2/solver/340/unxfbsd.pro/bin/cppunit/cppunittester > > ../../unxfbsd.pro/lib/libcppu_ifcontainer.so > > OK (5) > > > > And ktrace'ing the process gets endless repetition of this: > > > > 46718 cppunittester CALL sigprocmask(SIG_BLOCK,0x80083f720,0x7fffffff8030) > > 46718 cppunittester RET sigprocmask 0 > > 46718 cppunittester CALL sigprocmask(SIG_SETMASK,0x80083f734,0) > > 46718 cppunittester RET sigprocmask 0 > > 46718 cppunittester CALL sigprocmask(SIG_BLOCK,0x80083f720,0x7fffffff8030) > > 46718 cppunittester RET sigprocmask 0 > > 46718 cppunittester CALL sigprocmask(SIG_SETMASK,0x80083f734,0) > > 46718 cppunittester RET sigprocmask 0 > > 46718 cppunittester CALL sigprocmask(SIG_BLOCK,0x80083f720,0x7fffffff81f0) > > 46718 cppunittester RET sigprocmask 0 > > 46718 cppunittester CALL sigprocmask(SIG_SETMASK,0x80083f734,0) > > 46718 cppunittester RET sigprocmask 0 > > 46718 cppunittester CALL sigprocmask(SIG_BLOCK,0x80083f720,0x7fffffff81f0) > > 46718 cppunittester RET sigprocmask 0 > > 46718 cppunittester CALL sigprocmask(SIG_SETMASK,0x80083f734,0) > > 46718 cppunittester RET sigprocmask 0 > > > > Which leads me to believe it's stuck in a loop somewhere. > > > > > > Any ideas? > > > > Doug > > > > Now idea at all about that, currently you are the only reporting that to me, > i'll check with some upstream devs, hope they will have more ideas that I do
The sigprocmask() syscalls could be issued from the rtld. I think a drill-down is needed there. Ideally, the minimal C source program that exhibit the problem is to be determined. Meantime, if my guess is close to the right, you can compile rtld/libc/libthr with the debugging information and attach gdb to the looping process. Then, get several backtraces of the looping thread, interleaved with "continue", to roughly determine the loop block.
pgpu6QJiFYidI.pgp
Description: PGP signature