Open
Description
I've ran into an issue where sending requests with request.version = 2
leads to an ETIMEDOUT even though the server receives the request properly. After inspecting the state of the coroutine which was running my request I can see that execution is held up at the poll
in the get_headers
function.
Data pulled from an active request (request:go
called with a timeout of 1000):
stack traceback:
[C]: in function 'coroutine.yield'
/usr/local/share/lua/5.4/cqueues.lua:45: in function '_cqueues.poll'
/usr/local/share/lua/5.4/http/h2_stream.lua:1222: in method 'get_headers'
/usr/local/share/lua/5.4/http/request.lua:598: in method 'go'
....
locals at the get_headers stack frame:
self http.h2_stream{connection=http.h2_connection{type="client"};id=1;state="half closed (local)";parent=0;dependees={}}
timeout 998.9164443
deadline 7024.448864047
(temporary) function: 0x5653d5ba8e20
(temporary) CQS Condition: 0x5653d5aaf218
(temporary) http.h2_connection{type="client"}
(temporary) 998.9164443
Line 1222 is the following:
local which = cqueues.poll(self.recv_headers_cond, self.connection, timeout)
Metadata
Metadata
Assignees
Labels
No labels