HTTP2 LB::server pool selection
1 Topic[LB::server pool] evaluation changes between HTTP_REQUEST and HTTP_REQUEST_SEND
Consider a virtual server with two pools, one for virtual host A and one for virtual host B: https://A.example.com/ --> pool_A https://B.example.com/ --> pool_B We are using a Local Traffic Policy to perform pool selection. We have a client-side HTTP/2 profile attached to this virtual server. We are using TMOS 16.1.4. We do not have OneConnect enabled. When I browse to site A and check "[LB::server pool]" in HTTP_REQUEST, it evaluates to "pool_A". In HTTP_REQUEST_SEND, "[LB::server pool]" also evaluates to "pool_A". This is to be expected… However, when I then browse to site B and check "[LB::server pool]" in HTTP_REQUEST, I still get "pool_A"??? In the corresponding HTTP_REQUEST_SEND event, "[LB::server pool]" does correctly evaluates to "pool_B". (Also: in the corresponding LB_SELECTED event, "[LB::server pool]" correctly evaluates to "pool_B".) Somewhere between HTTP_REQUEST and LB_SELECTED/HTTP_REQUEST_SEND, the value of "[LB::server pool]" changes from "pool_A" to "pool_B". This is NOT what I would expect... If I remove the HTTP/2 client-side profile, this behaviour is not observed (and "[LB::server pool]" evaluates to the same pool in both the HTTP_REQUEST and LB_SELECTED/HTTP_REQUEST_SEND event). Has anyone observed this behaviour before? Is this a 'bug' perhaps?449Views0likes3Comments