Forum Discussion
Using "table" iRule command inside the ACESS_SESSION_CLOSED APM event
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,
- Ryan77777Altocumulus
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__J1Cirrostratus
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
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com