23-Jan-2018
01:51
- last edited on
02-Jun-2023
10:05
by
JimmyPackets
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,
25-Jan-2018
08:34
- last edited on
02-Jun-2023
10:03
by
JimmyPackets
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 !"
}
29-Jul-2022 10:22
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