Forum Discussion
irule TCL error - no such pool
I have an apology irule attached to my global HTTPS virtual server that is having issues. I opened case and after troubleshooting an issue where Safari browsers wouldn't load a site, the tech was finally able to see an error that occurs only when using the Safari browser: TCL error: /Common/apology_irule - no such pool: (line 6) invoked from within "active_members [LB::server pool]"
"Possible reason why it seems to fail is that on the initial incoming HTTP_REQUEST event, there has been no LB decision process made yet, hence the pool has not been determined yet."
When I removed this irule from the VS, the issues with Safari cleared up.
The full irule is below, but the tech zero'd in on the following.
Looking at shortened version of the apology_irule:
ltm rule /Common/apology_irule {
when LB_FAILED {
HTTP::respond 200 content {
<<< some HTML content >>>
}
log local2. "Apology rule triggered for [IP::client_addr]
X-Forwarded-For: [HTTP::header
values
X-Forwarded-For]"
}
when HTTP_REQUEST {
if {[active_members [LB::server pool]] < 1 } { <------- error on the log is coming from this line.
HTTP::respond 200 content {
<<< some HTML content >>>
}
log local2. "Apology rule triggered for [IP::client_addr]
X-Forwarded-For: [HTTP::header values X-Forwarded-For]"
}
}
}
Possible reason why it seems to fail is that on the initial incoming HTTP_REQUEST event, there has been no LB decision process made yet, hence the pool has not been determined yet.
I'm new to F5 and have no irule experience so I'm looking for assitance on how to fix this apology irule so it won't cause issues and I can put it back in to service an apology page if the VS is down.
This iRule will present an apology page instead of a connection reset when a pool goes down
when LB_FAILED {
HTTP::respond 200 content {
Resource temporarily unavailable
apology, blah, blah
}
log local2. "Apology rule triggered for [IP::client_addr] X-Forwarded-For: [HTTP::header values X-Forwarded-For]"
}
when HTTP_REQUEST {
if {[active_members [LB::server pool]] < 1 } {
HTTP::respond 200 content {
Resource temporarily unavailable
apology, blah, blah
}
log local2. "Apology rule triggered for [IP::client_addr] X-Forwarded-For: [HTTP::header values X-Forwarded-For]"
}
}
- JRahm
Admin
Try moving that to HTTP_REQUEST_SEND or HTTP_REQUEST_RELEASE, those events are serverside and should have a pool member assigned
- matt_k_58868
Nimbostratus
Hi. Thank you for the suggestion. When I change HTTP_REQUEST to HTTP_REQUEST_SEND or HTTP_REQUEST_RELEASE the entire site breaks for all browsers and all versions.
- Jad_Tabbara__J1
Cirrostratus
Hello Matt,
On the VS where you applied this irule do you have a pool on the ressources page for the "Default Pool" option ?
If not, how do you select the pool, in another irule ?
Thanks
- The_Bhattman
Nimbostratus
Did you look into LB::reselect?
-=Bhattman=-
Recent Discussions
Related Content
* 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