Bug ID 468083: An LB_FAILED iRule that references an undefined value can cause Traffic Management Microkernel (TMM) failover.

Last Modified: Sep 13, 2023

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

Known Affected Versions:
11.3.0, 11.4.0, 11.4.1, 11.5.0, 11.5.1, 11.5.2, 11.5.3, 11.5.4, 11.5.5, 11.5.6, 11.5.7, 11.5.8, 11.5.9, 11.5.10, 11.6.0, 11.6.1, 11.6.2, 11.6.3, 11.6.3.1, 11.6.3.2, 11.6.3.3, 11.6.3.4, 11.6.4, 11.6.5, 11.6.5.1, 11.6.5.2, 11.6.5.3, 12.1.0 HF1, 12.1.0 HF2, 12.1.1 HF1, 12.1.1 HF2, 12.1.2 HF1, 12.1.2 HF2

Fixed In:
12.0.0

Opened: Jun 19, 2014

Severity: 3-Major

Related Article: K16433

Symptoms

If an LB_FAILED iRule calls HTTP::respond and references an undefined value, then Traffic Management Microkernel (TMM) can crash or failover. The following is in the ltm logfile showing the undefined value reference: Jun 19 11:10:04 bigip1 err tmm[9515]: 01220001:3: TCL error: /Common/rule_lbpickfailed <LB_FAILED> - can't read "value": no such variable while executing "log local0. "$value doesn't exist""

Impact

The TMM crashes.

Conditions

The following have to be configured in order for this to reproduce: 1. An http profile with web acceleration and http compression enabled: profiles { /Common/http { } /Common/optimized-acceleration { } /Common/tcp { } /Common/wan-optimized-compression { } } 2. An LB_FAILED iRule that calls HTTP::respond and references an undefined value: when LB_FAILED { HTTP::respond 200 content "content" log local0. "$value doesn't exist" }

Workaround

Fix iRule by not referencing an undefined value within LB_FAILED.

Fix Information

If an LB_FAILED iRule calls HTTP::respond and references an undefined value, then Traffic Management Microkernel (TMM) no longer crashes or fails over.

Behavior Change

Guides & references

K10134038: F5 Bug Tracker Filter Names and Tips