Bug ID 1005433: LTM Pool Members may not be updated accurately when multiple identical database monitors are configured

Last Modified: Oct 10, 2022

Bug Tracker

Affected Product:  See more info
BIG-IP LTM(all modules)

Known Affected Versions:
14.1.4.2, 14.1.4.1, 14.1.4, 14.1.3.1, 13.1.4.1, 13.1.4, 13.1.3.6

Fixed In:
14.1.4.5, 13.1.5

Opened: Mar 25, 2021
Severity: 1-Blocking

Symptoms

When two or more database monitors (MSSQL, MySQL, PostgreSQL, Oracle) with identical 'send' and 'recv' strings are configured and applied to different LTM pools (with at least one pool member in each), the monitor status of some LTM pool members may not be correct. Other parameters of the affected monitors that differ (such as 'recv row' or 'recv column' indicating where the specified 'recv' string should be found in the result set) may cause LTM pool members using one of the affected monitors to connect to the same database to be marked UP, while LTM pool members using another affected monitor may be marked DOWN. As a result of this issue, LTM pool members that should be marked UP or DOWN by the configured monitor may instead be marked according to another affected monitor's configuration, resulting in the affected LTM pool members being intermittently marked with an incorrect state. After the next monitor ping interval, affected LTM pool members members may be marked with the correct state.

Impact

Monitored LTM pool members using a database monitor (MSSQL, MySQL, PostgreSQL, Oracle) randomly go offline/online.

Conditions

This may occur when multiple database monitors (MSSQL, MySQL, PostgreSQL, Oracle) are configured with identical 'send' and 'recv' parameters, and applied to different LTM pools/members. For example: ltm monitor mysql mysql_monitor1 { ... recv none send "select version();" ... } ltm monitor mysql mysql_monitor2 { ... recv none send "select version();" ... }

Workaround

To avoid this issue, configure each database monitor with values that make the combined parameters unique by changing either the 'send' or the 'recv' parameters, or both. For example: ltm monitor mysql mysql_monitor1 { ... recv none send "select version();" ... } ltm monitor mysql mysql_monitor2 { ... recv 5.7 send "select version();" ... }

Fix Information

The system now correctly updates LTM pool members when multiple identical database monitors are configured.

Behavior Change