Hi,
To reproduce, simply built the latest code on master branch (commit 7bd0cb3 now)... ran ./configure --with-c-ares
--with-ssl --enable-dtls --with-mysql.. and built... then ran repro with a custom config file (don't think it matters, but let me know if you need it)... after repro is running, to get the deadlock I simply go to the webpage enabled by repro, and click on SETTINGS link (settings.html)... it seems to trigger some statistics-related code that ends up in the deadlock (rutil/GeneralCongestionManager.cxx:73)...
Here is the gdb commands I used and the output... I displayed the backtrace of each thread right before executing pthread_mutex_lock(...)... thread 3 is the one getting the deadlock... let me know if you need additional info:
gdb /root/resiprocate/repro/repro --pid=`ps -A | grep repro | awk ' { print $1 }'`
.
.
.
(gdb) set breakpoint pending on
(gdb) b GeneralCongestionManager.cxx:161
Breakpoint 1 at 0x2b031c419a1e: file GeneralCongestionManager.cxx, line 161.
(gdb) c
Continuing.
[Switching to Thread 0x2b0321515700 (LWP 4793)]
Breakpoint 1, resip::GeneralCongestionManager::encodeFifoStats (this=0x18045e0, fifoStats=...,
strm=...) at GeneralCongestionManager.cxx:161
161 CongestionManager::RejectionBehavior behavior = getRejectionBehavior(&fifoStats);
(gdb) s
resip::GeneralCongestionManager::getRejectionBehavior (this=0x18045e0, fifo=0x17fef38)
at GeneralCongestionManager.cxx:72
72 {
(gdb) s
73 Lock lock(mFifosMutex);
(gdb) info threads
13 Thread 0x2b032010b700 (LWP 4782) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
12 Thread 0x2b032030c700 (LWP 4783) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
11 Thread 0x2b032050d700 (LWP 4784) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
10 Thread 0x2b032070e700 (LWP 4785) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
9 Thread 0x2b032090f700 (LWP 4787) 0x00002b031d95a5e3 in select () from /lib64/libc.so.6
8 Thread 0x2b0320b10700 (LWP 4788) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
7 Thread 0x2b0320d11700 (LWP 4789) 0x00002b031d962163 in epoll_wait () from /lib64/libc.so.6
6 Thread 0x2b0320f12700 (LWP 4790) 0x00002b031d962163 in epoll_wait () from /lib64/libc.so.6
5 Thread 0x2b0321113700 (LWP 4791) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
4 Thread 0x2b0321314700 (LWP 4792) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
* 3 Thread 0x2b0321515700 (LWP 4793) resip::GeneralCongestionManager::getRejectionBehavior (
this=0x18045e0, fifo=0x17fef38) at GeneralCongestionManager.cxx:73
2 Thread 0x2b0321716700 (LWP 4794) 0x00002b031d95a5e3 in select () from /lib64/libc.so.6
1 Thread 0x2b031fa9ea20 (LWP 4765) 0x00002b031d925cdd in nanosleep () from /lib64/libc.so.6
(gdb) s
72 {
(gdb) s
73 Lock lock(mFifosMutex);
(gdb) info threads
13 Thread 0x2b032010b700 (LWP 4782) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
12 Thread 0x2b032030c700 (LWP 4783) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
11 Thread 0x2b032050d700 (LWP 4784) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
10 Thread 0x2b032070e700 (LWP 4785) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
9 Thread 0x2b032090f700 (LWP 4787) 0x00002b031d95a5e3 in select () from /lib64/libc.so.6
8 Thread 0x2b0320b10700 (LWP 4788) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
7 Thread 0x2b0320d11700 (LWP 4789) 0x00002b031d962163 in epoll_wait () from /lib64/libc.so.6
6 Thread 0x2b0320f12700 (LWP 4790) 0x00002b031d962163 in epoll_wait () from /lib64/libc.so.6
5 Thread 0x2b0321113700 (LWP 4791) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
4 Thread 0x2b0321314700 (LWP 4792) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
* 3 Thread 0x2b0321515700 (LWP 4793) resip::GeneralCongestionManager::getRejectionBehavior (
this=0x18045e0, fifo=0x17fef38) at GeneralCongestionManager.cxx:73
2 Thread 0x2b0321716700 (LWP 4794) 0x00002b031d95a5e3 in select () from /lib64/libc.so.6
1 Thread 0x2b031fa9ea20 (LWP 4765) 0x00002b031d925cdd in nanosleep () from /lib64/libc.so.6
(gdb) s
resip::Lock::Lock (this=0x2b032150fde0, lockable=..., lockType=resip::VOCAL_LOCK) at Lock.cxx:37
37 : myLockable(lockable)
(gdb) s
39 takeLock(lockable, lockType);
(gdb) s
takeLock (this=0x2b032150fde0, lockable=..., lockType=resip::VOCAL_LOCK) at Lock.cxx:14
14 switch ( lockType )
(gdb) s
resip::Lock::Lock (this=0x2b032150fde0, lockable=..., lockType=resip::VOCAL_LOCK) at Lock.cxx:37
37 : myLockable(lockable)
(gdb) s
39 takeLock(lockable, lockType);
(gdb) s
takeLock (this=0x2b032150fde0, lockable=..., lockType=resip::VOCAL_LOCK) at Lock.cxx:14
14 switch ( lockType )
(gdb) s
30 lockable.lock();
(gdb) s
resip::Mutex::lock (this=0x1804600) at Mutex.cxx:53
53 {
(gdb) s
55 int rc = pthread_mutex_lock(&mId);
(gdb) info threads
13 Thread 0x2b032010b700 (LWP 4782) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
12 Thread 0x2b032030c700 (LWP 4783) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
11 Thread 0x2b032050d700 (LWP 4784) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
10 Thread 0x2b032070e700 (LWP 4785) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
9 Thread 0x2b032090f700 (LWP 4787) 0x00002b031d95a5e3 in select () from /lib64/libc.so.6
8 Thread 0x2b0320b10700 (LWP 4788) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
7 Thread 0x2b0320d11700 (LWP 4789) 0x00002b031d962163 in epoll_wait () from /lib64/libc.so.6
6 Thread 0x2b0320f12700 (LWP 4790) 0x00002b031d962163 in epoll_wait () from /lib64/libc.so.6
5 Thread 0x2b0321113700 (LWP 4791) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
4 Thread 0x2b0321314700 (LWP 4792) 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 ()
from /lib64/libpthread.so.0
* 3 Thread 0x2b0321515700 (LWP 4793) resip::Mutex::lock (this=0x1804600) at Mutex.cxx:55
2 Thread 0x2b0321716700 (LWP 4794) 0x00002b031d95a5e3 in select () from /lib64/libc.so.6
1 Thread 0x2b031fa9ea20 (LWP 4765) 0x00002b031d925cdd in nanosleep () from /lib64/libc.so.6
(gdb) thread 1
[Switching to thread 1 (Thread 0x2b031fa9ea20 (LWP 4765))]#0 0x00002b031d925cdd in nanosleep ()
from /lib64/libc.so.6
(gdb) bt
#0 0x00002b031d925cdd in nanosleep () from /lib64/libc.so.6
#1 0x00002b031d95ae54 in usleep () from /lib64/libc.so.6
#2 0x00000000004016ce in main (argc=2, argv=0x7fff5f3c5898) at repro.cxx:150
(gdb) thread 2
[Switching to thread 2 (Thread 0x2b0321716700 (LWP 4794))]#0 0x00002b031d95a5e3 in select ()
from /lib64/libc.so.6
(gdb) bt
#0 0x00002b031d95a5e3 in select () from /lib64/libc.so.6
#1 0x00002b031b1f1830 in resip::FdSet::select (this=0x2b0321715b60, tv=...)
at ../rutil/Socket.hxx:133
#2 0x00002b031b1f18dc in resip::FdSet::selectMilliSeconds (this=0x2b0321715b60, ms=2000)
at ../rutil/Socket.hxx:141
#3 0x00002b031b1f1542 in repro::CommandServerThread::thread (this=0x1828070)
at CommandServerThread.cxx:32
#4 0x00002b031c42af2f in threadIfThreadWrapper (threadParm=<value optimized out>) at ThreadIf.cxx:51
#5 0x00002b031ccb29d1 in start_thread () from /lib64/libpthread.so.0
#6 0x00002b031d961b6d in clone () from /lib64/libc.so.6
(gdb) thread 3
[Switching to thread 3 (Thread 0x2b0321515700 (LWP 4793))]#0 resip::Mutex::lock (this=0x1804600)
at Mutex.cxx:55
55 int rc = pthread_mutex_lock(&mId);
(gdb) bt
#0 resip::Mutex::lock (this=0x1804600) at Mutex.cxx:55
#1 0x00002b031c4192e7 in resip::GeneralCongestionManager::getRejectionBehavior (this=0x18045e0,
fifo=0x17fef38) at GeneralCongestionManager.cxx:73
#2 0x00002b031c419a24 in resip::GeneralCongestionManager::encodeFifoStats (this=0x18045e0,
fifoStats=..., strm=...) at GeneralCongestionManager.cxx:161
#3 0x00002b031c419868 in resip::GeneralCongestionManager::encodeCurrentState (this=0x18045e0,
strm=...) at GeneralCongestionManager.cxx:124
#4 0x00002b031b205b7e in repro::WebAdmin::buildSettingsSubPage (this=0x1827b90, s=...)
at WebAdmin.cxx:1875
#5 0x00002b031b1f9f4c in repro::WebAdmin::buildPage (this=0x1827b90, uri=..., pageNumber=3,
pUser=..., pPassword=...) at WebAdmin.cxx:420
#6 0x00002b031b1f5839 in repro::HttpConnection::tryParse (this=0x2b03340008c0)
at HttpConnection.cxx:346
#7 0x00002b031b1f4fda in repro::HttpConnection::processSomeReads (this=0x2b03340008c0)
at HttpConnection.cxx:265
#8 0x00002b031b1f4268 in repro::HttpConnection::process (this=0x2b03340008c0, fdset=...)
at HttpConnection.cxx:75
#9 0x00002b031b1f3bca in repro::HttpBase::process (this=0x1827b90, fdset=...) at HttpBase.cxx:210
#10 0x00002b031b20b4ef in repro::WebAdminThread::thread (this=0x1827fa0) at WebAdminThread.cxx:39
#11 0x00002b031c42af2f in threadIfThreadWrapper (threadParm=<value optimized out>) at ThreadIf.cxx:51
#12 0x00002b031ccb29d1 in start_thread () from /lib64/libpthread.so.0
#13 0x00002b031d961b6d in clone () from /lib64/libc.so.6
(gdb) thread 4
[Switching to thread 4 (Thread 0x2b0321314700 (LWP 4792))]#0 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
(gdb) bt
#0 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00002b031c40a7fe in resip::Condition::wait (this=0x1826718, mutex=...,
ms=<value optimized out>) at Condition.cxx:383
#2 0x00002b031b22b9b5 in resip::AbstractFifo<resip::Timestamped<resip::Message*> >::getNext (this=
0x1826668, ms=100, toReturn=...) at ../rutil/AbstractFifo.hxx:285
#3 0x00002b031b22a7ee in resip::TimeLimitFifo<resip::Message>::getNext (this=0x1826668, ms=100)
at ../rutil/TimeLimitFifo.hxx:279
#4 0x00002b031b2264aa in repro::Proxy::thread (this=0x1826660) at Proxy.cxx:167
#5 0x00002b031c42af2f in threadIfThreadWrapper (threadParm=<value optimized out>) at ThreadIf.cxx:51
#6 0x00002b031ccb29d1 in start_thread () from /lib64/libpthread.so.0
#7 0x00002b031d961b6d in clone () from /lib64/libc.so.6
(gdb) thread 5
[Switching to thread 5 (Thread 0x2b0321113700 (LWP 4791))]#0 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
(gdb) bt
#0 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00002b031c40a7fe in resip::Condition::wait (this=0x181c7c0, mutex=...,
ms=<value optimized out>) at Condition.cxx:383
#2 0x00002b031b22b9b5 in resip::AbstractFifo<resip::Timestamped<resip::Message*> >::getNext (
this=0x181c710, ms=1000, toReturn=...) at ../rutil/AbstractFifo.hxx:285
#3 0x00002b031b22a7ee in resip::TimeLimitFifo<resip::Message>::getNext (this=0x181c710, ms=1000)
at ../rutil/TimeLimitFifo.hxx:279
#4 0x00002b031b948129 in resip::DumThread::thread (this=0x181dbe0) at DumThread.cxx:21
#5 0x00002b031c42af2f in threadIfThreadWrapper (threadParm=<value optimized out>) at ThreadIf.cxx:51
#6 0x00002b031ccb29d1 in start_thread () from /lib64/libpthread.so.0
#7 0x00002b031d961b6d in clone () from /lib64/libc.so.6
(gdb) thread 6
[Switching to thread 6 (Thread 0x2b0320f12700 (LWP 4790))]#0 0x00002b031d962163 in epoll_wait ()
from /lib64/libc.so.6
(gdb) bt
#0 0x00002b031d962163 in epoll_wait () from /lib64/libc.so.6
#1 0x00002b031c4239fb in resip::FdPollImplEpoll::epollWait (this=0x17d3080,
waitMs=<value optimized out>) at FdPoll.cxx:1174
#2 0x00002b031c4245da in resip::FdPollImplEpoll::waitAndProcess (this=0x17d3080,
ms=<value optimized out>) at FdPoll.cxx:1124
#3 0x00002b031c0efc9e in resip::EventStackThread::thread (this=0x18046e0) at EventStackThread.cxx:80
#4 0x00002b031c42af2f in threadIfThreadWrapper (threadParm=<value optimized out>) at ThreadIf.cxx:51
#5 0x00002b031ccb29d1 in start_thread () from /lib64/libpthread.so.0
#6 0x00002b031d961b6d in clone () from /lib64/libc.so.6
(gdb) thread 7
[Switching to thread 7 (Thread 0x2b0320d11700 (LWP 4789))]#0 0x00002b031d962163 in epoll_wait ()
from /lib64/libc.so.6
(gdb) bt
#0 0x00002b031d962163 in epoll_wait () from /lib64/libc.so.6
#1 0x00002b031c4239fb in resip::FdPollImplEpoll::epollWait (this=0x182a410,
waitMs=<value optimized out>) at FdPoll.cxx:1174
#2 0x00002b031c4245da in resip::FdPollImplEpoll::waitAndProcess (this=0x182a410,
ms=<value optimized out>) at FdPoll.cxx:1124
#3 0x00002b031c0ed38e in resip::TransportSelectorThread::thread (this=0x182a370)
at ../../resip/stack/TransportSelectorThread.hxx:38
#4 0x00002b031c42af2f in threadIfThreadWrapper (threadParm=<value optimized out>) at ThreadIf.cxx:51
#5 0x00002b031ccb29d1 in start_thread () from /lib64/libpthread.so.0
#6 0x00002b031d961b6d in clone () from /lib64/libc.so.6
(gdb) thread 8
[Switching to thread 8 (Thread 0x2b0320b10700 (LWP 4788))]#0 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
(gdb) bt
#0 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00002b031c40a7fe in resip::Condition::wait (this=0x17e7d50, mutex=...,
ms=<value optimized out>) at Condition.cxx:383
#2 0x00002b031c0fe53f in getMultiple (this=0x17e7ca0, ms=25, other=std::deque with 0 elements,
max=8) at ../../rutil/AbstractFifo.hxx:359
#3 resip::Fifo<resip::TransactionMessage>::getMultiple (this=0x17e7ca0, ms=25,
other=std::deque with 0 elements, max=8) at ../../rutil/Fifo.hxx:154
#4 0x00002b031c0fc188 in getNext (this=0x17e7c90, timeout=25)
at ../../rutil/ConsumerFifoBuffer.hxx:25
#5 resip::TransactionController::process (this=0x17e7c90, timeout=25)
at TransactionController.cxx:128
#6 0x00002b031c0ed331 in resip::TransactionControllerThread::thread (this=0x1828820)
at ../../resip/stack/TransactionControllerThread.hxx:30
#7 0x00002b031c42af2f in threadIfThreadWrapper (threadParm=<value optimized out>) at ThreadIf.cxx:51
#8 0x00002b031ccb29d1 in start_thread () from /lib64/libpthread.so.0
#9 0x00002b031d961b6d in clone () from /lib64/libc.so.6
(gdb) thread 9
[Switching to thread 9 (Thread 0x2b032090f700 (LWP 4787))]#0 0x00002b031d95a5e3 in select ()
from /lib64/libc.so.6
(gdb) bt
#0 0x00002b031d95a5e3 in select () from /lib64/libc.so.6
#1 0x00002b031c424594 in select (this=0x1828160, ms=25) at ../rutil/Socket.hxx:133
#2 selectMilliSeconds (this=0x1828160, ms=25) at ../rutil/Socket.hxx:141
#3 resip::FdPollImplEpoll::waitAndProcess (this=0x1828160, ms=25) at FdPoll.cxx:1104
#4 0x00002b031c43a64e in resip::DnsThread::thread (this=0x1828630) at dns/DnsThread.cxx:33
#5 0x00002b031c42af2f in threadIfThreadWrapper (threadParm=<value optimized out>) at ThreadIf.cxx:51
#6 0x00002b031ccb29d1 in start_thread () from /lib64/libpthread.so.0
#7 0x00002b031d961b6d in clone () from /lib64/libc.so.6
(gdb) thread 10
[Switching to thread 10 (Thread 0x2b032070e700 (LWP 4785))]#0 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
(gdb) bt
#0 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00002b031c40a7fe in resip::Condition::wait (this=0x181dd30, mutex=...,
ms=<value optimized out>) at Condition.cxx:383
#2 0x00002b031b269681 in resip::AbstractFifo<resip::Timestamped<resip::ApplicationMessage*> >::getNext (this=0x181dc80, ms=100, toReturn=...) at ../rutil/AbstractFifo.hxx:285
#3 0x00002b031b26946e in resip::TimeLimitFifo<resip::ApplicationMessage>::getNext (this=0x181dc80,
ms=100) at ../rutil/TimeLimitFifo.hxx:279
#4 0x00002b031b26903d in repro::WorkerThread::thread (this=0x181e1e0) at WorkerThread.cxx:37
#5 0x00002b031c42af2f in threadIfThreadWrapper (threadParm=<value optimized out>) at ThreadIf.cxx:51
#6 0x00002b031ccb29d1 in start_thread () from /lib64/libpthread.so.0
#7 0x00002b031d961b6d in clone () from /lib64/libc.so.6
(gdb) thread 11
[Switching to thread 11 (Thread 0x2b032050d700 (LWP 4784))]#0 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
(gdb) bt
#0 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00002b031c40a7fe in resip::Condition::wait (this=0x181dd30, mutex=...,
ms=<value optimized out>) at Condition.cxx:383
#2 0x00002b031b269681 in resip::AbstractFifo<resip::Timestamped<resip::ApplicationMessage*> >::getNext (this=0x181dc80, ms=100, toReturn=...) at ../rutil/AbstractFifo.hxx:285
#3 0x00002b031b26946e in resip::TimeLimitFifo<resip::ApplicationMessage>::getNext (this=0x181dc80,
ms=100) at ../rutil/TimeLimitFifo.hxx:279
#4 0x00002b031b26903d in repro::WorkerThread::thread (this=0x181e100) at WorkerThread.cxx:37
#5 0x00002b031c42af2f in threadIfThreadWrapper (threadParm=<value optimized out>) at ThreadIf.cxx:51
#6 0x00002b031ccb29d1 in start_thread () from /lib64/libpthread.so.0
#7 0x00002b031d961b6d in clone () from /lib64/libc.so.6
(gdb) thread 12
[Switching to thread 12 (Thread 0x2b032030c700 (LWP 4783))]#0 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
(gdb) bt
#0 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00002b031c40a7fe in resip::Condition::wait (this=0x181d420, mutex=...,
ms=<value optimized out>) at Condition.cxx:383
#2 0x00002b031b269681 in resip::AbstractFifo<resip::Timestamped<resip::ApplicationMessage*> >::getNext (this=0x181d370, ms=100, toReturn=...) at ../rutil/AbstractFifo.hxx:285
#3 0x00002b031b26946e in resip::TimeLimitFifo<resip::ApplicationMessage>::getNext (this=0x181d370,
ms=100) at ../rutil/TimeLimitFifo.hxx:279
#4 0x00002b031b26903d in repro::WorkerThread::thread (this=0x181d8b0) at WorkerThread.cxx:37
#5 0x00002b031c42af2f in threadIfThreadWrapper (threadParm=<value optimized out>) at ThreadIf.cxx:51
#6 0x00002b031ccb29d1 in start_thread () from /lib64/libpthread.so.0
#7 0x00002b031d961b6d in clone () from /lib64/libc.so.6
(gdb) thread 13
[Switching to thread 13 (Thread 0x2b032010b700 (LWP 4782))]#0 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
(gdb) bt
#0 0x00002b031ccb698e in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00002b031c40a7fe in resip::Condition::wait (this=0x181d420, mutex=...,
ms=<value optimized out>) at Condition.cxx:383
#2 0x00002b031b269681 in resip::AbstractFifo<resip::Timestamped<resip::ApplicationMessage*> >::getNext (this=0x181d370, ms=100, toReturn=...) at ../rutil/AbstractFifo.hxx:285
#3 0x00002b031b26946e in resip::TimeLimitFifo<resip::ApplicationMessage>::getNext (this=0x181d370,
ms=100) at ../rutil/TimeLimitFifo.hxx:279
#4 0x00002b031b26903d in repro::WorkerThread::thread (this=0x181d7d0) at WorkerThread.cxx:37
#5 0x00002b031c42af2f in threadIfThreadWrapper (threadParm=<value optimized out>) at ThreadIf.cxx:51
#6 0x00002b031ccb29d1 in start_thread () from /lib64/libpthread.so.0
#7 0x00002b031d961b6d in clone () from /lib64/libc.so.6
(gdb)
Regards,
Jorge Bustamante