Bug ID 490537: Persistence Records display in GUI might cause system crash with large number of records

Last Modified: Apr 19, 2021

Bug Tracker

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

Known Affected Versions:
10.2.2, 10.2.4, 11.2.0, 11.2.1, 11.3.0, 11.4.0, 11.4.1, 11.5.0, 11.5.1, 11.5.1 HF1, 11.5.1 HF10, 11.5.1 HF11, 11.5.1 HF2, 11.5.1 HF3, 11.5.1 HF4, 11.5.1 HF5, 11.5.1 HF6, 11.5.1 HF7, 11.5.1 HF8, 11.5.1 HF9, 11.5.10, 11.5.2, 11.5.2 HF1, 11.5.3, 11.5.3 HF1, 11.6.0, 11.6.0 HF1, 11.6.0 HF2, 11.6.0 HF3, 11.6.0 HF4, 11.6.0 HF5, 11.6.0 HF6, 11.6.0 HF7, 11.6.0 HF8, 12.1.0, 12.1.0 HF1, 12.1.0 HF2, 12.1.1, 12.1.1 HF1, 12.1.1 HF2, 12.1.2, 12.1.2 HF1, 12.1.2 HF2, 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:
12.0.0, 11.6.1, 11.5.3 HF2

Opened: Nov 13, 2014
Severity: 3-Major
Related AskF5 Article:
K15922

Symptoms

Using the GUI to view Persistence Records statistics in GUI when there are a large number of records might crash the system. (Persistence Records are available for LTM and GTM by navigating to Statistics :: Module Statistics, clicking on Local Traffic, DNS Delivery, or DNS GSLB and then selecting 'Persistence Records' for Statistics Type.)

Impact

The system runs out of memory and fails over.

Conditions

This occurs when viewing statistics in the GUI for a large number of Persistence Records (approximately 100,000, but the number might depend on system configuration and capacity).

Workaround

Use TMSH to see Persistence Records and associated statistics. For LTM and GTM Delivery: tmsh show ltm persistence persist-records. For GTM GSLB: tmsh show gtm persist destination | level | target-name | key | max-results | target-type.

Fix Information

The fix for this issue allows management of the visibility of Persistence Records using three db variables: ui.statistics.modulestatistics.<localtraffic | dnsdelivery | dnsgslb>.persistencerecords. A db variable setting of "false" prevents the potential system crashes with a large number of persistence records. Beginning in version 12.0.0, the three db variables default to 'false', preventing use of the config utility to display the persistence records. For fixed versions of 11.5 and 11.6, the db variables default to 'true' to avoid a change in behavior within these versions. It is necessary to modify those variables to 'false' to prevent use of the config utility to display persistence records. To set the db variable: -- for LTM Persistence Records, run the command: modify sys db ui.statistics.modulestatistics.localtraffic.persistencerecords value true -- for DNS Delivery Persistence Records, run the command: modify sys db ui.statistics.modulestatistics.dnsdelivery.persistencerecords value true -- for DNSGSLB, run the command: modify sys db ui.statistics.modulestatistics.dnsgslb.persistencerecords value true Important: When you enable the db variable, the GUI-specific out-of-memory condition might occur if you have a large number of records. In that case, you should use tmsh to see Persistence Records and associated statistics. For LTM and GTM Delivery: tmsh show ltm persistence persist-records. For GTM GSLB: tmsh show gtm persist destination | level | target-name | key | max-results | target-type.

Behavior Change

Beginning in version 12.0.0, the db variable ui.statistics.modulestatistics.<localtraffic | dnsdelivery | dnsgslb>.persistencerecords defaults to 'false'. In previous versions, the default was 'true.' That means that Persistence Records are no longer visible by default in the GUI. This prevents potential system crashes with a large number of persistence records. You can manage visibility of Persistence Records using the db variable. Important: When you enable the db variable, the GUI-specific out-of-memory condition might occur if you have a large number of records. In that case, you should use TMSH to see Persistence Records and associated statistics. For example, for LTM, you can use the following command: tmsh show ltm persistence persist-records. To set the db variable: -- for LTM Persistence Records, run the command: modify sys db ui.statistics.modulestatistics.localtraffic.persistencerecords value true -- for DNS Delivery Persistence Records, run the command: modify sys db ui.statistics.modulestatistics.dnsdelivery.persistencerecords value true -- for DNSGSLB, run the command: modify sys db ui.statistics.modulestatistics.dnsgslb.persistencerecords value true