[prev in list] [next in list] [prev in thread] [next in thread] 

List:       boost
Subject:    [boost] Hangs with Boost 1.56 on clang armhf
From:       "Niall Douglas" <s_sourceforge () nedprod ! com>
Date:       2014-07-30 15:47:27
Message-ID: 53D9138F.2427.55F23771 () s_sourceforge ! nedprod ! com
[Download RAW message or body]

[Attachment #2 (multipart/signed)]


I'm seeing consistent hangs of AFIO on Boost 1.56 on Ubuntu 14.04 LTS 
for clang armhf. GCC armhf works fine, so this is a clang armhf 
related issue.

https://ci.nedprod.com/view/Boost.AFIO/job/Boost.AFIO%20Test%20POSIX_A
RM_clang%203.4/10/console

I talked to Ubuntu upstream about this, and I had the idea of trying 
the LLVM armhf binaries provided at 
http://llvm.org/releases/3.4.2/clang+llvm-3.4.2-armv7a-linux-gnueabihf
.tar.xz as surely LLVM provide good binaries.

Same problem - tests hang. I tried running a test manually and I get 
this:

terminate called after throwing an instance of 
'boost::thread_interrupted'
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively
terminate called recursively

Remember, this is identical code to any other Linux target, plus this 
works a-ok for GCC armhf.

A quick backtrace with gdb reveals this:

terminate called after throwing an instance of 
'boost::thread_interrupted'
[Thread 0xb5b76450 (LWP 12610) exited]

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb6376450 (LWP 12609)]
__libc_do_syscall () at 
../ports/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:44
44      ../ports/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S: No 
such file or directory.
(gdb) bt
#0  __libc_do_syscall () at 
../ports/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:44
#1  0xb639f0fe in __GI_raise (sig=sig@entry=6) at 
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#2  0xb63a1956 in __GI_abort () at abort.c:89
#3  0xb65377a8 in __gnu_cxx::__verbose_terminate_handler() ()
   from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#4  0xb65361c8 in ?? () from 
/usr/lib/arm-linux-gnueabihf/libstdc++.so.6
Backtrace stopped: previous frame identical to this frame (corrupt 
stack?)


What looks to be happening here is that thread cancellation, which 
works by having an exception thrown, appears to not be caught by the 
thread being cancelled for some odd reason.

I don't have time to investigate this until maybe Saturday. I guess 
we'll just have to ship 1.56 and look into this for 1.57.

Niall

-- 
ned Productions Limited Consulting
http://www.nedproductions.biz/ 
http://ie.linkedin.com/in/nialldouglas/



["SMime.p7s" (application/x-pkcs7-signature)]

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic