daemon: crash when coming back from suspend
Issue generated from Tuleap's migration script. Originally submitted by: Stepan Salenikovich (ssalenik)
<p>I notice often after suspending and then resuming my laptop, if I left ring-daemon running (in gdb), it crashes with this assert:</p> <p>dring: ../src/pj/os\_core\_unix.c:1309: pj\_mutex\_unlock: Assertion `mutex->owner == pj\_thread\_this()&\#39; failed.</p> <p>Thread 1 "dring" received signal SIGABRT, Aborted.<br /> \_\_GI\_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58<br /> 58 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.<br /> (gdb) bt<br /> \#0 \_\_GI\_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:58<br /> \#1 0x00007ffff2dc23ea in \_\_GI\_abort () at abort.c:89<br /> \#2 0x00007ffff2db8bb7 in \_\_assert\_fail\_base (fmt=<optimized out>, assertion=assertion@entry=0x555556179ff0 "mutex->owner == pj\_thread\_this()", file=file@entry=0x555556179d78 "../src/pj/os\_core\_unix.c",<br /> line=line@entry=1309, function=function@entry=0x55555617a1d0 <\_\_PRETTY\_FUNCTION\_\_.5562> "pj\_mutex\_unlock") at assert.c:92<br /> \#3 0x00007ffff2db8c62 in \_\_GI\_\_\_assert\_fail (assertion=0x555556179ff0 "mutex->owner == pj\_thread\_this()", file=0x555556179d78 "../src/pj/os\_core\_unix.c", line=1309,<br /> function=0x55555617a1d0 <\_\_PRETTY\_FUNCTION\_\_.5562> "pj\_mutex\_unlock") at assert.c:101<br /> \#4 0x0000555555a1fd6e in pj\_mutex\_unlock (mutex=0x555557203f38) at ../src/pj/os\_core\_unix.c:1309<br /> \#5 0x0000555555a1f6de in pj\_atomic\_inc\_and\_get (atomic\_var=0x555557203f28) at ../src/pj/os\_core\_unix.c:939<br /> \#6 0x0000555555a1f6fc in pj\_atomic\_inc (atomic\_var=0x555557203f28) at ../src/pj/os\_core\_unix.c:949<br /> \#7 0x00005555559c801c in pjsip\_tx\_data\_add\_ref (tdata=0x555557203a48) at ../src/pjsip/sip\_transport.c:478<br /> \#8 0x00005555559c8e8c in pjsip\_transport\_send (tr=0x55555690edd8, tdata=0x555557203a48, addr=0x555556c83bb4, addr\_len=16, token=0x555556c83ad8, cb=0x5555559da9d6 <transport\_callback>)<br /> at ../src/pjsip/sip\_transport.c:842<br /> \#9 0x00005555559dae36 in tsx\_send\_msg (tsx=0x555556c83ad8, tdata=0x555557203a48) at ../src/pjsip/sip\_transaction.c:2078<br /> \#10 0x00005555559db607 in tsx\_retransmit (tsx=0x555556c83ad8, resched=1) at ../src/pjsip/sip\_transaction.c:2318<br /> \#11 0x00005555559dba74 in tsx\_on\_state\_calling (tsx=0x555556c83ad8, event=0x7fffffffd350) at ../src/pjsip/sip\_transaction.c:2449<br /> \#12 0x00005555559d8e20 in tsx\_timer\_callback (theap=0x555556962288, entry=0x555556c83c58) at ../src/pjsip/sip\_transaction.c:1171<br /> \#13 0x0000555555a35bd1 in pj\_timer\_heap\_poll (ht=0x555556962288, next\_delay=0x7fffffffd490) at ../src/pj/timer.c:643<br /> \#14 0x00005555559c0db8 in pjsip\_endpt\_handle\_events2 (endpt=0x555556961f68, max\_timeout=0x555556145a90 <ring::SIPVoIPLink::handleEvents()::timeout>, p\_count=0x0) at ../src/pjsip/sip\_endpoint.c:712<br /> \#15 0x00005555559c0f2f in pjsip\_endpt\_handle\_events (endpt=0x555556961f68, max\_timeout=0x555556145a90 <ring::SIPVoIPLink::handleEvents()::timeout>) at ../src/pjsip/sip\_endpoint.c:769<br /> \#16 0x00005555558b354e in ring::SIPVoIPLink::handleEvents (this=0x555556960880) at sipvoiplink.cpp:686<br /> \#17 0x00005555558b1a1d in ring::SIPVoIPLink::<lambda()>::operator()(void) const (\_\_closure=0x555556903af8) at sipvoiplink.cpp:581<br /> \#18 0x00005555558b678c in std::\_Function\_handler<void(), ring::SIPVoIPLink::SIPVoIPLink()::<lambda()> >::\_M\_invoke(const std::\_Any\_data &) (\_\_functor=...) at /usr/include/c++/6/functional:1740<br /> \#19 0x0000555555655f56 in std::function<void ()>::operator()() const (this=0x555556903af8) at /usr/include/c++/6/functional:2136<br /> \#20 0x00005555558184a6 in ring::Manager::pollEvents (this=0x55555676e080 <ring::Manager::instance()::instance>) at manager.cpp:1703<br /> \#21 0x00005555556b650c in DRing::pollEvents () at ring\_api.cpp:85<br /> \#22 0x0000555555665784 in std::\_Function\_handler<void (), void (\*)()>::\_M\_invoke(std::\_Any\_data const&) (\_\_functor=...) at /usr/include/c++/6/functional:1740<br /> \#23 0x0000555555655f56 in std::function<void ()>::operator()() const (this=0x5555568ed418) at /usr/include/c++/6/functional:2136<br /> \#24 0x0000555555654d50 in EventCallback::call (this=0x5555568ed410) at dbusclient.cpp:59<br /> \#25 0x00007ffff7bbdae3 in DBus::DefaultMainLoop::dispatch() () from /usr/lib/x86\_64-linux-gnu/libdbus-c++-1.so.0<br /> \#26 0x00007ffff7bbe78c in DBus::BusDispatcher::enter() () from /usr/lib/x86\_64-linux-gnu/libdbus-c++-1.so.0<br /> \#27 0x0000555555650cda in DBusClient::event\_loop (this=0x5555568ecfe0) at dbusclient.cpp:241<br /> \#28 0x000055555564c5d6 in main (argc=3, argv=0x7fffffffdde8) at main.cpp:235</p> <p> </p>