Re: [Ekiga-devel-list] Race condition for disconnect and OnConnected "event" with 2.0.9. Patch included.



Charlie Hedlin wrote:
Yesterday I had Ekiga lock up. Upon connecting with gdb I found that two threads were hung trying to acquire locks. Thread 5 was processing the "OnConnected" even tfrom SipConnection, up to OpalManager and down to OpalConnection::Released. It was blocked on LockReadWrite. Thread 1, the gui thread Called Manager::ClearCall (from the disconnect button) and blocked in Call::Clear on LockReadOnly.
I couldn't find any other threads blocking in unusual states.

I have added a Mutex to GMManager that to block clearCall or OnConnected events while the other is happening and have tested for around a hundred calls without hanging, but I can't reliably reproduce this problem. If I make it through a few days without further lockups I will say it likely worked.

If this problem and fix can be confirmed it should probably be moved to Opal. I was trying to avoid having another custom package when I added these calls to GMManager.

I am attaching my patch. Please disregard the SVN information, it is from my local repository.

Robert has recently made a change to OPAL CVS head that reduces all
locks within a single call to one mutex. This has removed many possible
race conditions.

I would recommend looking at these new changes

   Craig

-----------------------------------------------------------------------
 Craig Southeren          Post Increment – VoIP Consulting and Software
 craigs postincrement com au                   www.postincrement.com.au

 Phone:  +61 243654666      ICQ: #86852844
 Fax:    +61 243656905      MSN: craig_southeren hotmail com
 Mobile: +61 417231046      Jabber: craigs jabber org

 "It takes a man to suffer ignorance and smile.
  Be yourself, no matter what they say."   Sting





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]