> On Sept. 10, 2014, 11:51 a.m., Joshua Colp wrote:
> > /branches/13/res/res_pjsip.c, lines 2478-2480
> > <https://reviewboard.asterisk.org/r/3954/diff/3/?file=67221#file67221line2478>
> >
> >     I'm hesitant to say that this will always be true. I fear that due to 
> > the asynchronous nature of things (was this tested with TCP for example?) 
> > that the sending of the request may not block and return an error, but it 
> > would inevitably end up with a transport error callback.
> >     
> >     An example: A target using TCP transport that has no existing 
> > established connection.
> 
> rmudgett wrote:
>     I know that pjsip_endpt_send_request() will return failure and call the 
> callback for normal errors.  I also know from looking at the pjproject code 
> that pjsip_endpt_send_request() can return error and not call the callback.  
> Either we assume that pjsip_endpt_send_request() will _always_ call the 
> callback when it returns error and do what I did in version 2 of the patch or 
> we go this way.  One way or the other we are going to leak something or the 
> returned error codes need to be mapped to which ones indicate that the 
> callback will happen.

I think we have to do the mapping and know what will invoke the callback and 
what won't.


- Joshua


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3954/#review13271
-----------------------------------------------------------


On Sept. 4, 2014, 11:41 p.m., rmudgett wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/3954/
> -----------------------------------------------------------
> 
> (Updated Sept. 4, 2014, 11:41 p.m.)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Bugs: AFS-155 and ASTERISK-24295
>     https://issues.asterisk.org/jira/browse/AFS-155
>     https://issues.asterisk.org/jira/browse/ASTERISK-24295
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> The crash on the issues is a result of an invalid transport configuration 
> change when asterisk is restarted.  The attempt to send the qualify request 
> fails and we cleaned up.  However, the callback is also called which results 
> in a double unref of the objects involved.
> 
> * Fixed send_request_cb() and qualify_contact_cb() to not cleanup the token 
> when the PJSIP event is PJSIP_EVENT_TRANSPORT_ERROR since the initial 
> function call will do the clean up.
> 
> * Made send_request_cb() able to handle repeated challenges (Up to 10).
> 
> * Fix periodic endpoint qualify OPTIONS sched deletion race by avoiding it.  
> The sched entry will no longer self stop and must be externally stopped.
> 
> * Added REF_DEBUG description tags to struct sched_data in pjsip_options.c.
> 
> * Fix some off-nominal ref leaks in schedule_qualify(), 
> qualify_and_schedule().
> 
> * Reordered pjsip_options.c module start/stop code to cleanup better on error.
> 
> 
> Diffs
> -----
> 
>   /branches/13/res/res_pjsip/pjsip_options.c 422583 
>   /branches/13/res/res_pjsip.c 422583 
> 
> Diff: https://reviewboard.asterisk.org/r/3954/diff/
> 
> 
> Testing
> -------
> 
> * With the qualify_frequency option enabled, added and removed a "local_net=" 
> line in the transport section and restarted asterisk via "core restart now".  
> Before the latest patch version, asterisk would crash.  With the new patch, 
> it keeps on going.
> 
> * Set the qualify_frequency option to different values and reloaded res_pjsip 
> each time.  The OPTIONS poll frequency changed, started, and stopped 
> according to the new qualify_frequency value.
> 
> 
> Thanks,
> 
> rmudgett
> 
>

-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to