< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index Next in Thread >

Re: [reSIProcate] Session destroyed while in OnTerminated(..)


It is not legal to have multiple dum threads.  All calls to dum->process and the dum api’s must be run from the same thread, or must be protected.

 

http://www.resiprocate.org/DUM_Threading

 

 

From: Kovar, William (Bill) [mailto:bkovar@xxxxxxxxx]
Sent: Thursday, January 18, 2007 3:20 PM
To: Scott Godin; resiprocate-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE: [reSIProcate] Session destroyed while in OnTerminated(..)

 

I run 2 dums, 1 SipStack in my B2B, each using DumThread (2) and the same StackThread(1).

 

So my calling session->end() from outside of the Dum thread is causing this sequencing problem??

 

And posting the session->end() using DumCommand will get around this sequencing problem??

 

Bill Kovar

bkovar@xxxxxxxxx

Avaya, Inc.

(732) 852-2609

 

 


From: Scott Godin [mailto:slgodin@xxxxxxxxxxxx]
Sent: Thursday, January 18, 2007 2:17 PM
To: Kovar, William (Bill); resiprocate-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE: [reSIProcate] Session destroyed while in OnTerminated(..)

It seems that you may have multiple dum threads running.  Dum should only be running in one thread.  With dum running in one thread – nothing else in dum happens until you return from the onTerminated callback.

 

The 15ms delay you are seeing is likely due to some problem in your process loop.

 

Scott

 

From: resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxxx [mailto:resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxxx] On Behalf Of Kovar, William (Bill)
Sent: Wednesday, January 17, 2007 6:08 PM
To: resiprocate-devel@xxxxxxxxxxxxxxxxxxx
Subject: [reSIProcate] Session destroyed while in OnTerminated(..)

 

All,

 

I'm sure this is not new information but I am wondering what, if anything could/will be done to the following problem regarding OnTerminated() callback.

 

When one sends an BYE with InviteSessionHandle->end() the following happens:

1. The BYE msg is built and put on the Fifo ready to be sent on the wire

2. the session is transitioned to IsTerminating()

3. The onTerminated() callback is fired.

 

If system load causes a slowdown, it quite easy to be manipulating the session in OnTerminated() and the AppDialog, AppdialogSet and InviteSession all get destroyed before exiting the callback. This happens when the BYE gets a 200 OK answer and the session is torn down.

 

It seems that there is a window of ~15ms before the BYE msg is sent out. What's controlling this time?

 

Any suggestions how to get around this issue or if the session will be kept around longer than the receipt of the 200 OK on the BYE. Any forseeable changes to DUM?

 

Bill Kovar

bkovar@xxxxxxxxx

Avaya, Inc.

(732) 852-2609