Le 15/10/2019 à 13:19, Andrew Heberle a écrit :
On Tue, 15 Oct 2019 at 4:45 pm, Christopher Faulet <cfau...@haproxy.com
<mailto:cfau...@haproxy.com>> wrote:
Le 14/10/2019 à 05:25, Andrew Heberle a écrit :
> Hi All,
>
> We have a virtual desktop deployment under VMWare Horizon View that
> uses PCoIP Zero clients that stopped working after upgrading the load
> balancers in front of the internal Connection Servers (the virtual
> desktop broker) from 1.8.12 to 2.0.7.
>
Hi,
When you said your client stopped working, what does it mean exactly ? What
did
you observe to said the request failed ? Looking at the logs you provided,
it
seems to be ok from the HAProxy point of view.
The error is reported by the client with a horribly cryptic error that suggests
it’s not parsing/understanding the XML payload that is retrieved initially.
Just a question. It if happens for a specific client application, are you
sure
this client is able to handle HTTP headers in a case-insensitive manner ? In
HAProxy 2.0, HTTP headers names are sent in lower case when the HTX is
enabled.
It may be a problem for bogus applications.
To be honest that was my initial thought as other clients using the same service
but on different platforms are fine, so it’s a client/device specific
interaction with HTX mode...which I’d bet HAProxy is more likely to be
“compliant” than these particular Zero clients.
I am happy to gather some additional traces though, to rule out some strange
edge case however, but as you say, the initial requests seem fine so it’s
questionable if traces will show anything useful.
Do you think it’s worthwhile collection debug logs?
Well, if you can reproduce it easily, a network capture between haproxy and the
client is probably the best to know if the response is valid or not.
Otherwise, if you can test HAProxy 2.1, there is an option to adjust the case of
some header names before sending them to HTTP/1 clients or servers. If so, you
may use the directive "h1-case-adjust <from> <to>" in your global section and
then add "option h1-case-adjust-bogus-client" in your frontend section. For
instance:
global
h1-case-adjust content-length Content-Length
h1-case-adjust transfer-encoding Transfer-Encoding
h1-case-adjust connection Connection
...
frontend fe_viewcs
...
option h1-case-adjust-bogus-client
You can also do the request by hand with curl to inspect the response with and
without the HTX. Maybe you will find some useful info.
--
Christopher Faulet