HAProxy 1.7.2 breaks `timeout tunnel`


#1

We have noticed our idle websocket connections closing too early in 1.7.2.

In 1.6.11, this works fine. We use a configuration very similar to the second “advanced” configuration in http://blog.haproxy.com/2012/11/07/websockets-load-balancing-with-haproxy/.

Idle WebSocket connections are always terminated after the shorter of “timeout client” or “timeout server”. If a shorter “timeout server” or “timeout client” is set in the websocket backend, it is respected, but a longer one is not. Explicitly setting “timeout tunnel” or “option http-tunnel” in the websocket backend has no effect.

The same configuration in 1.6.11 has no such issue.


#2

I’m unable to reproduce, can you double-check that this is 1.7.2 (not 1.7.0, which did contain bugs in that area)?

Please share the output of haproxy -vv, and the exact log output you are seeing when this timeout strikes.

Thanks


#3

I have the exact same problem.
Trying to fine tune the timeout settings for websocket.
Using HAProxy 1.7.3.

It closes after the delay configured on “timeout client”.
The manual explicitly mentions that websocket are switching to tunnel mode once established and that only the “timeout tunnel” should apply then, which is NOT the case.

Thanks.


#4

Tested again with the latest 1.7.5.
I takes the lowest value from either “timeout client” or “timeout server” instead of the value of “timeout tunnel”.


#5

Ok, please share the output of haproxy -vv, and the exact log output you are seeing when this timeout strikes.