I am seeing a strange error on registration.
My usrloc table looks/looked like this:
root@ser-1:~# serctl showdb
Online Accounts:
+-------------------+------------------------------+---------------------+
| username | contact | expires |
+-------------------+------------------------------+---------------------+
| alex(a)adomain.net | sip:alex@222.11.222.111:5060 | 2004-03-29 00:48:57 |
+-------------------+------------------------------+---------------------+
(note the entry has expired a long while ago, and is from the same
address at which I'm now trying to register).
When I try and register, I get:
->REGISTER
sip:adomain.net
<-401 Unauthorized (fine, needs digest)
->REGISTER
sip.adomain.net
<-500 Internal server error
The interesting component is:
"P-Registrar-Error: usrloc_contact_insert failed"
And in the logs I see:
Apr 3 18:31:26 ser-1 ser[1855]: submit_query(): Duplicate entry
'alex-adomain.net-sip:alex@222.11.222.111:5060' for key 1
Apr 3 18:31:26 ser-1 ser[1855]: insert_row(): Error while submitting query
Apr 3 18:31:26 ser-1 ser[1855]: db_insert_ucontact(): Error while
inserting contact
Apr 3 18:31:26 ser-1 ser[1855]: insert_ucontact(): Error while inserting
in database
Apr 3 18:31:26 ser-1 ser[1855]: insert(): Error while inserting contact
Apr 3 18:31:26 ser-1 ser[1855]: contacts(): Error while inserting record
Now I'd suspect a database problem, config problem, or similar, except
if I use another user, it works straight away:
root@ser-1:~# serctl showdb
Online Accounts:
+-------------------+------------------------------+---------------------+
| username | contact | expires |
+-------------------+------------------------------+---------------------+
| alex(a)adomain.net | sip:alex@222.11.222.111:5060 | 2004-03-29 00:48:57 |
| joel(a)adomain.net | sip:joel@222.11.222.111:5060 | 2004-04-03 19:09:43 |
+-------------------+------------------------------+---------------------+
It's almost as if ser is not overwriting expired usrloc table entries.
I could wipe the entry out the table, but that's hardly the point. It's
also as if ser is not cleaning the entry out the table even if it
expires.
I am running:
root@ser-1:~# ser -V
version: ser 0.8.12-tcp_nonb (i386/linux)
flags: STATS:Off, USE_IPV6, USE_TCP, DISABLE_NAGLE, DNS_IP_HACK, SHM_MEM,
SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,
MAX_URI_SIZE 1024, BUF_SIZE 65535
UA = X-Lite
Alex