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.