The replace solution will mask the real issue. The flag that is in the usrloc should switch between update or insert and that is the real fix.
Regards, Ovidiu Sas -- VoIP Embedded, Inc.http://www.voipembedded.com On Thu, Dec 22, 2011 at 12:58 PM, Daniel-Constantin Mierla <mico...@gmail.com> wrote: > Hello, > > > On 12/22/11 6:19 PM, Andreas Granig wrote: > > Got the cause of the issue. > > What happens is that there's an AOR which registers ever 120 seconds. > For some reason, the location entry is in usrloc cache, but not in db. > What happens now is that usrloc tries an "update" query in the db, > because it still assumes that the entry is there, which obviously fails. > > If you remove the entry from usrloc (kamctl ul rm <aor>), then on the > next re-registration it's both inserted into the cache and into the db. > > Wondering how it could happen to get out of sync, and how we could > improve this. Maybe using a "replace into" instead of "update", at least > for mysql? Suggestions? > > is the timer interval parameter of usrloc higher than 120sec? > > http://kamailio.org/docs/modules/3.2.x/modules_k/usrloc.html#id2494575 > > IIRC, there should be anyhow a flag to mark if the record is in db or not, > and based on that do insert or update, maybe something is lost there. If you > do 'kamctl ul show __aor__', what are the values for flags fields? > > Another option, perhaps more portable, but with two db hits is: update and > if fails then insert -- considering that these should be corner cases, maybe > the performance is not affected much. A blended version is even better, if > the db driver supports replace, do replace instead of update (I don't know > if replace is faster/slower than update). > > Cheers, > Daniel > > > Andreas > > On 12/22/2011 05:12 PM, Andreas Granig wrote: > > Hi, > > Could you please tell me which of the three timer processes ("timer", > "slow timer" or "timer nh") is responsible for cleaning up the internal > usrloc cache? > > Looks like every now and then the cleanup of the internal location cache > is starting to fail. Funny thing is that expired locations are removed > from the mysql backend, but not from the internal cache. We're running > kamailio 3.1.5, are there any known issues fixed since that version? > > In the meanwhile we're trying to pin the issue down, but maybe someone > has a clue... > > Andreas _______________________________________________ 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