[pjsip] Assertion failure in sip_transaction.c

Michael Broughton Michael_Broughton at advanis.ca
Tue Nov 27 10:18:34 EST 2007


Benny Prijono wrote:
> Hi Michael,
>
> I can't say with certainty of what have caused this, since in my 
> pjsip copy (0.8.0) pjsip/sip_transaction.c:2758 points to different 
> code, but I assume it's the assertion in 
> tsx_on_state_completed_uac() function, is it right?
>
> Are you on 64bit machine? If so, then the 48 bytes difference may 
> indicate that the event->body.timer.entry is a retransmit timer 
> entry. Could you have a look at pjsip_transaction declaration in 
> sip_transaction.h, and see if this makes sense? Hopefully this is 
> true, since at least we know that the memory pool is still intact.
>
> If so, then the assertion occurred because the transaction got a 
> retransmit timer event in Completed state, while it only expects to 
> get timeout event to destroy the transaction. Perhaps a simple fix 
> would be simply to ignore this retransmit request rather than 
> throwing an assertion.
>
> cheers,
>   -benny
>   

Hi Benny,

Sorry about the line number mix-up. I'm sure I had done an svn update 
recently. Anyway, it looks like you found the correct function.

Yes, this is on a 64bit FreeBSD machine and I think you nailed the 
problem exactly. GDB confirms:

event->body.timer.entry == &tsx->retransmit_timer

So if I check for this condition in tsx_on_state_completed_uac(), and 
return PJ_SUCCESS, that should be at least a temporary solution? Do you 
have any idea's for a 'better' solution?

Thanks again,

-- 
Michael Broughton, Advanis

Unintended Recipient & Unauthorized Use of E-Mail:
This message and attachments may contain confidential or privileged
information that is intended only for the named recipient of this
e-mail. Any unauthorized use or distribution is not permitted. If you
have received this e-mail in error, deleting the e-mail and notifying
the sender would be appreciated. Thank you.





More information about the pjsip mailing list