[Users] memory leak in presence module?

Klaus Darilion klaus.mailinglists at pernau.at
Thu Apr 26 12:52:30 CEST 2007


Openser runs out of mem:
$ sudo openserctl fifo get_statistics all
core:rcv_requests = 13893
core:rcv_replies = 18007
core:fwd_requests = 0
core:fwd_replies = 0
core:drop_requests = 0
core:drop_replies = 0
core:err_requests = 0
core:err_replies = 0
core:bad_URIs_rcvd = 0
core:unsupported_methods = 0
core:bad_msg_hdr = 0
shmem:total_size = 67108864
shmem:used_size = 65351684
shmem:real_used_size = 66591880
shmem:max_used_size = 66953980
shmem:free_size = 516984
shmem:fragments = 1052
sl:1xx_replies = 0
sl:2xx_replies = 8878
sl:3xx_replies = 0
sl:4xx_replies = 2322
sl:5xx_replies = 2308
sl:6xx_replies = 0
sl:sent_replies = 13508
sl:sent_err_replies = 2308
sl:received_ACKs = 0
tm:received_replies = 18007
tm:relayed_replies = 17652
tm:local_replies = 1
tm:UAS_transactions = 8861
tm:UAC_transactions = 17653
tm:2xx_transactions = 17652
tm:3xx_transactions = 0
tm:4xx_transactions = 1
tm:5xx_transactions = 0
tm:6xx_transactions = 0
tm:inuse_transactions = 8861
usrloc:registered_users = 2
usrloc:location-users = 2
usrloc:location-contacts = 2
usrloc:location-expires = 0
registrar:max_expires = 0
registrar:max_contacts = 0
registrar:default_expire = 3600
registrar:accepted_regs = 12
registrar:rejected_regs = 0


after 1h of inactivity:
$ sudo openserctl fifo get_statistics all
Password:
core:rcv_requests = 14285
core:rcv_replies = 18007
core:fwd_requests = 0
core:fwd_replies = 0
core:drop_requests = 0
core:drop_replies = 0
core:err_requests = 0
core:err_replies = 0
core:bad_URIs_rcvd = 0
core:unsupported_methods = 0
core:bad_msg_hdr = 0
shmem:total_size = 67108864
shmem:used_size = 65351684
shmem:real_used_size = 66591880
shmem:max_used_size = 66953980
shmem:free_size = 516984
shmem:fragments = 1052
sl:1xx_replies = 0
sl:2xx_replies = 8922
sl:3xx_replies = 0
sl:4xx_replies = 2481
sl:5xx_replies = 2497
sl:6xx_replies = 0
sl:sent_replies = 13900
sl:sent_err_replies = 2497
sl:received_ACKs = 0
tm:received_replies = 18007
tm:relayed_replies = 17652
tm:local_replies = 1
tm:UAS_transactions = 8861
tm:UAC_transactions = 17653
tm:2xx_transactions = 17652
tm:3xx_transactions = 0
tm:4xx_transactions = 1
tm:5xx_transactions = 0
tm:6xx_transactions = 0
tm:inuse_transactions = 8861
usrloc:registered_users = 2
usrloc:location-users = 2
usrloc:location-contacts = 2
usrloc:location-expires = 0
registrar:max_expires = 0
registrar:max_contacts = 0
registrar:default_expire = 3600
registrar:accepted_regs = 51
registrar:rejected_regs = 0



regards
klaus

Daniel-Constantin Mierla wrote:
> my mistake:
> 
> # openserctl fifo get_statistics all
> 
> Cheers,
> Daniel
> 
> 
> On 04/26/07 12:36, Klaus Darilion wrote:
>> # openserctl fifo get_statistics
>> 400 Too few or too many arguments
>>
>> :-(
>>
>> I'm using 1.2
>>
>>
>> regards
>> klaus
>>
>>
>>
>> Klaus Darilion wrote:
>>>
>>>
>>> Daniel-Constantin Mierla wrote:
>>>> Hello Klaus,
>>>>
>>>> if that is the full log, seems no mem leak in shm. What is the shm 
>>>> memory size you use?
>>>
>>> I don't know - I use the default values. But the size should be 
>>> irrelevant as the "no memory left" is still there after 20 minutes of 
>>> inactivity.
>>>
>>>> Once you get out of memory can you issue" openserctl fifo 
>>>> get_statistics" and send output?
>>> ok
>>>>
>>>> I don't think is fragmentation, but you can try to compile with 
>>>> -DQM_JOIN_FREE
>>>>
>>> ok
>>>> Do you do the tests over TLS?
>>> ok
>>>>
>>>> Cheers,
>>>> Daniel
>>>>
>>>>
>>>> On 04/26/07 10:17, Klaus Darilion wrote:
>>>>> btw: there is no
>>>>> "PRESENCE:notify: ERROR in function tmb.t_request_within"
>>>>> in my log file, thus I guess the problem is somewhere else.
>>>>>
>>>>> regards
>>>>> klaus
>>>>>
>>>>> Klaus Darilion wrote:
>>>>>> Hi Anca!
>>>>>>
>>>>>> There is still a leak:
>>>>>> http://pernau.at/kd/openser/debug-stop2.txt
>>>>>>
>>>>>> regards
>>>>>> klaus
>>>>>>
>>>>>> Anca-Maria Vamanu wrote:
>>>>>>> Hello,
>>>>>>>
>>>>>>> I have made a fix. Please test again with sipp and say if it 
>>>>>>> works now.
>>>>>>>
>>>>>>> regards,
>>>>>>>
>>>>>>> Anca
>>>>>>>
>>>>>>> Klaus Darilion wrote:
>>>>>>>
>>>>>>>> Hi!
>>>>>>>>
>>>>>>>> Openser 1.2 runs out of memory during presence load tests with 
>>>>>>>> sipp.
>>>>>>>>
>>>>>>>> Config snippet:
>>>>>>>>
>>>>>>>> if (is_method("PUBLISH")) {
>>>>>>>>   xlog("L_INFO","$ci PUBLISH detected ... outside t_newtran\n");
>>>>>>>>   if (t_newtran()) {
>>>>>>>>     xlog("L_INFO","$ci PUBLISH detected ... inside t_newtran\n");
>>>>>>>>     handle_publish();
>>>>>>>>     xlog("L_INFO","$ci PUBLISH detected, handle_publish ... 
>>>>>>>> done\n");
>>>>>>>>     exit;
>>>>>>>>   } else {
>>>>>>>>     sl_reply_error();
>>>>>>>>     exit;
>>>>>>>>   }
>>>>>>>> }
>>>>>>>>
>>>>>>>> Memory log after openser stop (after 20 minutes of inactivity):
>>>>>>>> http://pernau.at/kd/openser/debug-stop.txt
>>>>>>>>
>>>>>>>>
>>>>>>>> regards
>>>>>>>> klaus Klaus Darilion wrote:
>>>>>>>>
>>>>>>>>> Hi Cesc!
>>>>>>>>>
>>>>>>>>> Where do you have t_newtran() - in ser or openser?
>>>>>>>>>
>>>>>>>>> I have it here in openser just before handle_publish(). It 
>>>>>>>>> works but now openser has run out of mem during my sipp 
>>>>>>>>> performance tests :-(
>>>>>>>>>
>>>>>>>>> ...more to come....
>>>>>>>>>
>>>>>>>>> Cesc wrote:
>>>>>>>>>
>>>>>>>>>> I think I can answer that one ... stateless?
>>>>>>>>>>
>>>>>>>>>> I have a presence openser proxied by a SER, both on same 
>>>>>>>>>> machine ...
>>>>>>>>>> For easier configuration purposes, openser and ser communicate 
>>>>>>>>>> via
>>>>>>>>>> 127.0.0.1 ...
>>>>>>>>>>
>>>>>>>>>> The result is that OK from the PUAs do not get to openser (i 
>>>>>>>>>> guess SER
>>>>>>>>>> gets confussed by the vias of openser being 0.0.0.0:5060 and the
>>>>>>>>>> 127.0.0.1 stuff) ... So, openser gets no OK, but it does not 
>>>>>>>>>> matter
>>>>>>>>>> ...
>>>>>>>>>> BTW, i have a t_newtran() in there ...
>>>>>>>>>>
>>>>>>>>>> Oh, for sure my configuration is messy and improvable ... but 
>>>>>>>>>> for now
>>>>>>>>>> it works steady :) But the OKs not going through is worrying 
>>>>>>>>>> me a bit
>>>>>>>>>> ... and also openser not "timing out" or giving an error.
>>>>>>>>>>
>>>>>>>>>> Cesc
>>>>>>>>>>
>>>>>>>>>> On 4/25/07, Klaus Darilion <klaus.mailinglists at pernau.at> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi!
>>>>>>>>>>>
>>>>>>>>>>> Does presence module handles PUBLISH/SUBSCRIBE stateful or 
>>>>>>>>>>> stateless?
>>>>>>>>>>>
>>>>>>>>>>> Thus, how should retransmission be handled. Will they be 
>>>>>>>>>>> detected by
>>>>>>>>>>> presence module or is it possible to wrap the handle_publish 
>>>>>>>>>>> inside
>>>>>>>>>>> t_newtran()?
>>>>>>>>>>>
>>>>>>>>>>> regards
>>>>>>>>>>> klaus
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Users mailing list
>>>>>>>>>>> Users at openser.org
>>>>>>>>>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Users mailing list
>>>>>>>>> Users at openser.org
>>>>>>>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Users mailing list
>>>>>>>> Users at openser.org
>>>>>>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Users mailing list
>>>>>> Users at openser.org
>>>>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>>>>
>>>>> _______________________________________________
>>>>> Users mailing list
>>>>> Users at openser.org
>>>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at openser.org
>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>




More information about the Users mailing list