2016-03-30 21:22 GMT+02:00 Lukas Tribus <[email protected]>:
> Hi Janusz,
>
>> So there is no difference. Session ID based resumption works ok,
>> ticket based resumption is kinda broken in both versions. Are tickets
>> supposed to work properly with nbproc>1?
>
> I just tested it here, ticket based resumption works fine for me with
> nbproxy>1 in both 1.5.16 and current 1.7 head.
>
> Since you are also seeing it in 1.5.15, that doesn't seem to be the
> cause of this problem, but its is something you will have to fix
> because the CPU impact of broken resumption is plenty.
>
>
> You can disable tls ticket for now, since you probably want to
> troubleshoot the first issue, as per Nenad's suggestion.

About the CPU problem. Reverting 7610073a indeed fixes my problem. If
anyone has any idea what is the problem with this commit I am willing
to test patches:)
Some more details about my setup. All servers have moderate traffic
(200-500mbit/s in peak). I do both plain HTTP and HTTPS + some small
traffic in TCP mode (also both with and without TLS). I also make an
extensive use of unix sockets for HTTP/2 support (decrypted HTTP/2
traffic is routed via unix socket to nghttpx and then arrives back on
another socket as HTTP/1.1).

I am well aware that broken resumption is a bad thing. However, I've
looked though haproxy 1.5 code and I quite don't understand how
tickets are supposed to work with nbproc>1. The only code related to
TLS tickets in 1.5 is the code to disable them. Otherwise OpenSSL
defaults are used, which means OpenSSL will generate a random key to
encrypt/decrypt tickets. Unless I've missed something it means that
each haproxy process will have different keys and tickets will not
work across different processes.
Are you sure that during your tests traffic hit at least two different
processes? If a single one accepted all the connections then
resumption with tickets will work, it will break as soon as another
process accepts resumption attempt.

-- 
Janusz Dziemidowicz

Reply via email to