$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Alexander Carôt (alexander_carot_at_[hidden])
Date: 2021-10-08 07:42:23
see below â scanning my own info I realized:
>>Thread 4 Crashed:
>>0 libboost_thread.dylib 0x000000010e4a4570 tls_destructor + 96
... that it linked to a dynamic lib which I did not intend to â I am using a static lib and this made me conclude that I had a path issue so it eventually linked to a wrong lib which eventually caused the issue.
After fixing my paths the issue is resolved and it works perfectly fine even with the latest 1_77
Sorry for the confusion and thanks for your help !
Now it would be nice to focus on the thread priority which might possibly be wrong as well.
Best
Alex
Hej Juan,
thanks for the quick response !
>>Are you sure detach() and join() do not help?
Yes, I checked it several times. I put either tracerouteThread.join() or tracerouteThread.dispatch() right after launching it but it resultet in the same effect.
Please find the OSX-report here â thread 4 is the one that crashes (just in case: My app uses Qt):
Thread 0:: Dispatch queue: com.apple.main-thread
0 libsystem_kernel.dylib 0x00007fff69658dfa mach_msg_trap + 10
1 libsystem_kernel.dylib 0x00007fff69659170 mach_msg + 60
2 com.apple.CoreServices.CarbonCore 0x00007fff30844d1d _scsclient_CacheableGetDataWithStringKey + 207
3 com.apple.CoreServices.CarbonCore 0x00007fff30844c44 RemoteCacheable::GetWithStringKey(unsigned int, char const*, unsigned long*, unsigned int*) + 70
4 com.apple.CoreServices.CarbonCore 0x00007fff30844ae6 _CSGetNamedData + 98
5 com.apple.AppKit 0x00007fff2c6b5e19 _NSPersistentUIGetShmem + 115
6 com.apple.AppKit 0x00007fff2c6b59c0 _NSPersistentUIEstablishTalagentCommunication + 113
7 com.apple.AppKit 0x00007fff2c6b4d91 -[NSApplication finishLaunching] + 66
8 com.apple.AppKit 0x00007fff2c6b4a20 -[NSApplication run] + 244
9 libqcocoa.dylib 0x000000010fcf2f18 QCocoaEventDispatcher::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 2120 (qcocoaeventdispatcher.mm:431)
10 org.qt-project.QtCore 0x000000010f637d36 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 470 (qeventloop.cpp:232)
11 org.qt-project.QtCore 0x000000010f62f092 QCoreApplication::exec() + 130
12 com.yourcompany.soundjack 0x000000010dfb6b41 main + 2817
13 libdyld.dylib 0x00007fff69517cc9 start + 1
Thread 1:
0 libsystem_pthread.dylib 0x00007fff69717b68 start_wqthread + 0
Thread 2:
0 libsystem_pthread.dylib 0x00007fff69717b68 start_wqthread + 0
Thread 3:
0 libsystem_pthread.dylib 0x00007fff69717b68 start_wqthread + 0
Thread 4 Crashed:
0 libboost_thread.dylib 0x000000010e4a4570 tls_destructor + 96
1 libboost_thread.dylib 0x000000010e4a5784 thread_proxy + 148
2 libsystem_pthread.dylib 0x00007fff6971c109 _pthread_start + 148
3 libsystem_pthread.dylib 0x00007fff69717b8b thread_start + 15
Thread 4 crashed with X86 Thread State (64-bit):
rax: 0x00000010018da37d rbx: 0x00000010018da37d rcx: 0x0000000000000008 rdx: 0x00007fef2dd18320
rdi: 0x00007fef2dd18180 rsi: 0x00000000000120a8 rbp: 0x000070000346ff70 rsp: 0x000070000346ff30
r8: 0x00000000000130a8 r9: 0x0000000000000000 r10: 0x00007fff8fc0dbf8 r11: 0x00007fff8fc0dbf0
r12: 0x00007fef2dd18180 r13: 0x0000000000000000 r14: 0x00007fef2dd18328 r15: 0x0000000000000000
rip: 0x000000010e4a4570 rfl: 0x0000000000010206 cr2: 0x00000010018da385
--
http://www.carot.de
Email : Alexander_at_[hidden]
Tel.: +49 (0)177 5719797
> Gesendet: Donnerstag, 07. Oktober 2021 um 21:06 Uhr
> Von: "Juan RamÃrez" <jramirez.uy_at_[hidden]>
> An: boost-users_at_[hidden]
> Cc: "Alexander Carôt" <alexander_carot_at_[hidden]>
> Betreff: Re: [Boost-users] Thread crash in destructor
>
> The behavior changed in BOOST_THREAD_VERSION 3 (which is default in
> boost 1.77). Are you sure detach() and join() do not help?
>
> Can you provide a call stack?
>
> On 10/7/21 06:09, Alexander Carôt via Boost-users wrote:
> > Hi all,
> >
> > I had been using an old boost system and boost thread lib for a couple of years without upgrading it since approx. 2014. With this old lib the following (simplified) code works fine on OSX:
> >
> > #include "test.h"
> >
> > test::test() {
> > boost::thread::attributes attrs;
> >
> > /// START TRACEROUTE THREAD
> > #if defined(BOOST_THREAD_PLATFORM_WIN32)
> > res =
> > SetThreadPriority(attrs.native_handle(), THREAD_PRIORITY_NORMAL);
> > #elif defined(BOOST_THREAD_PLATFORM_PTHREAD)
> > pthread_attr_setschedpolicy(attrs.native_handle(), SCHED_FIFO);
> > #endif
> > tracerouteThread = boost::thread(
> > attrs, boost::bind(&test::performTraceroute, this));
> > }
> >
> > void test::performTraceroute() {
> > cout << "START TRACEROUTE" << endl;
> >
> > string exec = "";
> > cout << "DO FURTHER STUFF BUT THIS IS JUST A DEMO ..." << endl;
> > cout << "THREAD OVER" << endl;
> > }
> >
> > Using the current boost 1_77 still does execute the thread but then it crashes within the destructor. Adding
> >
> > tracerouteThread.join() or .detach() after launching the thread does not help either.
> >
> > Can anyone help how to resolve this issue ?
> >
> > Thanks a lot in advance,
> > best
> >
> > Alex
> >
> > --
> > http://www.carot.de
> > Email : Alexander_at_[hidden]
> > Tel.: +49 (0)177 5719797
> >
> > _______________________________________________
> > Boost-users mailing list
> > Boost-users_at_[hidden]
> > https://listarchives.boost.org/mailman/listinfo.cgi/boost-users
> >
>