Hi Daniel!
One more comment:
This leads to memory leak:
if (is_method("PUBLISH")) {
if (t_newtran()) {
handle_publish();
exit;
} else {
sl_reply_error();
exit;
}
}
This works fine:
if (is_method("PUBLISH")) {
handle_publish();
exit;
}
Thus, it is related to the generated transaction of t_newtran.
regards
klaus
Klaus Darilion wrote:
Hi!
I also tried now with QM_JOIN_FREE but the same result:
The shared mem (64M) is full after ~8000 PUBLISH (=8000 NOTIFY) and
does not get freed:
darilion@ds3000:~/software/openser-svn-1.2/openser$ sudo openserctl
fifo get_statistics all
core:rcv_requests = 8743
core:rcv_replies = 8198
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 = 65865712
shmem:real_used_size = 67004532
shmem:max_used_size = 67108376
shmem:free_size = 104332
shmem:fragments = 239
sl:1xx_replies = 0
sl:2xx_replies = 8221
sl:3xx_replies = 0
sl:4xx_replies = 196
sl:5xx_replies = 186
sl:6xx_replies = 0
sl:sent_replies = 8603
sl:sent_err_replies = 186
sl:received_ACKs = 0
tm:received_replies = 8198
tm:relayed_replies = 8198
tm:local_replies = 0
tm:UAS_transactions = 8218
tm:UAC_transactions = 8200
tm:2xx_transactions = 8198
tm:3xx_transactions = 0
tm:4xx_transactions = 0
tm:5xx_transactions = 0
tm:6xx_transactions = 0
tm:inuse_transactions = 8217
usrloc:registered_users = 0
usrloc:location-users = 0
usrloc:location-contacts = 0
usrloc:location-expires = 0
registrar:max_expires = 0
registrar:max_contacts = 0
registrar:default_expire = 3600
registrar:accepted_regs = 1
registrar:rejected_regs = 0
darilion@ds3000:~/software/openser-svn-1.2/openser$
regards
klaus
Klaus Darilion wrote:
> memory logs:
>
> kill -SIGUSR1:
>
http://pernau.at/kd/openser/debug-kill-usr1.txt
>
> openser stop:
>
http://pernau.at/kd/openser/debug-stop3.txt
>
> regards
> klaus
>
> Klaus Darilion wrote:
>>
>> 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(a)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(a)openser.org
>>>>>>>>>>>>>
http://openser.org/cgi-bin/mailman/listinfo/users
>>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
_______________________________________________
>>>>>>>>>>> Users mailing list
>>>>>>>>>>> Users(a)openser.org
>>>>>>>>>>>
http://openser.org/cgi-bin/mailman/listinfo/users
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Users mailing list
>>>>>>>>>> Users(a)openser.org
>>>>>>>>>>
http://openser.org/cgi-bin/mailman/listinfo/users
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Users mailing list
>>>>>>>> Users(a)openser.org
>>>>>>>>
http://openser.org/cgi-bin/mailman/listinfo/users
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Users mailing list
>>>>>>> Users(a)openser.org
>>>>>>>
http://openser.org/cgi-bin/mailman/listinfo/users
>>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Users mailing list
>>>>> Users(a)openser.org
>>>>>
http://openser.org/cgi-bin/mailman/listinfo/users
>>>>
>>
>> _______________________________________________
>> Users mailing list
>> Users(a)openser.org
>>
http://openser.org/cgi-bin/mailman/listinfo/users