cancel
Showing results for 
Search instead for 
Did you mean: 

Using "table" iRule command inside the ACESS_SESSION_CLOSED APM event

Karim
Nimbostratus
Nimbostratus

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