Hi,
I've been hunting a memory error in publish handling the last couple of days.
The error is on our old but good 3.1.x presence server.
Using memory debug, I located the memory leak in modules/presence/hash.c, function
insert_phtable, line 492 (in trunk):
p= (pres_entry_t*)shm_malloc(size);
As far I can see there are two errors when deleting publish htable entries
1. When calling delete_phtable pres.event->type is used instead of
pres.event->evp->type
2. When creating publish hashtable, p->publ_count is not set. (defaults to 0)
In delete_phtable, the following code is present
p->publ_count--;
if(p->publ_count== 0)
p->publ_count is probably decremented to -1 (unless the user have two active dialogs)
I attach a patch, which I would carefully test in a test environment :-)
Regards,
Kristian Høgh
Uni-tel
On Monday 12 January 2015 15:39:27 Nuno Reis wrote:
Hello all.
I'm consistently watching a memory increase in kamailio when dealing with
PRESENCE events, namely SIP PUBLISH events. The system eventually hangs
running out of memory.
This behavior is seen at least in kamailio 4.1 and 4.2. I'm currently using
the latest stable 4.2.2.
If I disable the SIP PUBLISH handling in kamailio i don't observe the issue
anymore but as a side effect I don't have presence (name BLFs) also.
What do you think can be the right approach here? Should I open an issue in
github for this? Should I run kamailio under valgrind for some time? Are
there any other possible debug hints here?
Please find attached a code snippet with the presence related parts I'm
using right now.
Looking forward to hear from you.
Best Regards,
--
*Nuno Miguel Reis* | *Unified Communication** Systems*
M. +351 913907481 | nreis(a)wavecom.pt
WAVECOM-Soluções Rádio, S.A.
Cacia Park | Rua do Progresso, Lote 15
3800-639 AVEIRO | Portugal
T. +351 309 700 225 | F. +351 234 919 191
*GPS
<http://maps.google.com/maps/ms?msa=0&msid=202333747613191340808.0004b4b227a6144f0df88>
|
www.wavecom.pt <http://www.wavecom.pt/>** <http://www.wavecom.pt/>*
[image: Description: Description: WavecomSignature]
<http://www.wavecom.pt/pt/wavecom/premios.php>
[image: Publicity] <http://www.wavecom.pt/pt/mail_eventos.php>