On 2012-10-08 10:29, elact...@jamailca.com wrote:
On 2012-10-08 09:15, Daniel-Constantin Mierla wrote:
Hello,

can you test with latest version in 3.3.x series (from git branch or
at least the packages for 3.3.1) -- there were many fixes since 3.3.0
was released -- just to be sure we don't hunt fixed issues.


Tested and duplicated the same behavior on the following nightly builds:

Ubuntu (12.04.1) kamailio, kamailio-lua-modules i386 3.3.1+git20121008+precise1 Ubuntu (12.04.1) kamailio, kamailio-lua-modules i386 3.3.1+git20121008+wheezy1

I will analyze properly the details you sent in the near future.


Thanks. I am looking forward to it.

-Andrew

Cheers,
Daniel

For the benefit of the mailing list archives, I have not been able to duplicate this problem on Kamailio 3.3.3.

It looks like this commit fixed it: http://git.sip-router.org/cgi-bin/gitweb.cgi?p=sip-router;a=commit;h=890f785bc05f137af624306f51874c17bef10d30

Thanks Daniel / Hugh Waite!


-Andrew


On 10/5/12 7:54 PM, elact...@jamailca.com wrote:
On 2012-09-27 11:05, elact...@jamailca.com wrote:
On 2012-09-27 10:19, Daniel-Constantin Mierla wrote:
Hello,

On 9/26/12 9:47 PM, elact...@jamailca.com wrote:
Hi,

I am using app_lua to frequently store some data in htable and avp entries, using sr.pv.sets. When I read the values using sr.pv.get immediately after writing them, they seem correct. However, when I read them later from Lua, I have noticed that sometimes the value is incorrect or nil. Am I doing something wrong?

The following code uses rtimer to duplicate the problem on startup, printing the errors to syslog.

Tested on version: kamailio 3.3.1 (i386/linux) 2d0f6f

###############
# kamailio.cfg
###############
loadmodule    "pv.so"
loadmodule    "xlog.so"
loadmodule    "htable.so"
loadmodule    "rtimer.so"
loadmodule    "app_lua"

modparam("htable", "htable", "status=>size=14;autoexpire=0;")

modparam("rtimer", "timer", "name=ta;interval=10;mode=1")
modparam("rtimer", "exec", "timer=ta;route=LUA_TEST")

# the following path may need to change depending on filesystem setup
modparam("app_lua", "load", "/etc/kamailio/kamailio.lua")

route
{
    route(LUA_TEST);
}

route[LUA_TEST] {

        $var(lua_test_key) = $(pp{s.toupper}) + "::";
lua_runstring("htable_test([[status=>$var(lua_test_key)]])");
lua_runstring("avp_test([[status=>$var(lua_test_key)]])");

}

----------------
-- kamailio.lua
----------------
-- Test of sr.pv operations in Lua

function htable_test (namekey)
    local pvar_prefix = "$sht("..namekey
    pvar_test(pvar_prefix)
end

function avp_test ( name )
    local pvar_prefix = "$avp("..name
    pvar_test(pvar_prefix)
end


function pvar_test ( pvar_prefix )

    for value = 10000, 10050 do
        local pvar = pvar_prefix..value..")"
--sr.log("info", "Lua attempting to set '"..pvar.."' to value '"..value.."'")
        sr.pv.sets(pvar, value)
    end

    for value = 10000, 10050 do
        -- now we check what was stored
        local pvar = pvar_prefix..value..")"
        local checkvar = sr.pv.get(pvar)
        if ( tostring(checkvar) ~= tostring(value) ) then
sr.err(string.format("CHECK: Lua checking pvar '%s' and got value '%s' which is NOT '%s'",
                tostring(pvar),
                tostring(checkvar),
                tostring(value)
            ))
        end

    end
end
-- end of kamailio.lua

can you provide the log messages?

Sorry, I should have included them with the initial posting. I have attached an example of the first seven executions of rtimer after a fresh startup. Each startup of kamailio results in slightly different
error values, but the pattern seems similar.

Please let me know if it would be good to send more logs or anything else.


Note that avps are destroyed after
execution of the rtimer route - avps are attached to
message/transaction. Hash table values should stay no matter where are
set.

Thanks for the reminder. I think in this case the test is valid,
though, since the avp values are written and read within a single
rtimer route.


Cheers,
Daniel

Thanks for the help!

-Andrew


I have now duplicated this on the following systems:

Alpine Linux (2.4.5) - kamailio-3.3.0-r0@edge
Ubuntu (12.04.1) - kamailio-3.3.0+precise1
Ubuntu (12.04.1) - kamailio-3.3.0+wheezy1


Only certain pseudovariables are affected:

sr.pv.sets("$sht(name=>key)") fails
sr.pv.sets("$avp(name)") fails
sr.pv.sets("$xavp(name)") fails
sr.pv.sets("$shv(name)") works
sr.pv.sets("$var(name)") works

Do you need any more information to track this problem?


Thanks,

-Andrew



_______________________________________________
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

_______________________________________________
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

Reply via email to