Technical Forum
Ask questions. Discover Answers.
cancel
Showing results for 
Search instead for 
Did you mean: 

Using "table" iRule command inside the ACESS_SESSION_CLOSED APM event

Karim
Altostratus
Altostratus

Hello everyone,

I'm in version 13.1.0.2 and I'm facing an issue when using the "table" iRule command with the ACCESS_SESSION_CLOSED event :

This is an LTM+APM deployement (web application access)

I have an empty access policy ( start --> allow )

I have associated the following iRule to the virtual server :

when ACCESS_SESSION_STARTED {
 if { [table lookup "toto"] != "" } {
    log local0. "found !" 
 } else {
    log local0. "not found !" 
 }
}
when ACCESS_SESSION_CLOSED { 
    table set "toto" "myData" 1800
    log local0. "adding toto to the shared table !"
}

I noticed that whenever I kill a perticular session and re establish a new session, the entry is never found in the table (I have choosen a 30min timeout so that I can easly disconnect and reconnect without having the entry times out)

After further testing I noticed that whenever I use the "table" command in the ACCESS_SESSION_CLOSED , this entry is deleted right after the session is closed.

I found this article K58224211 which describe a known bug, however it should be fixed since version 12.0.0. (btw I also performed the same test in 12.1.2 and 12.1.3 with the same result)

am I missing somehting in my iRule ? or did I just hit a new bug ?

Any help would be apriciated

many thanks,

2 REPLIES 2

Ryan77777
Altocumulus
Altocumulus

This article doesn't have a whole lot of information, but it seems like what you have should be working to me (with the limited amount of knowledge I have about the system).

I would think you'd be ok here but something to think about: "Important: This event is triggerred outside of flow context (similar to RULE_INIT) when a session goes away. The iRule commands which require a flow context (for e.g. TCP, HTTP and SSL commands) can not be used in this event."

If you use a subtable does it make a difference? If we're going down the bug path... then little changes like this might get you around that. Not saying it's a bug... but if it is, then perhaps this may help.

when ACCESS_SESSION_STARTED {
    if { [table lookup -notouch -subtable  "toto"] != {} } {
        log local0. "found !" 
    } else {
        log local0. "not found !" 
    }
}
when ACCESS_SESSION_CLOSED { 
    table add -subtable  "toto" "data" 1800
    log local0. "adding toto to the shared table !"
}

Jad_Tabbara__J1
Cirrostratus
Cirrostratus

FYI, I am facing same issue in 16.1 even with the "Subtable"

If anyone has a solution it is most welcome.

This article is exactly describing the problem but does not give any solution or workaround https://support.f5.com/csp/article/K58224211