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

Reply via email to