< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index Next in Thread >

Re: [reSIProcate-users] Stable branch?


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



On Tue, Mar 25, 2014 at 12:54 PM, Scott Godin <sgodin@xxxxxxxxxxxxxxx> wrote:
Release 1.9 is the latest stable release.  Releases are announced on the wiki and this mailing list.  

The deadlock issue you are referring is not a current known issue.  Can you provide more information on this?  How do you duplicate it?  Platform?  Are Mutex's recursive on your platform?  Do you have logs or a stack trace of the threads involved in the deadlock?

Thanks,
Scott


On Tue, Mar 25, 2014 at 10:42 AM, Jorge Bustamante <jbustamante@xxxxxxxxxxxxx> wrote:
Hi,

While cloning https://github.com/resiprocate/resiprocate.git (branch master) and building with
--with-c-ares --with-ssl --enable-dtls --with-mysql, I am getting a deadlock on rutil/GeneralCongestionManager.cxx:73 while running repro.

I feel I should be using some stable version instead of master? do you know what would it be and how could I know in the future?

Regards,
Jorge Bustamante

This email is intended solely for the person or entity to which it is addressed and may contain confidential and/or privileged information. If you are not the intended recipient and have received this email in error, please notify BroadSoft, Inc. immediately by replying to this message, and destroy all copies of this message, along with any attachment, prior to reading, distributing or copying it.

_______________________________________________
resiprocate-users mailing list
resiprocate-users@xxxxxxxxxxxxxxx
List Archive: http://list.resiprocate.org/archive/resiprocate-users/



This email is intended solely for the person or entity to which it is addressed and may contain confidential and/or privileged information. If you are not the intended recipient and have received this email in error, please notify BroadSoft, Inc. immediately by replying to this message, and destroy all copies of this message, along with any attachment, prior to reading, distributing or copying it.