[asterisk-dev] [Code Review] 4596: res_pjsip_phoneprov_provider: Fix leaked OBJ_MULTIPLE iterator (2nd try)

Corey Farrell reviewboard at asterisk.org
Wed Apr 8 07:24:45 CDT 2015



> On April 7, 2015, 8:15 a.m., Corey Farrell wrote:
> > branches/13/res/res_pjsip_config_wizard.c, lines 1189-1191
> > <https://reviewboard.asterisk.org/r/4596/diff/1/?file=73638#file73638line1189>
> >
> >     I'm concerned that this is needed due to the load order change.  My worry is that there might be other modules that will need this due to res_pjsip_config_wizard loading later.
> >     
> >     I'm not confident enough with my knowledge of res_pjsip modules to say if this is ok.
> 
> George Joseph wrote:
>     This is due to how config_wizard is implemented (as a sorcery wizard).  If config_wizard loads early then it will be in place before res_pjsip and res_pjsip_phoneprov_provider and all will load correctly.  This causes it to unload late though and that caused the FRACKs.  If the config_wizard loads after res_pjsip and res_pjsip_phoneprov_provider, then it has to trigger them both to reload or they won't pick up the config_wizard generated objects.  The unloads work correctly in this case.  
>     
>     I'm looking at alternate config_wizard load/unload strategies but it's tricky.  In the mean time, this should do the trick.
>

I'm still getting a FRACK during shutdown for tests/phoneprov/res_phoneprov_pjsip:
[Apr 07 19:05:24] WARNING[15482]: asterisk.asterisk:126 errReceived: Asterisk 127.0.0.1 received error: FRACK!, Failed assertion 0 (0) at line 274 in internal_ao2_traverse of astobj2_container.c

This appears twice in the same second.


- Corey


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


On April 6, 2015, 4:32 p.m., George Joseph wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/4596/
> -----------------------------------------------------------
> 
> (Updated April 6, 2015, 4:32 p.m.)
> 
> 
> Review request for Asterisk Developers and Corey Farrell.
> 
> 
> Bugs: ASTERISK-24935
>     https://issues.asterisk.org/jira/browse/ASTERISK-24935
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> Original issue:  res_pjsip_phoneprov_provider was using ao2_callback with OBJ_MULTIPLE, then ignoring the return.  This resulted in a reference leak.  Added OBJ_NODATA flag.
> 
> Unfortunately, this highlighted a module unload order issue where res_phoneprov and res_pjsip_phoneprov_provider were unloading before res_pjsip_config_wizard, which needed them.
> 
> res_pjsip_config_wizard is itself a sorcery wizard so there are some complexities to it's load order (it's long story) but I've removed the GLOBAL_SYMBOLS flag from res_pjsip_config_wizard so it loads later and unloads earlier and also triggered a reload of res_pjsip_phoneprov_provider.  Now they load and unload in the correct order.
> 
> 
> Diffs
> -----
> 
>   branches/13/res/res_pjsip_phoneprov_provider.c 434148 
>   branches/13/res/res_pjsip_config_wizard.c 434148 
> 
> Diff: https://reviewboard.asterisk.org/r/4596/diff/
> 
> 
> Testing
> -------
> 
> Checked load/unload order and make sure there were no FRACKs on unload.
> 
> 
> Thanks,
> 
> George Joseph
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20150408/e2955f28/attachment-0001.html>


More information about the asterisk-dev mailing list