<p>About duplicating the concept from preload_udomain() - this is generally fine, but the purpose of this function is a different. The preload_udomain() loads entries during startup to keep them in the cache and expire them later during runtime. This is not used in mode DB_ONLY. If I understand your code correctly, it just load all the entries to call the expiry callback and then it is not needed anymore.</p>
<p>You call mem_insert_urecord(), this calls new_urecord(), and this allocates new memory with shm_malloc(). As you are running in DB_ONLY mode, you should not keep any urecord entries after the function completes according to my understanding of your patch.</p>
<p>I would suggest to execute your patch in Kamailio debugging mode, maybe add a bit of logging to the places I mentioned, and verify this allocation and de-allocation of the memory.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/kamailio/kamailio/pull/1683#issuecomment-432943165">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AF36ZYfa1OuWykl5ImqW3B85zsVMJ2ZBks5uoWdagaJpZM4XzQ4n">mute the thread</a>.<img src="https://github.com/notifications/beacon/AF36Zekpr2zmLTB24etg7cm-X89l527tks5uoWdagaJpZM4XzQ4n.gif" height="1" width="1" alt="" /></p>
<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/kamailio/kamailio","title":"kamailio/kamailio","subtitle":"GitHub repository","main_image_url":"https://assets-cdn.github.com/images/email/message_cards/header.png","avatar_image_url":"https://assets-cdn.github.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/kamailio/kamailio"}},"updates":{"snippets":[{"icon":"PERSON","message":"@henningw in #1683: About duplicating the concept from preload_udomain() - this is generally fine, but the purpose of this function is a different. The preload_udomain() loads entries during startup to keep them in the cache and expire them later during runtime. This is not used in mode DB_ONLY. If I understand your code correctly, it just load all the entries to call the expiry callback and then it is not needed anymore.\r\n\r\nYou call mem_insert_urecord(), this calls new_urecord(), and this allocates new memory with shm_malloc(). As you are running in DB_ONLY mode, you should not keep any urecord entries after the function completes according to my understanding of your patch.\r\n\r\nI would suggest to execute your patch in Kamailio debugging mode, maybe add a bit of logging to the places I mentioned, and verify this allocation and de-allocation of the memory."}],"action":{"name":"View Pull Request","url":"https://github.com/kamailio/kamailio/pull/1683#issuecomment-432943165"}}}</script>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/kamailio/kamailio/pull/1683#issuecomment-432943165",
"url": "https://github.com/kamailio/kamailio/pull/1683#issuecomment-432943165",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
},
{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"hideOriginalBody": "false",
"originator": "AF6C5A86-E920-430C-9C59-A73278B5EFEB",
"title": "Re: [kamailio/kamailio] usrloc: call contact expired call back for a domain with db_mode: DB_ONLY (#1683)",
"sections": [
{
"text": "",
"activityTitle": "**Henning Westerholt**",
"activityImage": "https://assets-cdn.github.com/images/email/message_cards/avatar.png",
"activitySubtitle": "@henningw",
"facts": [

]
}
],
"potentialAction": [
{
"name": "Add a comment",
"@type": "ActionCard",
"inputs": [
{
"isMultiLine": true,
"@type": "TextInput",
"id": "IssueComment",
"isRequired": false
}
],
"actions": [
{
"name": "Comment",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"IssueComment\",\n\"repositoryFullName\": \"kamailio/kamailio\",\n\"issueId\": 1683,\n\"IssueComment\": \"{{IssueComment.value}}\"\n}"
}
]
},
{
"name": "Close pull request",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"PullRequestClose\",\n\"repositoryFullName\": \"kamailio/kamailio\",\n\"pullRequestId\": 1683\n}"
},
{
"targets": [
{
"os": "default",
"uri": "https://github.com/kamailio/kamailio/pull/1683#issuecomment-432943165"
}
],
"@type": "OpenUri",
"name": "View on GitHub"
},
{
"name": "Unsubscribe",
"@type": "HttpPOST",
"target": "https://api.github.com",
"body": "{\n\"commandName\": \"MuteNotification\",\n\"threadId\": 399314471\n}"
}
],
"themeColor": "26292E"
}
]</script>