Forum Discussion
LB_SELECTED and HTTP commands - warning
Hi,
It took me off guard when doing some test with TCP profile. Be advised that under some conditions HTTP type commands may generate TCL error like that:
TCL error: /Common/host_change_member - Illegal argument. Can't execute in the current context. (line 1) invoked from within "HTTP::host"
It was caused by such code:
when LB_SELECTED {
if { [LB::server addr] eq "10.128.30.110" } {
set host "host1.test.com"
} else {
set host "host2.test.com"
}
HTTP::header replace Host $host
}
Pretty safe code I guess, but...
If for some reason LB_SELECTED is triggered when no HTTP request is received, then mentioned error will be logged and of course connection will be reset.
I don't know other conditions causing this except:
In TCP profile enable Verified Accept
Above option seems to be rather dangerous for standard type VS (especially HTTP) as it breaks standard LB logic.
Instead of performing LB decision after successful client side 3WHS and first HTTP request received it performs LB after receiving SYN packet from client.
To avoid this problem it's better to perform HTTP related operations (that have to be based on some data collected during LB_SELECTED which is triggered after HTTP_REQUEST) in HTTP_REQUEST_RELEASE.
Piotr
- Samir_Jha_52506Noctilucent
Agree with your point. In above iRule LB_SELECTED works till selection but when you apply header replacement, it comes under HTTP related iRule method . That is the reason it will give error. thanks for posting your comments. I appreciate!!
- dragonflymrCirrostratus
Hi,
Glad you found it helpful. I did benefit so many times from posts on the forum so I think is fair to contribute if possible.
Piotr
- JGCumulonimbus
Thanks for sharing!
- Stanislas_Piro2Cumulonimbus
Hi Piotr,
There are 2 HTTP events in server side context :
- HTTP_REQUEST_SEND
- HTTP_REQUEST_RELEASE
you can use both but some http commands are not supported in HTTP_REQUEST_RELEASE
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