Bug ID 555465: Extremely large number of SessionDB entries may cause HA flapping

Last Modified: Jan 20, 2023

Bug Tracker

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

Known Affected Versions:
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, 11.6.1, 11.6.1 HF1, 11.6.1 HF2, 11.6.2, 11.6.2 HF1, 11.6.3,,,,, 11.6.4, 11.6.5,,,, 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.4,, 12.1.5,,,, 12.1.6, 13.0.0, 13.0.0 HF1, 13.0.0 HF2, 13.0.0 HF3, 13.0.1, 13.1.0,,,,,,,,, 13.1.1,,,,, 13.1.3,,,,,,, 13.1.4,, 13.1.5,, 14.0.0,,,,,, 14.0.1,, 14.1.0,,,,,, 14.1.2,,,,,,,,, 14.1.3,, 14.1.4,,,,,,, 14.1.5,,,

Fixed In:

Opened: Oct 31, 2015
Severity: 3-Major


With enough SessionDB entries and a small enough high availability (HA) connections, the HA channel can become oversaturated.


Mirroring and other HA-related TMM usage might be disrupted.


-- Very large number of SessionDB entries. -- Small/inefficient HA channel.


If this condition is occurring, the HA channel is continually being reset and then overflowing again when the SessionDB table is synced. You can mitigate by temporarily disabling session mirroring: 1. Disable session mirroring: tmsh modify sys db statemirror.mirrorsessions value disable 2. Wait a minute for HA connections to stabilize. 3. Sync the config changes. 4. Reboot the standby device. 5. Re-enable session mirroring: tmsh modify sys db statemirror.mirrorsessions value enable

Fix Information

Added a new variable 'tmm.sessiondb.ha_mps_limit' to throttle the number of messages that SessionDB sends from the Active to Next Active after an HA state change. Note: Messages from CRUD operations are not throttled. The initial value is 0 for 'no throttling.' If set to a non-zero value N, SessionDB will ensure that, at most, N messages are sent per second. However, if the database is significantly larger than the configured limit, it will take more than 8 seconds to complete the sync. Example usage; to configure at most 1000 messages per second: tmsh modify sys db tmm.sessiondb.ha_mps_limit value 1000

Behavior Change