Deadlock In Media State Handler

CM
Colin Morelli
Fri, Apr 22, 2016 11:43 PM

Hey all,

Possibly I'm missing something stupid here (probably), but I'm getting a
deadlock with PJSIP 2.4.5 in the iPhone Simulator (x86_64) on iOS 9.3. My
process is this:

Init PJSIP on main thread
Register account via TCP
Receive incoming call
"Answer" call with 180 ringing, prompt the user to answer the call
When user taps "answer" (again, main thread), send 200 OK and connect the
conference ports

Here are the logs:

http://pastebin.com/raw/ZJysmY9R

Interestingly this was working earlier today, and I haven't really changed
anything. But, it is failing consistently now. Has anyone else seen this?

Thanks in advance.

Best,
Colin

Hey all, Possibly I'm missing something stupid here (probably), but I'm getting a deadlock with PJSIP 2.4.5 in the iPhone Simulator (x86_64) on iOS 9.3. My process is this: Init PJSIP on main thread Register account via TCP Receive incoming call "Answer" call with 180 ringing, prompt the user to answer the call When user taps "answer" (again, main thread), send 200 OK and connect the conference ports Here are the logs: http://pastebin.com/raw/ZJysmY9R Interestingly this was working earlier today, and I haven't really changed anything. But, it is failing consistently now. Has anyone else seen this? Thanks in advance. Best, Colin
CM
Colin Morelli
Sat, Apr 23, 2016 1:43 AM

Also, if it's helpful (and relevant), this is the content of my handler
method:

http://pastebin.com/raw/bBXJEvjd

I've done the equivalent in PJSUA too (not using PJSUA2) and get the same
results. The code in that paste is executed on the same thread as the code
that initializes the PJSUA2 endpoint.

I'm running out of ideas.

Best,
Colin

On Fri, Apr 22, 2016 at 7:43 PM Colin Morelli colin.morelli@gmail.com
wrote:

Hey all,

Possibly I'm missing something stupid here (probably), but I'm getting a
deadlock with PJSIP 2.4.5 in the iPhone Simulator (x86_64) on iOS 9.3. My
process is this:

Init PJSIP on main thread
Register account via TCP
Receive incoming call
"Answer" call with 180 ringing, prompt the user to answer the call
When user taps "answer" (again, main thread), send 200 OK and connect the
conference ports

Here are the logs:

http://pastebin.com/raw/ZJysmY9R

Interestingly this was working earlier today, and I haven't really changed
anything. But, it is failing consistently now. Has anyone else seen this?

Thanks in advance.

Best,
Colin

Also, if it's helpful (and relevant), this is the content of my handler method: http://pastebin.com/raw/bBXJEvjd I've done the equivalent in PJSUA too (not using PJSUA2) and get the same results. The code in that paste is executed on the same thread as the code that initializes the PJSUA2 endpoint. I'm running out of ideas. Best, Colin On Fri, Apr 22, 2016 at 7:43 PM Colin Morelli <colin.morelli@gmail.com> wrote: > Hey all, > > Possibly I'm missing something stupid here (probably), but I'm getting a > deadlock with PJSIP 2.4.5 in the iPhone Simulator (x86_64) on iOS 9.3. My > process is this: > > Init PJSIP on main thread > Register account via TCP > Receive incoming call > "Answer" call with 180 ringing, prompt the user to answer the call > When user taps "answer" (again, main thread), send 200 OK and connect the > conference ports > > Here are the logs: > > http://pastebin.com/raw/ZJysmY9R > > Interestingly this was working earlier today, and I haven't really changed > anything. But, it is failing consistently now. Has anyone else seen this? > > Thanks in advance. > > Best, > Colin >
CM
Colin Morelli
Sat, Apr 23, 2016 2:17 AM

Sorry for blowing up the email list here.

It appears I was having some hardware issues. After struggling to resolve
some other issues on my machine, things seem to be working correctly now.
However, this raises an interesting concern around how PJSIP handles this
particular failure case. It seems that in the event coreaudio_dev.c can't
start the core audio stream, it hangs indefinitely. This ultimately results
in PJSIP deadlocking (and, thus, the resulting application crashes).

I'll see if there's anything I can figure out in the source to put a patch
together, but I'm very new to all of this.

Best,
Colin

On Fri, Apr 22, 2016 at 9:43 PM Colin Morelli colin.morelli@gmail.com
wrote:

Also, if it's helpful (and relevant), this is the content of my handler
method:

http://pastebin.com/raw/bBXJEvjd

I've done the equivalent in PJSUA too (not using PJSUA2) and get the same
results. The code in that paste is executed on the same thread as the code
that initializes the PJSUA2 endpoint.

I'm running out of ideas.

Best,
Colin

On Fri, Apr 22, 2016 at 7:43 PM Colin Morelli colin.morelli@gmail.com
wrote:

Hey all,

Possibly I'm missing something stupid here (probably), but I'm getting a
deadlock with PJSIP 2.4.5 in the iPhone Simulator (x86_64) on iOS 9.3. My
process is this:

Init PJSIP on main thread
Register account via TCP
Receive incoming call
"Answer" call with 180 ringing, prompt the user to answer the call
When user taps "answer" (again, main thread), send 200 OK and connect the
conference ports

Here are the logs:

http://pastebin.com/raw/ZJysmY9R

Interestingly this was working earlier today, and I haven't really
changed anything. But, it is failing consistently now. Has anyone else seen
this?

Thanks in advance.

Best,
Colin

Sorry for blowing up the email list here. It appears I was having some hardware issues. After struggling to resolve some other issues on my machine, things seem to be working correctly now. However, this raises an interesting concern around how PJSIP handles this particular failure case. It seems that in the event coreaudio_dev.c can't start the core audio stream, it hangs indefinitely. This ultimately results in PJSIP deadlocking (and, thus, the resulting application crashes). I'll see if there's anything I can figure out in the source to put a patch together, but I'm very new to all of this. Best, Colin On Fri, Apr 22, 2016 at 9:43 PM Colin Morelli <colin.morelli@gmail.com> wrote: > Also, if it's helpful (and relevant), this is the content of my handler > method: > > http://pastebin.com/raw/bBXJEvjd > > I've done the equivalent in PJSUA too (not using PJSUA2) and get the same > results. The code in that paste is executed on the same thread as the code > that initializes the PJSUA2 endpoint. > > I'm running out of ideas. > > Best, > Colin > > On Fri, Apr 22, 2016 at 7:43 PM Colin Morelli <colin.morelli@gmail.com> > wrote: > >> Hey all, >> >> Possibly I'm missing something stupid here (probably), but I'm getting a >> deadlock with PJSIP 2.4.5 in the iPhone Simulator (x86_64) on iOS 9.3. My >> process is this: >> >> Init PJSIP on main thread >> Register account via TCP >> Receive incoming call >> "Answer" call with 180 ringing, prompt the user to answer the call >> When user taps "answer" (again, main thread), send 200 OK and connect the >> conference ports >> >> Here are the logs: >> >> http://pastebin.com/raw/ZJysmY9R >> >> Interestingly this was working earlier today, and I haven't really >> changed anything. But, it is failing consistently now. Has anyone else seen >> this? >> >> Thanks in advance. >> >> Best, >> Colin >> >