Mailing List Archive

[Bug 65971] New: ProxyWebSocketFallBackToProxyHTTP automatically causes disconnections.
https://bz.apache.org/bugzilla/show_bug.cgi?id=65971

Bug ID: 65971
Summary: ProxyWebSocketFallBackToProxyHTTP automatically causes
disconnections.
Product: Apache httpd-2
Version: 2.4.47
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: All
Assignee: bugs@httpd.apache.org
Reporter: dstewart@vai.net
Target Milestone: ---

I have a third party websocket application that is hosted on Apache Tomcat
9.0.52 and we use httpd to load balance multiple instances of it. It works
quite well under release 2.4.46, but when we upgrade to 2.4.47, the application
breaks, and we cannot sustain a websocket for more than 60 seconds. Setting the
ProxyWebsocketFallbackToProxyHttp directive to Off makes everything work as
expected. We also tried using the 2.4.48 and 2.4.51 with no differences in
behavior.

I would like to understand how to troubleshoot this issue, so I can find out if
the third party application is not spec compliant, or if there might be an
issue in httpd that is causing this. I'm concerned that eventually the
ProxyWebsocketFallbackToProxyHttp option will be deprecated and removed, so I
want to start discussions with the vendor now.

Would I be better off posting this to the developer list, or opening a Bugzilla
issue, or is this an appropriate venue for the question?

My balancer and proxy configurations are pasted below:

Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/"
env=BALANCER_ROUTE_CHANGED <Proxy balancer://webclient>
BalancerMember "http://localhost:8081/webclient" route=node1
BalancerMember "http://localhost:8082/webclient" route=node1

ProxySet lbmethod=byrequests stickysession=ROUTEID </Proxy> <Proxy
balancer://s2kdocs>
BalancerMember "http://localhost:8081/s2kdocs" route=node1
BalancerMember "http://localhost:8082/s2kdocs" route=node1

ProxySet lbmethod=byrequests stickysession=ROUTEID </Proxy> <Proxy
balancer://downloads>
BalancerMember "http://localhost:8081/downloads" route=node1
BalancerMember "http://localhost:8082/downloads" route=node1

ProxySet lbmethod=byrequests stickysession=ROUTEID </Proxy> <Proxy
balancer://S2KService>
BalancerMember "http://localhost:8081/S2KService" route=node1
BalancerMember "http://localhost:8082/S2KService" route=node1

ProxySet lbmethod=byrequests stickysession=ROUTEID </Proxy> <Proxy
balancer://GetOutputFileR50>
BalancerMember "http://localhost:8081/GetOutputFileR50" route=node1
BalancerMember "http://localhost:8082/GetOutputFileR50" route=node1

ProxySet lbmethod=byrequests stickysession=ROUTEID </Proxy> <Proxy
balancer://GetOutputFileT50>
BalancerMember "http://localhost:8081/GetOutputFileT50" route=node1
BalancerMember "http://localhost:8082/GetOutputFileT50" route=node1

ProxySet lbmethod=byrequests stickysession=ROUTEID </Proxy> <Proxy
balancer://webclient_ws>
BalancerMember "ws://localhost:9091/webclient_ws" route=node1
BalancerMember "ws://localhost:9092/webclient_ws" route=node1

ProxySet lbmethod=byrequests stickysession=ROUTEID </Proxy>

# web sockets
ProxyPass /webclient_ws balancer://webclient_ws/

# http
ProxyPass /s2kdocs balancer://s2kdocs/
ProxyPassReverse /s2kdocs balancer://s2kdocs/

ProxyPass /downloads balancer://downloads/ ProxyPassReverse /downloads
balancer://downloads/

ProxyPass /S2KService balancer://S2KService/ ProxyPassReverse /S2KService
balancer://S2KService/

ProxyPass /GetOutputFileR50 balancer://GetOutputFileR50/ ProxyPassReverse
/GetOutputFileR50 balancer://GetOutputFileR50/

ProxyPass /GetOutputFileT50 balancer://GetOutputFileT50/ ProxyPassReverse
/GetOutputFileT50 balancer://GetOutputFileT50/

ProxyPass /webclient balancer://webclient/ ProxyPassReverse /webclient
balancer://webclient/


The application is rather large and requires a lot of infrastructure to be
workable, since it is in part an IBM 5250 terminal emulator, and most people
don't have an AS/400 lying around to test with. I am happy to provide traces,
and build with patches for testing purposes.

--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org