[OpenSIPS-Devel] [ opensips-Patches-3463527 ] nat_traversal TM callback registration
Saul Ibarra Corretge
saul at ag-projects.com
Thu Dec 22 11:41:19 CET 2011
Bogdan, can you please assign this one to me?
Thanks!
On Dec 21, 2011, at 11:44 PM, SourceForge.net wrote:
> Patches item #3463527, was opened at 2011-12-21 14:44
> Message generated for change (Tracker Item Submitted) made by aerringer
> You can respond by visiting:
> https://sourceforge.net/tracker/?func=detail&atid=1086412&aid=3463527&group_id=232389
>
> Please note that this message will contain a full copy of the comment thread,
> including the initial issue submission, for this request,
> not just the latest update.
> Category: modules
> Group: 1.7.x
> Status: Open
> Resolution: None
> Priority: 5
> Private: No
> Submitted By: Alan Erringer (aerringer)
> Assigned to: Nobody/Anonymous (nobody)
> Summary: nat_traversal TM callback registration
>
> Initial Comment:
> We noticed that with 1.7.0 and still with 1.7.1 that we saw increased CPU utilization over time.
>
> We also encountered a seg fault which led us to look closely at the TM REQIN callback list:
>
> Core was generated by `/usr/local/sbin/opensips -P /var/run/opensips.pid'.
> Program terminated with signal 11, Segmentation fault.
> #0 0x00002b67e330a640 in ?? ()
> (gdb) bt
> #0 0x00002b67e330a640 in ?? ()
> #1 0x00002b67d7f0820f in run_reqin_callbacks (trans=0x2b67e7759520, req=0x8c3248,
> code=<value optimized out>) at t_hooks.c:248
> #2 0x00002b67d7ef6265 in build_cell (p_msg=0x8c3248) at h_table.c:289
> #3 0x00002b67d7f0fe91 in new_t (p_msg=0x8c3248) at t_lookup.c:973
> #4 t_newtran (p_msg=0x8c3248) at t_lookup.c:1081
> #5 0x00002b67d7f02e4b in t_relay_to (p_msg=0x2b67e7759520, proxy=0x2,
> flags=-1059770624) at t_funcs.c:199
> #6 0x00002b67d7f14261 in w_t_relay (p_msg=0x8c3248, proxy=0x0, flags=0x0) at tm.c:1129
> #7 0x0000000000410970 in do_action (a=0x7f77d8, msg=0x8c3248) at action.c:1280
> #8 0x0000000000414906 in run_action_list (a=<value optimized out>, msg=0x8c3248)
> ...
>
> We didn't conclusively find the seg fault, but we did find the source of the CPU increase.
>
> It appears that the nat_traversal module registers for TM reqin callbacks once per message rather than once during mod_init().
>
> This results in the callback list becoming huge (1.7M elements!) over time.
>
> We moved the registration into mod_init(), and it seems to perform as it should.
>
> I'm including the modified module/nat_traversal.c file from 1.7.1.
>
> Let me know if you have further questions, or if our fix doesn't seem correct.
>
> Thanks much,
>
> Alan Erringer, alan at pinger.com
>
>
> ----------------------------------------------------------------------
>
> You can respond by visiting:
> https://sourceforge.net/tracker/?func=detail&atid=1086412&aid=3463527&group_id=232389
>
> _______________________________________________
> Devel mailing list
> Devel at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/devel
--
Saúl Ibarra Corretgé
AG Projects
More information about the Devel
mailing list