ACCESS::disable in iRule with persisted HTTP/1.1 connection fails
Hello,
I know I should open a case but has anyone seen with 11.4.1 issues with APM using the ACCESS::disable in an iRule causing the dreaded :
http_process_state_prepend - Invalid action EV_BODY_COMPLETE during ST_HTTP_PREPEND_HEADERS (Server side: vip= .. etc
iRule:
when HTTP_REQUEST {
if { [HTTP::path] starts_with "/public" }{
ACCESS::disable
}
}
It seems if you have a persisted HTTP/1.1 connection, i.e the browser makes a request for a URL (e.g. /private with Connection: keep-alive) that is processed normally by APM (i.e. is authenticated)
.. and then a second request over the same connection is made (e.g. /public) which matches the ACCESS::disable (i.e. should not be authenticated) then causing the above error.
Making the second request without the first works
It took me a while to realise what was wrong, I followed the SOL5922 assuming the backend was not RFC-2616 compliant but no, it is APM that is causing it to choke.
Otherwise is there another way to disable APM on a connection that is not ACCESS::disable or is just forcing all conenctions to HTTP/1.0 is the answer ...
cheers.