You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It looks like that setting the response timeout in the openssl manager does not work as expected.
We tried to increase the default timeout to 60 seconds, and we observed that when a server provides the response header, but not the data, then the client gets stuck waiting forever. We reproduced the issue using netcat that way:
Run nc -l -p 80 in another terminal
Call httpLbs manager =<< parseUrlThrow "http://localhost" in ghci
Submit fake response in nc like this:
[tristanc@fedora ~]$ nc -l -p 80
GET / HTTP/1.1
Host: localhost
Accept-Encoding: gzip
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=UTF-8
Referrer-Policy: no-referrer
Content-Length: 1561
Date: Fri, 07 Feb 2025 14:12:02 GMT
When using the default openssl manager, then the httpRequest throws a timeout error after 30 seconds, as expected. But when using {managerResponseTimeout = responseTimeoutMicro 60000000}, then the httpRequest call gets stuck. This issue does not happen with the regular http-client manager.
Thankfully, using System.Timeout.timeout work around the issue. Here is our downstream bug with the details: change-metrics/monocle#1154
Would you know what's going on and where to look for finding this bug in http-client? I couldn't find any reference for "timeout" in http-client-openssl or HsOpenSSL.
The text was updated successfully, but these errors were encountered:
Hello,
It looks like that setting the response timeout in the openssl manager does not work as expected.
We tried to increase the default timeout to 60 seconds, and we observed that when a server provides the response header, but not the data, then the client gets stuck waiting forever. We reproduced the issue using netcat that way:
nc -l -p 80
in another terminalhttpLbs manager =<< parseUrlThrow "http://localhost"
in ghciWhen using the default openssl manager, then the httpRequest throws a timeout error after 30 seconds, as expected. But when using
{managerResponseTimeout = responseTimeoutMicro 60000000}
, then the httpRequest call gets stuck. This issue does not happen with the regular http-client manager.Thankfully, using System.Timeout.timeout work around the issue. Here is our downstream bug with the details: change-metrics/monocle#1154
Would you know what's going on and where to look for finding this bug in http-client? I couldn't find any reference for "timeout" in http-client-openssl or HsOpenSSL.
The text was updated successfully, but these errors were encountered: