Hello all,
There seems to be an deadlock between registrar and pua_reginfo module whenever 
a SIP client refreshes its registration.

1.       The pua_reginfo does not publish Event:reg when a sip client registers 
for the first time.

2.       The pua_reginfo module does not use ul.lock_udomain() to lock the ul 
table to get the record.

3.       The pua_reginfo does not release the record that it accessed from 
ul.get_urecord()
Since the record is not released, when the client re-registers, the registrar 
module is unable to query for the userlocation and sends a 200 OK response with 
0 bindings.
Which leads to no contact header in the response message and eventually 
deletion of the record in the location table(expires).

I have tried to fix this using lock_udomain, release_urecord and 
unlock_udomain, but failed to rectify the error.

The deadlock happens in modules_k/usrloc/udomain.c (db_load_urecord()).
if (ul_dbf.query(_c, keys, 0, vals, columns, (use_domain)?2:1, 13, order,
                                &res) < 0)


My Question:

1.       is pua_reginfo supposed to delete record from location database and 
send the same data to a presence server?

a.       If above is true, then should the registrar module insert a new record 
in the location table?

b.      If above is false, the registrar module should be able to 
refresh/update the record in the location table.

This error is also impacts pua_usrloc module too as it cannot access the record 
and sends creates an incorrect uri.


Help:
I'm new and learning how Kamailio works, is there a clean way that pua_reginfo 
module gets the record?

Gnaneshwar Gatla | InTouch Health | Software Developer
6330 Hollister Ave. Goleta CA, 93117 | P: 805.562.8686 ext: 199

Attachment: pua_regInfo_nousername04.pcap
Description: pua_regInfo_nousername04.pcap

_______________________________________________
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

Reply via email to