Forum Discussion

chad_14652's avatar
chad_14652
Icon for Nimbostratus rankNimbostratus
Oct 27, 2014

Can an exhauted memory pool/buffer cause a class to not be found?

A customer has an irule that picks a pool node based on certain criteria. The dynamic pool is set during a

when RULE_INIT { set static::pool_data_group "/Prod/S_pool_dg" }

Then, when HTTP_REQUEST {

...// if checks for cookies, pools, info, etc. //

set id [class startsearch $static::pool_data_group]
//other stuff
}

This was running fine for months on both a production and development LTM at 11.5.0 HF3, then we upgraded the production to 11.6.0 and development to 11.5.1 hf5. After a few days, the production, and later development, starting logging the failure:

err tmm[9129]: TCL error: /S_select_pool_irule - Could not find class /S_pool_dg (line 22) invoked from within "class startsearch $static::pool_data_group"

What's odd is that 40-50% of the time, the unit is logging successful rule hits, the remainder of the time it logs the above error.

I rebooted the production unit back into the 11.5.1 hf5 partition and the errors stopped (since we had not previously tested the production unit in 11.6.0 (don't ask about the logic). The development is still logging the errors, as we would like to determine a fix other than "reboot". Any ideas?

Thanks! Chad

4 Replies

  • I should add that the script has to pass an "if {[info exists static::pool_data_group]} to get to the set id string..
  • shaggy's avatar
    shaggy
    Icon for Nimbostratus rankNimbostratus

    For kicks, can you test accessing the data-group by name in your startsearch statement instead of referencing the static variable? That could help narrow it down to an issue with static variables vs. an issue with the data-group itself. Also, is the virtual server cmp-enabled - tmsh show ltm virtual (vs-name)?

     

  • Shaggy,

     

    Yes, the virtual server is CMP enabled. I changed to the direct pool name, and the error still occasionally occurs. Also, the error doesn't always happen on the first line of occurrence. The variable occurs multiple times throughout the script, and the TCL error reports unable to find it at varying places (ex. line 1, line 19, line 22) during execution. Perhaps line 1 once, the next time line 19.. which is why it seems to be an 'external' issue, not necessarily a code problem.

     

    I should note that this is on a Viprion platform, within a VCMP guest and inside of a partition.

     

    Thanks,

     

    Chad

     

  • Hi Chad,

     

    Can you open a support case and upload a qkview to iHealth?

     

    Is it an external data group?

     

    How many entries are in the data group?

     

    Is the box under heavy memory load or a huge number of requests per second when the failure occurs?

     

    Thanks, Aaron