Mantis Bugtracker

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0000233 [Yate - Yet Another Telephony Engine] engine tweak N/A 2010-06-07 16:31 2011-02-21 15:31
Reporter mprovencher View Status public  
Assigned To
Priority normal Resolution open  
Status new   Product Version SVN
Summary 0000233: Fixes to add stability + debug tools
Description This is a lots of fixes we made in Yate that we want to share with the community.

1. We add a way to know the mutex is locked by which thread (useful to debug deadlock) in files yate.h and mutex.cpp
2. We add a way to debug the ref()/deref() of m_chan in h323chan.cpp. Define REF_DEREF_M_CHAN_DEBUG need to be defined to activate it. Files : yate.h, h323chan.cpp, Message.cpp, TelEngine.cpp
3. We found an error path in Channel.cpp where a deref() was done 1 time too much. (Last fix of h323chan.cpp)
4. We add a lot of mutex in h323chan.cpp and Channel.cpp because of corruption in high call rate.

The fixes file is based on revision 3364 of tree.
Additional Information
Tags No tags attached.
Attached Files ? file icon yate.diff [^] (14,939 bytes) 2010-06-07 16:31

- Relationships

-  Notes
Carewolf (reporter)
2011-02-21 15:31

I haven't tested, but based on a quick code-review, I find two changes in Channel.cpp to be odd-looking.

On lines 236-237 there seems to be missing curled brackets.

     if (m_peer)
+ lock.drop();
And on line 1599, this early return seems dangerous, since you skip the deref of varchan
@@ -1599,6 +1614,7 @@
         if (!Engine::dispatch(m))
+ return false;

- Issue History
Date Modified Username Field Change
2010-06-07 16:31 mprovencher New Issue
2010-06-07 16:31 mprovencher File Added: yate.diff
2011-02-21 15:31 Carewolf Note Added: 0000365
2011-03-22 15:38 tusar Issue Monitored: tusar

Copyright © 2000 - 2008 Mantis Group
Powered by Mantis Bugtracker