[sr-dev] [kamailio/kamailio] dmq_usrloc: contacts not deleted while 0x04 flag set in save() function (#1445)

Guillaume Bour notifications at github.com
Fri Feb 16 12:43:27 CET 2018


### Description

Hello,

related to #265 ,
I can reproduce the issue, with kamailio 4.4.6+jessie from kamailio debian repository

- 0x04 flag is set on save()
- old contacts are deleted on the server receiving the REGISTER message
- old contacts are not deleted on servers being notified via DMQ
 



<!--
Explain what you did, what you expected to happen, and what actually happened.
-->

### Troubleshooting

#### Reproduction

- Setup 2 servers with dmq & dmq_usrloc replication between each other, and with registration on 1st
- Use 0x04 flag on save() function
- Register your softphones a 1st time  on 1 server: registration is replicated on 2d server, contact is on both servers 
- Reregister (with different contact) on same server: 
  - previous contact is deleted on 1st server
  - new contact is replicated to 2d server
  - previous contact is *NOT* delete on 2d server

#### Log Messages

server1 (REGISTER message):

    DEBUG: usrloc [ucontact.c:1692]: update_ucontact(): exists callback for type= UL_CONTACT_UPDATE
    DEBUG: usrloc [ul_callback.h:84]: run_ul_callbacks(): contact=0x7f0096e0b548, callback type 2/15, id 0 entered
    DEBUG: dmq_usrloc [usrloc_sync.c:578]: dmq_ul_cb_contact(): Callback from usrloc with type=2
    DEBUG: dmq_usrloc [usrloc_sync.c:548]: usrloc_dmq_send_contact(): sending serialized data {"action":1,"aor":"+33564093848","ruid":"uloc-5a86b8c5-31e0-2","c":"sip:+33564093848 at xxx:41502;ob","received":"","path":"","callid":"ntoWjs3R3WpP9Z5rsi7Npmr2rRGKstls","user_agent":"CSipSimple_porridge-23/r2457","instance":"","expires":1518779539,"cseq":55952,"flags":0,"cflags":0,"q":-1,"last_modified":1518778639,"methods":8159,"reg_id":0}
    DEBUG: dmq_usrloc [usrloc_sync.c:299]: usrloc_dmq_send(): sending dmq broadcast...

server2 (DMQ recipient):

    DEBUG: dmq_usrloc [usrloc_sync.c:327]: usrloc_dmq_handle_msg(): dmq message received from sip:usrloc at 172.16.67.15:5060
    DEBUG: dmq_usrloc [usrloc_sync.c:429]: usrloc_dmq_handle_msg(): Received DMQ_UPDATE. Update contact info...
    DEBUG: dmq_usrloc [usrloc_sync.c:64]: add_contact(): aor: +33564093848
    DEBUG: dmq_usrloc [usrloc_sync.c:65]: add_contact(): ci->ruid: uloc-5a86b8c5-31e0-2
    DEBUG: dmq_usrloc [usrloc_sync.c:66]: add_contact(): aorhash: -1799456359
    DEBUG: dmq_usrloc [usrloc_sync.c:72]: add_contact(): Found contact
    DEBUG: usrloc [ucontact.c:1692]: update_ucontact(): exists callback for type= UL_CONTACT_UPDATE
    DEBUG: usrloc [ul_callback.h:84]: run_ul_callbacks(): contact=0x7f3900243bd0, callback type 2/15, id 0 entered
    DEBUG: dmq_usrloc [usrloc_sync.c:578]: dmq_ul_cb_contact(): Callback from usrloc with type=2
    DEBUG: dmq_usrloc [usrloc_sync.c:600]: dmq_ul_cb_contact(): Contact received from DMQ... skip
    DEBUG: usrloc [ucontact.c:1004]: db_update_ucontact_ruid(): ruid:uloc-5a86b8c5-31e0-2
    DEBUG: usrloc [ucontact.c:1133]: db_update_ucontact_ruid(): contact:sip:+33564093848 at xxx:41502;ob
    DEBUG: dmq_usrloc [usrloc_sync.c:74]: add_contact(): Release record
    DEBUG: dmq_usrloc [usrloc_sync.c:76]: add_contact(): Unlock udomain

the recipient receive an UPDATE message only.
according to usrloc_sync.c:usrloc_dmq_handle_msg(), UPDATE message add the new contact only (execute add_contact()), but the other one is not deleted

and there is no DMQ_RM message generated from the emitter

 
### Possible Solutions

<!--
If you found a solution or workaround for the issue, describe it. Ideally, provide a pull request with a fix.
-->

### Additional Information

```
version: kamailio 4.4.6 (x86_64/linux) 
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: unknown 
compiled with gcc 4.9.2
```

* **Operating System**:


```
3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u2 (2017-06-26) x86_64 GNU/Linux
```


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/1445
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-dev/attachments/20180216/bd1e0374/attachment.html>


More information about the sr-dev mailing list