BIG-IP : iRule class match fails to find data-group

F5 BIG-IP 11.4.1 Build 635.0 Hotfix HF2 LTM VE ESXi

Starting last night, for every request processed by my irule-01 I see this error :

Mon Sep 8 23:15:57 PDT 2014 err test-f5-01  tmm1[8721]  01220001    TCL error: /Common/irule-01  - Could not find class list_bots (line 2) invoked from within "class match -value [string tolower [HTTP::header User-Agent]] contains list_bots"

Here’s the relevant line 2 :

set bot_generated [class match -value [string tolower [HTTP::header User-Agent]] contains list_bots]

But the

list_bots

external data-group ( type string ) is present and contains properly formatted name-value pairs and in fact it always has been present and has always processed correctly in the past.

Here is a sample line from list_bots :

"bingbot" := "bingbot",

I deleted list_bots external data-group and re-created it but still same issue.

What could be going on ? What could have changed ? What can I do ?

Its a long shot but can you try this, just in case a User Agent string starts with a

-

;

set bot_generated [class match -value -- [string tolower [HTTP::header User-Agent]] contains list_bots]

Also, can you post an excerpt of the DG and let us know what TMOS version please?

If this is a list of Bots, the datagroup is not made up of name/value pairs. Then the “-value” is not appropriate.

try this:

set bot_generated [class match -- [string tolower [HTTP::header User-Agent]] equals list_bots]

Thanks for the response John. Actually list_bots is made up of name/value pairs, so the class match syntax is correct.. Please note that this always worked in the past - just recently BIG-IP began reporting that it could not find data-group list_bots

Interesting, but if it is a list, you should not need to specify a value.

Is the datagroup external or internal, if external, can you re-Import it into the cache under iRules/data group List.

HTH

I chose to use external data-group because it is less fragile ( via command-line I can work directly with the data-group file ). I’ve already tried deleting & re-creating to no avail.