Bug ID 641587: request-adapt or response-adapt should be disabled by HTTP::disable

Last Modified: Sep 13, 2023

Affected Product(s):
BIG-IP TMOS(all modules)

Known Affected Versions:
12.1.2, 12.1.3, 12.1.3.1, 12.1.3.2, 12.1.3.3, 12.1.3.4, 12.1.3.5, 12.1.3.6, 12.1.3.7, 12.1.4, 12.1.4.1, 12.1.5, 12.1.5.1, 12.1.5.2, 12.1.5.3, 12.1.6

Fixed In:
13.1.0

Opened: Jan 26, 2017

Severity: 4-Minor

Related Article: K81048052

Symptoms

When the HTTP profile is disabled by an iRule in events such as the CLIENT_ACCEPTED event, it is not possible to use ADAPT::enable to disable the adaptation. You might assume that because ADAPT depends on HTTP, it would naturally be disabled along with HTTP, but it is not.

Impact

Despite HTTP being disabled, ADAPT attempts to handle ingress traffic, without parsed HTTP headers, so will fail. It is possible ADAPT will buffer ingress traffic indefinitely because it does not receive an expected message from the HTTP filter.

Conditions

Virtual server with HTTP profile and also Request Adapt and/or Response Adapt profile. An iRule uses HTTP::disable to (for example) pass non-HTTP traffic.

Workaround

Disable request-adapt and/or response-adapt in the profile. When HTTP traffic is to be handled, have an iRule on the HTTP_REQUEST or HTTP_RESPONSE event call "ADAPT::enable true".

Fix Information

The HTTP::disable command implicitly disables any corresponding request or response adaptation. This is correct behavior.

Behavior Change

Guides & references

K10134038: F5 Bug Tracker Filter Names and Tips