Ok, I'll try it. Thank you very much!
On Fri, Dec 23, 2011 at 1:20 PM, Daniel-Constantin Mierla <mico...@gmail.com> wrote: > Hello, > > can you try with this patch: > > http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=1b3cfa60a5b5c7d435704d44b7c495b7e6aa84c8 > > Cheers, > Daniel > > > On 12/23/11 12:36 PM, Daniel-Constantin Mierla wrote: >> >> Hello, >> >> looks like a leak in a module that is storing record-routes and use them >> later, perhaps pua module, I will check it soon. >> >> Cheers, >> Daniel >> >> On 12/23/11 11:31 AM, laura testi wrote: >>> >>> Hi Daniel, >>> I just follow the instruction in the link you sent >>> (http://www.asipto.com/pub/kamailio-devel-guide/#c04troubleshooting) >>> to use gdb to print PKG fragments. When I got the error in PUA: >>> >>> Dec 23 11:10:53 /.../sbin/kamailio[23276]: ERROR: pua >>> [send_subscribe.c:158]: No memory left for size:439 >>> Dec 23 11:10:53 /.../sbin/kamailio[23276]: ERROR: pua [pua.c:747]: >>> while building tm dlg_t structure >>> Dec 23 11:10:53 /.../sbin/kamailio[23276]: ERROR: pua [pua.c:652]: >>> while updating record >>> >>> >>> The I run the command >>> gdb /.../sbin/kamailio 23276 >>> and write the following commands in the gdb: >>> >>> set $i=0 >>> set $a = mem_block->first_frag >>> while($i<10000) >>> if($i>2000) >>> if($a->u.is_free==0) >>> p *$a >>> end >>> end >>> set $a = ((struct qm_frag*)((char*)($a)+sizeof(struct >>> qm_frag)+((struct qm_frag*)$a)->size+sizeof(struct qm_frag_end))) >>> set $i = $i + 1 >>> end >>> ... >>> >>> after a while I got a lot of prints on the screen like these: >>> >>> func = 0x5d7b00 "do_parse_rr_body", line = 74, check = 4042322160} >>> $1348 = {size = 72, u = {nxt_free = 0x0, is_free = 0}, >>> file = 0x5d76c9 "<core>: parser/parse_rr.c", >>> func = 0x5d7b00 "do_parse_rr_body", line = 74, check = 4042322160} >>> $1349 = {size = 72, u = {nxt_free = 0x0, is_free = 0}, >>> file = 0x5d76c9 "<core>: parser/parse_rr.c", >>> func = 0x5d7b00 "do_parse_rr_body", line = 74, check = 4042322160} >>> $1350 = {size = 72, u = {nxt_free = 0x0, is_free = 0}, >>> file = 0x5d76c9 "<core>: parser/parse_rr.c", >>> func = 0x5d7b00 "do_parse_rr_body", line = 74, check = 4042322160} >>> $1351 = {size = 104, u = {nxt_free = 0x0, is_free = 0}, >>> file = 0x5d76c9 "<core>: parser/parse_rr.c", >>> func = 0x5d7b00 "do_parse_rr_body", line = 74, check = 4042322160} >>> $1352 = {size = 104, u = {nxt_free = 0x0, is_free = 0}, >>> file = 0x5d76c9 "<core>: parser/parse_rr.c", >>> func = 0x5d7b00 "do_parse_rr_body", line = 74, check = 4042322160} >>> $1353 = {size = 72, u = {nxt_free = 0x0, is_free = 0}, >>> file = 0x5d76c9 "<core>: parser/parse_rr.c", >>> func = 0x5d7b00 "do_parse_rr_body", line = 74, check = 4042322160} >>> $1354 = {size = 72, u = {nxt_free = 0x0, is_free = 0}, >>> ---Type<return> to continue, or q<return> to quit--- >>> >>> ... >>> >>> >>> But I don't understand if these are normal or something goes wrong.... >>> >>> Can you help >>> >>> >>> Best Regards, >>> Laura >>> >>> On Wed, Dec 21, 2011 at 12:18 PM, Daniel-Constantin Mierla >>> <mico...@gmail.com> wrote: >>>> >>>> Hello, >>>> >>>> pkg.stats was added in 3.2.0, iirc. For 3.1, you can walk the packets in >>>> memory with gdb -- 3.1 has memory debug on, so you don't need to >>>> recompile >>>> (unless you turned it off). >>>> >>>> Just attach to the pid of a sip worker (gdb /path/to/kamailio >>>> _pid_value_) >>>> and run the gdb script. >>>> >>>> Cheers, >>>> Daniel >>>> >>>> >>>> On 12/21/11 11:58 AM, laura testi wrote: >>>>> >>>>> Hi Daniel, >>>>> I try the sercmd for pkg memory but it return 500 error: >>>>> >>>>> >>>>> # sercmd >>>>> sercmd 0.2 >>>>> Copyright 2006 iptelorg GmbH >>>>> This is free software with ABSOLUTELY NO WARRANTY. >>>>> For details type `warranty'. >>>>> sercmd> pkg.stats >>>>> error: 500 - command pkg.stats not found >>>>> sercmd> >>>>> >>>>> >>>>> >>>>> Is it available only for 3.2.x and master branch? Because we are using >>>>> 3.1.5. But take the PUA module from master branch for the fetch_row >>>>> parameter you have patched ;-) >>>>> >>>>> >>>>> core.shmmem is ok. >>>>> >>>>> >>>>> >>>>> Thanks a lot >>>>> >>>>> Laura >>>>> >>>>> On Wed, Dec 21, 2011 at 10:58 AM, Daniel-Constantin Mierla >>>>> <mico...@gmail.com> wrote: >>>>>> >>>>>> Hello, >>>>>> >>>>>> you can see the available pkg via sercmd, sending command pkg.stats >>>>>> (match >>>>>> the entry for the pid printing the error). If there is no free memory, >>>>>> then >>>>>> might be a leak. >>>>>> >>>>>> You can attach with gdb to the pid printing these errors and walk to >>>>>> pkg, >>>>>> you see the commands for gdb at: >>>>>> >>>>>> http://www.asipto.com/pub/kamailio-devel-guide/#c04troubleshooting >>>>>> >>>>>> See if you have lot of allocated chunks from same place in source code >>>>>> (ignore those at the beginning, mainly related to cfg parsing) and >>>>>> send >>>>>> the >>>>>> details here. >>>>>> >>>>>> Cheers, >>>>>> Daniel >>>>>> >>>>>> >>>>>> On 12/21/11 10:44 AM, laura testi wrote: >>>>>> >>>>>> Hi, >>>>>> we are using the PUA_XMPP and PUA modules from the master branch. When >>>>>> the modules are started, everything are ok, the presence events from >>>>>> XMPP are sent to kamailio SIP servers (PUBLISH/SUBSCRIBE) and cached >>>>>> in the hash. But when there are several thousands records in the hash >>>>>> tabel, the update_pua function called in the hashT_clean gives a lot >>>>>> of "No memory left" error when the hashT_clean is waked up from the >>>>>> time: >>>>>> >>>>>> ERROR: pua [send_subscribe.c]: No memory left >>>>>> ERROR: pua [pua.c]: while building tm dlg_t structure >>>>>> >>>>>> The failed call is: >>>>>> td = (dlg_t*)pkg_malloc(size); >>>>>> if(td == NULL) >>>>>> { >>>>>> LM_ERR("No memory left\n"); >>>>>> return NULL; >>>>>> } >>>>>> >>>>>> in dlg_t* pua_build_dlg_t(ua_pres_t* presentity) function in >>>>>> send_subscribe.c. The size is about 400 and something... It's >>>>>> strange..... >>>>>> >>>>>> Is it the memory leak in the PUA module? >>>>>> >>>>>> >>>>>> >>>>>> I also try to increase the pkg_memory from 4MB default to 16MB, but it >>>>>> doesn't help. >>>>>> >>>>>> >>>>>> Any Idea? >>>>>> >>>>>> Thanks in advanced >>>>>> >>>>>> Laura >>>>>> >>>>>> _______________________________________________ >>>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing >>>>>> list >>>>>> sr-users@lists.sip-router.org >>>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>>>>> >>>>>> >>>>>> -- >>>>>> Daniel-Constantin Mierla -- http://www.asipto.com >>>>>> http://linkedin.com/in/miconda -- http://twitter.com/miconda >>>>> >>>>> _______________________________________________ >>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list >>>>> sr-users@lists.sip-router.org >>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>>> >>>> >>>> -- >>>> Daniel-Constantin Mierla -- http://www.asipto.com >>>> http://linkedin.com/in/miconda -- http://twitter.com/miconda >>>> >> > > -- > Daniel-Constantin Mierla -- http://www.asipto.com > http://linkedin.com/in/miconda -- http://twitter.com/miconda > _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users