Yes, the problem is happening for me because of pua_reginfo and I did linuxmaniac@2152b8c in order to solve it. But even with that I still get ucontac at shared mem left.

I'm suspecting that the underlying problem is the combination of get_static_urecord() + ul_callbacks + get_static_urecord(). The urecord is the same and it gets freed twice so only the first ucontact is free and the other is leaked.

see #997 (comment)

REGISTER

Feb 16 17:04:43 sp1 proxy[9687]: NOTICE: <script>: New request on proxy - M=REGISTER R=sip:192.168.1.71 F=sip:43993005@192.168.1.71 T=sip:43993005@192.168.1.71 IP=192.168.1.42:53152
 (127.0.0.1:5060) ID=8e40daa391b6e4d82b296c77eb0c6986@0.0.0.0 UA='Jitsi2.9.5521Linux'
Feb 16 17:04:43 sp1 proxy[9687]: DEBUG: usrloc [udomain.c:174]: get_static_urecord(): urecord static[0x7f7b41740200]
Feb 16 17:04:43 sp1 proxy[9687]: DEBUG: usrloc [ucontact.c:142]: new_ucontact(): new ucontact[0x7f7b315f1d08]
Feb 16 17:04:43 sp1 proxy[9687]: DEBUG: usrloc [udomain.c:1155]: get_urecord(): DB_ONLY urecord[0x7f7b41740200]

urecord static[0x7f7b41740200] is called before ul_callbacks and ucontact[0x7f7b315f1d08] is created.

now pua_reginfo

Feb 16 17:04:43 sp1 proxy[9687]: DEBUG: usrloc [udomain.c:174]: get_static_urecord(): urecord static[0x7f7b41740200]
Feb 16 17:04:43 sp1 proxy[9687]: DEBUG: usrloc [ucontact.c:142]: new_ucontact(): new ucontact[0x7f7b315f24f8]
Feb 16 17:04:43 sp1 proxy[9687]: DEBUG: usrloc [ucontact.c:142]: new_ucontact(): new ucontact[0x7f7b315f28f0]
Feb 16 17:04:43 sp1 proxy[9687]: DEBUG: usrloc [udomain.c:1155]: get_urecord(): DB_ONLY urecord[0x7f7b41740200]

get_urecord() is called and the static urecord[0x7f7b41740200] is used and the new ucontact[0x7f7b315f28f0] and ucontact[0x7f7b315f24f8] are there.

This code has my fix so release_urecord() is called by pua_reginfo

Feb 16 17:04:43 sp1 proxy[9687]: DEBUG: usrloc [urecord.c:553]: release_urecord(): free urecord[0x7f7b41740200]
Feb 16 17:04:43 sp1 proxy[9687]: DEBUG: usrloc [ucontact.c:179]: free_ucontact(): free ucontact[0x7f7b315f24f8]
Feb 16 17:04:43 sp1 proxy[9687]: DEBUG: usrloc [ucontact.c:179]: free_ucontact(): free ucontact[0x7f7b315f28f0]

and ucontact[0x7f7b315f28f0] and ucontact[0x7f7b315f24f8] are freed, perfect, but after the ul_callback now release_urecord() of the static urecord[0x7f7b41740200] has no efect

Feb 16 17:04:43 sp1 proxy[9687]: DEBUG: usrloc [urecord.c:553]: release_urecord(): free urecord[0x7f7b41740200]

so the initial ucontact[0x7f7b315f1d08] is not freed and the leak is done.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.