Hi Grant,

On 02/04/2017 12:55 AM, Grant Zhang wrote:
> This patch set adds the basic support for OpenSSL crypto engine and 
> async mode.
> 
> Changes since V2:
> - support keyword "algo"
> - ensure SSL engines are initialized before loading certs.
> - limit one async fd per SSL connection
> - better integrate with event cache
> 
> Changes since V1:
> - add multiple engine support
> - allow default algorithms to be specified for an engine
> - remove the support for engine identifier "all" since (a) it is not possible
>   to specify default algorithms for all engine and (b) "all" makes it hard to
>   figure out what engine does what crypto algorithms.
> - address Willy's other comments.
> 

Using an engine, if there is an error parsing the configuration, the haproxy 
stuck on a futex and do not exit:

[root@centos ~]# cat haproxy/h.conf 
global
        ssl-engine qat
#       ssl-async
        tune.ssl.default-dh-param 2048

listen ss
        mode tcp
        bind 0.0.0.0:8080
        server ssl 127.0.0.1:8443 ssl foobar  verify none

listen gg
        mode http
        bind 0.0.0.0:8443 ssl crt /root/2048.pem
        redirect location /

[root@centos ~]# strace ./haproxy/haproxy -f ./haproxy/h.conf
...
write(2, "[ALERT] 073/120342 (2474) : ", 28[ALERT] 073/120342 (2474) : ) = 28
write(2, "Error(s) found in configuration "..., 56Error(s) found in 
configuration file : ./haproxy/h.conf
) = 56
write(2, "[WARNING] 073/120342 (2474) : ", 30[WARNING] 073/120342 (2474) : ) = 
30
write(2, "config : missing timeouts for pr"..., 273config : missing timeouts 
for proxy 'ss'.
   | While not properly invalid, you will certainly encounter various problems
   | with such a configuration. To fix this, please ensure that all following
   | timeouts are set to a non-zero value: 'client', 'connect', 'server'.
) = 273
write(2, "[ALERT] 073/120342 (2474) : ", 28[ALERT] 073/120342 (2474) : ) = 28
write(2, "Proxy 'ss', server 'ssl' [./hapr"..., 356Proxy 'ss', server 'ssl' 
[./haproxy/h.conf:9] verify is enabled by default but no CA file specified. If 
you're running on a LAN where you're certain to trust the server's certificate, 
please set an explicit 'verify none' statement on the 'server' line, or use 
'ssl-server-verify none' in the global section to disable server-side 
verifications by default.
) = 356
write(2, "[WARNING] 073/120342 (2474) : ", 30[WARNING] 073/120342 (2474) : ) = 
30
write(2, "config : missing timeouts for pr"..., 273config : missing timeouts 
for proxy 'gg'.
   | While not properly invalid, you will certainly encounter various problems
   | with such a configuration. To fix this, please ensure that all following
   | timeouts are set to a non-zero value: 'client', 'connect', 'server'.
) = 273
mmap(NULL, 4324792, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7f14122d0000
write(2, "[ALERT] 073/120342 (2474) : ", 28[ALERT] 073/120342 (2474) : ) = 28
write(2, "Fatal errors found in configurat"..., 37Fatal errors found in 
configuration.
) = 37
futex(0x1a204a0, FUTEX_WAIT_PRIVATE, 2, NULL

Reply via email to