<p>version: opensips 211 (x86_64/linux)<br>
flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT<br>
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535<br>
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select<br>
git revision: <a href="https://github.com/OpenSIPS/opensips/commit/1535a27f58d6f4cff69c3cb241f53d1de5997ea7" class="commit-link"><tt>1535a27</tt></a><br>
mainc compiled on 12:21:10 Jan 12 2016 with gcc 482</p>

<p>I use uac_registrant with: </p>

<p>modparam("uac_registrant", "hash_size", 4)<br>
modparam("uac_registrant", "timer_interval", 16)</p>

<p>so i have 16 hash buckets and checking 1 hash bucket per second<br>
As i see it, opensips must check hash buckets in sequence (1234 etc) on purpose of providing well-timed detecting of expired records, but opensips checks hashes in random sequence:</p>

<p>Jan 15 12:51:49 opensips-uac-test /usr/sbin/opensips[19953]: DBG:uac_registrant:timer_check: checking  [1452851509] on htable[2]<br>
Jan 15 12:51:50 opensips-uac-test /usr/sbin/opensips[19946]: DBG:uac_registrant:timer_check: checking  [1452851510] on htable[9]<br>
Jan 15 12:51:52 opensips-uac-test /usr/sbin/opensips[19981]: DBG:uac_registrant:timer_check: checking  [1452851512] on htable[6]<br>
Jan 15 12:51:53 opensips-uac-test /usr/sbin/opensips[19981]: DBG:uac_registrant:timer_check: checking  [1452851513] on htable[7]<br>
Jan 15 12:51:54 opensips-uac-test /usr/sbin/opensips[19946]: DBG:uac_registrant:timer_check: checking  [1452851514] on htable[10]<br>
Jan 15 12:51:55 opensips-uac-test /usr/sbin/opensips[19980]: DBG:uac_registrant:timer_check: checking  [1452851515] on htable[3]<br>
Jan 15 12:51:56 opensips-uac-test /usr/sbin/opensips[19956]: DBG:uac_registrant:timer_check: checking  [1452851516] on htable[0]<br>
Jan 15 12:51:57 opensips-uac-test /usr/sbin/opensips[19947]: DBG:uac_registrant:timer_check: checking  [1452851517] on htable[5]<br>
Jan 15 12:51:58 opensips-uac-test /usr/sbin/opensips[19948]: DBG:uac_registrant:timer_check: checking  [1452851518] on htable[5]<br>
Jan 15 12:51:59 opensips-uac-test /usr/sbin/opensips[19982]: DBG:uac_registrant:timer_check: checking  [1452851519] on htable[6]<br>
Jan 15 12:52:00 opensips-uac-test /usr/sbin/opensips[19947]: DBG:uac_registrant:timer_check: checking  [1452851520] on htable[6]<br>
Jan 15 12:52:01 opensips-uac-test /usr/sbin/opensips[19944]: DBG:uac_registrant:timer_check: checking  [1452851521] on htable[2]<br>
Jan 15 12:52:02 opensips-uac-test /usr/sbin/opensips[19978]: DBG:uac_registrant:timer_check: checking  [1452851522] on htable[2]<br>
Jan 15 12:52:03 opensips-uac-test /usr/sbin/opensips[19979]: DBG:uac_registrant:timer_check: checking  [1452851523] on htable[0]<br>
Jan 15 12:52:04 opensips-uac-test /usr/sbin/opensips[19946]: DBG:uac_registrant:timer_check: checking  [1452851524] on htable[11]<br>
Jan 15 12:52:05 opensips-uac-test /usr/sbin/opensips[19947]: DBG:uac_registrant:timer_check: checking  [1452851525] on htable[7]<br>
Jan 15 12:52:06 opensips-uac-test /usr/sbin/opensips[19979]: DBG:uac_registrant:timer_check: checking  [1452851526] on htable[1]<br>
Jan 15 12:52:07 opensips-uac-test /usr/sbin/opensips[19947]: DBG:uac_registrant:timer_check: checking  [1452851527] on htable[8]<br>
Jan 15 12:52:08 opensips-uac-test /usr/sbin/opensips[19947]: DBG:uac_registrant:timer_check: checking  [1452851528] on htable[9]<br>
Jan 15 12:52:09 opensips-uac-test /usr/sbin/opensips[19948]: DBG:uac_registrant:timer_check: checking  [1452851529] on htable[6]<br>
Jan 15 12:52:10 opensips-uac-test /usr/sbin/opensips[19951]: DBG:uac_registrant:timer_check: checking  [1452851530] on htable[1]<br>
Jan 15 12:52:11 opensips-uac-test /usr/sbin/opensips[19946]: DBG:uac_registrant:timer_check: checking  [1452851531] on htable[12]<br>
Jan 15 12:52:12 opensips-uac-test /usr/sbin/opensips[19982]: DBG:uac_registrant:timer_check: checking  [1452851532] on htable[7]<br>
Jan 15 12:52:13 opensips-uac-test /usr/sbin/opensips[19946]: DBG:uac_registrant:timer_check: checking  [1452851533] on htable[13]<br>
Jan 15 12:52:14 opensips-uac-test /usr/sbin/opensips[19948]: DBG:uac_registrant:timer_check: checking  [1452851534] on htable[7]<br>
Jan 15 12:52:15 opensips-uac-test /usr/sbin/opensips[19948]: DBG:uac_registrant:timer_check: checking  [1452851535] on htable[8]<br>
Jan 15 12:52:16 opensips-uac-test /usr/sbin/opensips[19982]: DBG:uac_registrant:timer_check: checking  [1452851536] on htable[8]<br>
Jan 15 12:52:17 opensips-uac-test /usr/sbin/opensips[19947]: DBG:uac_registrant:timer_check: checking  [1452851537] on htable[10]<br>
Jan 15 12:52:18 opensips-uac-test /usr/sbin/opensips[19947]: DBG:uac_registrant:timer_check: checking  [1452851538] on htable[11]<br>
Jan 15 12:52:19 opensips-uac-test /usr/sbin/opensips[19947]: DBG:uac_registrant:timer_check: checking  [1452851539] on htable[12]<br>
Jan 15 12:52:20 opensips-uac-test /usr/sbin/opensips[19946]: DBG:uac_registrant:timer_check: checking  [1452851540] on htable[14]<br>
Jan 15 12:52:21 opensips-uac-test /usr/sbin/opensips[19947]: DBG:uac_registrant:timer_check: checking  [1452851541] on htable[13]<br>
Jan 15 12:52:22 opensips-uac-test /usr/sbin/opensips[19946]: DBG:uac_registrant:timer_check: checking  [1452851542] on htable[15]<br>
Jan 15 12:52:23 opensips-uac-test /usr/sbin/opensips[19947]: DBG:uac_registrant:timer_check: checking  [1452851543] on htable[14]<br>
Jan 15 12:52:24 opensips-uac-test /usr/sbin/opensips[19978]: DBG:uac_registrant:timer_check: checking  [1452851544] on htable[3]<br>
Jan 15 12:52:25 opensips-uac-test /usr/sbin/opensips[19946]: DBG:uac_registrant:timer_check: checking  [1452851545] on htable[0]<br>
Jan 15 12:52:26 opensips-uac-test /usr/sbin/opensips[19946]: DBG:uac_registrant:timer_check: checking  [1452851546] on htable[1]<br>
Jan 15 12:52:27 opensips-uac-test /usr/sbin/opensips[19982]: DBG:uac_registrant:timer_check: checking  [1452851547] on htable[9]<br>
Jan 15 12:52:28 opensips-uac-test /usr/sbin/opensips[19979]: DBG:uac_registrant:timer_check: checking  [1452851548] on htable[2]<br>
Jan 15 12:52:29 opensips-uac-test /usr/sbin/opensips[19946]: DBG:uac_registrant:timer_check: checking  [1452851549] on htable[2]<br>
Jan 15 12:52:30 opensips-uac-test /usr/sbin/opensips[19976]: DBG:uac_registrant:timer_check: checking  [1452851550] on htable[0]<br>
Jan 15 12:52:31 opensips-uac-test /usr/sbin/opensips[19976]: DBG:uac_registrant:timer_check: checking  [1452851551] on htable[1]<br>
Jan 15 12:52:32 opensips-uac-test /usr/sbin/opensips[19976]: DBG:uac_registrant:timer_check: checking  [1452851552] on htable[2]<br>
Jan 15 12:52:33 opensips-uac-test /usr/sbin/opensips[19946]: DBG:uac_registrant:timer_check: checking  [1452851553] on htable[3]<br>
Jan 15 12:52:34 opensips-uac-test /usr/sbin/opensips[19946]: DBG:uac_registrant:timer_check: checking  [1452851554] on htable[4]<br>
Jan 15 12:52:35 opensips-uac-test /usr/sbin/opensips[19977]: DBG:uac_registrant:timer_check: checking  [1452851555] on htable[2]<br>
Jan 15 12:52:36 opensips-uac-test /usr/sbin/opensips[19947]: DBG:uac_registrant:timer_check: checking  [1452851556] on htable[15]<br>
Jan 15 12:52:37 opensips-uac-test /usr/sbin/opensips[19947]: DBG:uac_registrant:timer_check: checking  [1452851557] on htable[0]<br>
Jan 15 12:52:38 opensips-uac-test /usr/sbin/opensips[19947]: DBG:uac_registrant:timer_check: checking  [1452851558] on htable[1]<br>
Jan 15 12:52:39 opensips-uac-test /usr/sbin/opensips[19949]: DBG:uac_registrant:timer_check: checking  [1452851559] on htable[2]<br>
Jan 15 12:52:40 opensips-uac-test /usr/sbin/opensips[19982]: DBG:uac_registrant:timer_check: checking  [1452851560] on htable[10]<br>
Jan 15 12:52:41 opensips-uac-test /usr/sbin/opensips[19980]: DBG:uac_registrant:timer_check: checking  [1452851561] on htable[4]<br>
Jan 15 12:52:42 opensips-uac-test /usr/sbin/opensips[19946]: DBG:uac_registrant:timer_check: checking  [1452851562] on htable[5]<br>
Jan 15 12:52:43 opensips-uac-test /usr/sbin/opensips[19975]: DBG:uac_registrant:timer_check: checking  [1452851563] on htable[2]<br>
Jan 15 12:52:44 opensips-uac-test /usr/sbin/opensips[19945]: DBG:uac_registrant:timer_check: checking  [1452851564] on htable[8]<br>
Jan 15 12:52:45 opensips-uac-test /usr/sbin/opensips[19944]: DBG:uac_registrant:timer_check: checking  [1452851565] on htable[3]<br>
Jan 15 12:52:46 opensips-uac-test /usr/sbin/opensips[19945]: DBG:uac_registrant:timer_check: checking  [1452851566] on htable[9]<br>
Jan 15 12:52:47 opensips-uac-test /usr/sbin/opensips[19944]: DBG:uac_registrant:timer_check: checking  [1452851567] on htable[4]<br>
Jan 15 12:52:48 opensips-uac-test /usr/sbin/opensips[19945]: DBG:uac_registrant:timer_check: checking  [1452851568] on htable[10]</p>

<p>Because of that, registrants sometimes re-registering later then expires their previous registration</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">&mdash;<br>Reply to this email directly or <a href="https://github.com/OpenSIPS/opensips/issues/758">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AFOcieTmhhz1B5wKZjFZDkzbvfFMw-cGks5paLqTgaJpZM4HFmDb.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/OpenSIPS/opensips/issues/758"></link>
  <meta itemprop="name" content="View Issue"></meta>
</div>
<meta itemprop="description" content="View this Issue on GitHub"></meta>
</div>