Update item expiration value during de-/incrementation for htables that are configured with autoexpire and updateexpire disabled. Otherwise an item cannot be used until timer cleaned it up.

Pre-Submission Checklist

Type Of Change

Checklist:

Description

Using following configuration

#!KAMAILIO

listen=udp:127.0.0.1:9999

log_stderror=yes

loadmodule "xlog.so"
loadmodule "pv.so"
loadmodule "sl.so"
loadmodule "htable.so"

modparam("htable", "htable", "foo=>autoexpire=1;updateexpire=0")

request_route {
        if ($sht(foo=>bar) == $null) {
                $sht(foo=>bar) = 0;
        }
        $var(foo) = $shtdec(foo=>bar);
        xlog("$Ts single value $sht(foo=>bar)\texpire $shtex(foo=>bar)\n");
        sl_send_reply("200", "Hello");
}

running

while true; do sleep 0.3; sipsak -vs sip:localhost:9999 ; done

produces following output

 0(1414153) ERROR: <script>: 1734539304 single value -1 expire 1
 0(1414153) ERROR: <script>: 1734539305 single value -2 expire 0
 0(1414153) ERROR: <script>: 1734539305 single value -3 expire 0
 0(1414153) ERROR: <script>: 1734539305 single value -4 expire 0
 0(1414153) ERROR: <script>: 1734539306 single value <null>     expire 4294967295
 0(1414153) ERROR: <script>: 1734539306 single value <null>     expire 4294967295
 0(1414153) ERROR: <script>: 1734539306 single value <null>     expire 4294967295
 0(1414153) ERROR: <script>: 1734539306 single value <null>     expire 4294967295
 0(1414153) ERROR: <script>: 1734539307 single value <null>     expire 4294967294
 0(1414153) ERROR: <script>: 1734539307 single value <null>     expire 4294967294
 0(1414153) ERROR: <script>: 1734539307 single value <null>     expire 4294967294
 0(1414153) ERROR: <script>: 1734539308 single value <null>     expire 4294967293
 0(1414153) ERROR: <script>: 1734539308 single value <null>     expire 4294967293
 0(1414153) ERROR: <script>: 1734539308 single value <null>     expire 4294967293
 0(1414153) ERROR: <script>: 1734539309 single value <null>     expire 4294967292
 0(1414153) ERROR: <script>: 1734539309 single value <null>     expire 4294967292
 0(1414153) ERROR: <script>: 1734539309 single value <null>     expire 4294967292
 0(1414153) ERROR: <script>: 1734539310 single value <null>     expire 4294967291
 0(1414153) ERROR: <script>: 1734539310 single value <null>     expire 4294967291
 0(1414153) ERROR: <script>: 1734539310 single value <null>     expire 4294967291
 0(1414153) ERROR: <script>: 1734539311 single value <null>     expire 4294967290
 0(1414153) ERROR: <script>: 1734539311 single value <null>     expire 4294967290
 0(1414153) ERROR: <script>: 1734539311 single value <null>     expire 4294967290
 0(1414153) ERROR: <script>: 1734539312 single value <null>     expire 4294967289
 0(1414153) ERROR: <script>: 1734539312 single value <null>     expire 4294967289
 0(1414153) ERROR: <script>: 1734539312 single value <null>     expire 4294967289
 0(1414153) ERROR: <script>: 1734539313 single value <null>     expire 4294967288
 0(1414153) ERROR: <script>: 1734539313 single value <null>     expire 4294967288
 0(1414153) ERROR: <script>: 1734539313 single value <null>     expire 4294967288
 0(1414153) ERROR: <script>: 1734539314 single value <null>     expire 4294967287
 0(1414153) ERROR: <script>: 1734539314 single value <null>     expire 4294967287
 0(1414153) ERROR: <script>: 1734539314 single value <null>     expire 4294967287
 0(1414153) ERROR: <script>: 1734539315 single value <null>     expire 4294967286
 0(1414153) ERROR: <script>: 1734539315 single value <null>     expire 4294967286
 0(1414153) ERROR: <script>: 1734539315 single value <null>     expire 4294967286
 0(1414153) ERROR: <script>: 1734539316 single value <null>     expire 4294967285
 0(1414153) ERROR: <script>: 1734539316 single value <null>     expire 4294967285
 0(1414153) ERROR: <script>: 1734539316 single value <null>     expire 4294967285
 0(1414153) ERROR: <script>: 1734539316 single value <null>     expire 4294967285
 0(1414153) ERROR: <script>: 1734539317 single value <null>     expire 4294967284
 0(1414153) ERROR: <script>: 1734539317 single value <null>     expire 4294967284
 0(1414153) ERROR: <script>: 1734539317 single value <null>     expire 4294967284
 0(1414153) ERROR: <script>: 1734539318 single value <null>     expire 4294967283
 0(1414153) ERROR: <script>: 1734539318 single value <null>     expire 4294967283
 0(1414153) ERROR: <script>: 1734539318 single value <null>     expire 4294967283
 0(1414153) ERROR: <script>: 1734539319 single value <null>     expire 4294967282
 0(1414153) ERROR: <script>: 1734539319 single value <null>     expire 4294967282
 0(1414153) ERROR: <script>: 1734539319 single value <null>     expire 4294967282
 0(1414153) ERROR: <script>: 1734539320 single value <null>     expire 4294967281
 0(1414153) ERROR: <script>: 1734539320 single value <null>     expire 4294967281
 0(1414153) ERROR: <script>: 1734539320 single value <null>     expire 4294967281
 0(1414153) ERROR: <script>: 1734539321 single value <null>     expire 4294967280
 0(1414153) ERROR: <script>: 1734539321 single value <null>     expire 4294967280
 0(1414153) ERROR: <script>: 1734539321 single value <null>     expire 4294967280
 0(1414153) ERROR: <script>: 1734539322 single value <null>     expire 4294967279
 0(1414153) ERROR: <script>: 1734539322 single value <null>     expire 4294967279
 0(1414153) ERROR: <script>: 1734539322 single value <null>     expire 4294967279
 0(1414153) ERROR: <script>: 1734539323 single value <null>     expire 4294967278
 0(1414153) ERROR: <script>: 1734539323 single value <null>     expire 4294967278
 0(1414153) ERROR: <script>: 1734539323 single value <null>     expire 4294967278
 0(1414153) ERROR: <script>: 1734539324 single value <null>     expire 4294967277
 0(1414153) ERROR: <script>: 1734539324 single value <null>     expire 4294967277
 0(1414153) ERROR: <script>: 1734539324 single value -1 expire 1
 0(1414153) ERROR: <script>: 1734539325 single value -2 expire 0
 0(1414153) ERROR: <script>: 1734539325 single value -3 expire 0
 0(1414153) ERROR: <script>: 1734539325 single value -4 expire 0

When adding initval=0 to htable configuration log output changes <null> to 0


You can view, comment on, or merge this pull request online at:

  https://github.com/kamailio/kamailio/pull/4079

Commit Summary

File Changes

(1 file)

Patch Links:


Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: <kamailio/kamailio/pull/4079@github.com>