Forum Discussion
Angel_Martinez_
Nimbostratus
Nov 19, 2010LB::server pool
Hi
I've this iRule running in two different boxes:
rule iRule_Sorry_Redirect {
when LB_FAILED {
if { [active_members [LB::server pool]] < 1 } {
HTTP::fallback "http://sorry-[HTTP::header host]"
}
}
}
On 6800 9.4.8 HF4 box is set up for 27 Virtuals without any problem at the /var/log/ltm. And the statistics says:
RULE iRule_Sorry_Redirect
+-> LB_FAILED 5042 total 0 fail 0 abort
But on the 6900 also 9.4.8 HF4 is only set up for 1 Virtual with this continous message at the log file:
Nov 19 08:47:18 tmm1 tmm1[2141]: 01220001:3: TCL error: iRule_Sorry_Redirect - no such pool Failed Tcl_pool_GetFromObj: pool (line 1) invoked from within "active_members [LB::server pool]"
RULE iRule_Sorry_Redirect
+-> LB_FAILED 269 total 269 fail 0 abort
It could be related with the CMP feature? On BIG-IP 6800 boxes CMP is not supported meanwhile on BigIP 6900 is working with this feature by default. I can read this from the 9.4.8 Release Notes:
Global variable in iRule and CMP (CR93820)
In this release, if an iRule containing a global variable is removed from a virtual server, the virtual server is eligible for full Clustered Multi-Processing (CMP), rather than remaining relegated to a single Traffic Management Microkernel (TMM).
So am I using a Global variable at my iRule ¿? any idea about my problem ¿?
Thanks in advanced.
- Chris_Miller
Altostratus
I'd start off by logging.rule iRule_Sorry_Redirect { when LB_FAILED { log local0. "Pool was [LB::server pool]" if { [active_members [LB::server pool]] < 1 } { HTTP::fallback "http://sorry-[HTTP::header host]" } } } That'll log to the LTM logs. You aren't using any variables in your rule.
- Chris_Miller
Altostratus
As I think about this more, I don't understand how LB::server pool can be used from LB_FAILED even though the wiki page says it can be. Let's see the value you log I guess... - hoolio
Cirrostratus
Yeah, I'm not sure whether LB::server pool would return the VS default pool in LB_FAILED. If it doesn't, you could save the name of the pool in CLIENT_ACCEPTED and then reference that variable in LB_FAILED. Similarly, I don't know if HTTP::host would be available then either.when CLIENT_ACCEPTED { set default_pool [LB::server pool] } when HTTP_REQUEST { if {[HTTP::host] eq ""}{ set host [IP::local_addr] } else { set host [HTTP::host] } } when LB_FAILED { if { [active_members $default_pool] < 1 } { HTTP::fallback "http://sorry-$host" } }
- Angel_Martinez_
Nimbostratus
Thank you people!!! - Angel_Martinez_
Nimbostratus
Hi - Angel_Martinez_
Nimbostratus
Hi ! - hoolio
Cirrostratus
Hi Angel, - Chris_Miller
Altostratus
Aaron -should CLIENT_ACCEPTED be added to the events from which LB::server pool can be called? The wiki page doesn't list it. - hoolio
Cirrostratus
It's there third to last in the list.
Recent Discussions
Related Content
DevCentral Quicklinks
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
Discover DevCentral Connects