[Blink] Mac 0.20.0 2 sip account active on same server, complete crash
A.M.
agentm at themactionfaction.com
Mon Sep 6 23:59:50 CEST 2010
On Sep 6, 2010, at 11:53 AM, Adrian Georgescu wrote:
> Yes, this is the same elusive and randomly appearing crash that we were not able to find yet the reason for. The problem is somewhere in PortAudio/Pjmedia thread and it occurs randomly. Maybe someone with more experience in these libraries can help find the reason for this.
From looking at the backtrace and pjproject-1.7/pjmedia/src/pjmedia/stream.c, it looks like pj_mutex_unlock is complaining that it is about to unlock a mutex which it did not lock. The relevant code path seems to be in pjmedia_stream_destroy. The jitter buffer is locked, then deallocated, and then the jitter buffer mutex is destroyed. It looks like there is potential for a race condition. The order should be:
1. lock mutex if available
2. deallocate jitter buffer
3. store pointer to mutex in temporary space
4. set jb_mutex to NULL
5. unlock mutex if necessary
6. deallocate mutex if necessary
It would be a lot cleaner if the destroy method would not be called from the initialization method...
P.S. It would be nice if symbols would be enabled even for the release versions.
Cheers,
M
More information about the Blink
mailing list