[pjsip] Assertion failure in sip_transaction.c
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.
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?
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