Bug ID 422549: Manual changes to wideip.conf can cause an invalid unit_id 2 in generic server definition

Last Modified: Nov 22, 2021

Bug Tracker

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

Known Affected Versions:
10.1.0, 10.2.0, 10.2.1, 10.2.2, 10.2.3, 10.2.4

Fixed In:
10.2.4 HF8

Opened: Jun 04, 2013
Severity: 3-Major
Related Article:
K14503

Symptoms

A unit_id of 2 is written to wideip.conf file in a generic server definition. Often the user will not notice this as a problem until the wideip.conf gets synced to other GTM systems in the sync group. When these systems try to load the config, gtmparse will fail to load with an error similar to the following: "Got bad result: 0107018f:3: Server my_server.f5.com has no IP addresses in unit 1". All systems then attempt to sync to the latest config but fail.

Impact

The wideip.conf fails to load on the original system (with gtmparse -l) if a unit_id 2 is present. In addition if the GTM with the bad wideip.conf is in a sync group, this config will be synced to the other systems in the sync group and fail to load there as well, causing what is known as a 'sync-storm', where boxes repeatedly try to sync to the latest config but cannot because it is invalid.

Conditions

Manual changes to the names of generic servers in the wideip.conf can cause this, for example if I had the following configuration: datacenter { name "DC1" server "test1" } datacenter { name "DC2" server "test2" } server { name "test1" type generic box { address 2.2.2.3 unit_id 1 } } server { name "test2" type generic box { address 9.9.9.9 unit_id 1 } } but then manually changed it to: datacenter { name "DC1" server "test2" } datacenter { name "DC2" server "test1" } server { name "test2" type generic box { address 2.2.2.3 unit_id 1 } } server { name "test1" type generic box { address 9.9.9.9 unit_id 1 } } and then ran gtmparse -l, the error would exist in memory. However, it doesn't show up as an issue until an unrelated change is made that writes the wideip.conf to file, such as adding a new datacenter definition in the GUI. Then unit_id 2 is written to file and can be synced to other GTMs in the sync group.

Workaround

Do not make manual changes to wideip.conf related to changing the names of servers. If you need to change a server name, first create a new server in tmsh or the GUI with the name and settings you want and then delete the old server. If you are already experiencing this issue, manually edit wideip.conf and replace any "unit_id 2" on generic servers with "unit_id 1" and run gtmparse -l. Then make a simple change in the GUI to write the currently running config to file, like for example create a dummy data center. This should then sync across to any other problem systems in the sync group. If for some reason a given GTM is still experiencing problems, manually edit the wideip.conf for the system as you did on the original system to replace any "unit_id 2" on generic servers with "unit_id 1" and then run gtmparse -l.

Fix Information

Resolved condition when some manual changes to wideip.conf can cause an invalid unit_id 2 in generic server definition

Behavior Change