Symptoms
When using an "ACCESS::session create" in an iRule event that fires on events prior to the HTTP filter, the command will not create the uimode session variable. The ACCESS filter requires the uimode to be present, so the end-user will receive a reset and see log messages in /var/log/apm:
Dec 13 15:47:24 slot3/jimvicg2mgmt err tmm2[27655]: 01490514:3: (null):Common:00000000: Access encountered error: ERR_VAL. File: ../modules/hudfilter/access/access.c, Function: access_process_state_client_enforce_session, Line: 6867
Dec 13 15:47:24 slot3/jimvicg2mgmt err tmm2[27655]: 01490514:3: (null):Common:00000000: Access encountered error: ERR_VAL. File: ../modules/hudfilter/access/access.c, Function: hud_access_handler, Line: 2628
Impact
End-users receive resets.
Conditions
An iRule that creates an access session prior to HTTP. For example:
when CLIENT_ACCEPTED {
if { [ACCESS::session exists] } {
log local0. "Found Access Session"
} else {
ACCESS::session create
}
}
Workaround
Set the "session.ui.mode" session variable to "0" when creating the session:
when CLIENT_ACCEPTED {
if { [ACCESS::session exists] } {
log local0. "Found Access Session"
} else {
ACCESS::session create
ACCESS::session data set session.ui.mode "0"
}
}