HTTP/2: Socket I/O timeout not reported to app, take 2
The fix provided in !264 (merged) is unfortunately not complete. If a timeout occurs after the first chunk of data is received you still end up in the case described in #256 (closed).
The issue seems to be that the call to soup_http2_message_data_check_status() (at https://gitlab.gnome.org/GNOME/libsoup/-/blob/master/libsoup/http2/soup-client-message-io-http2.c?ref_type=heads#L478) after first chunk is received will clean the pending_io_messages list.
At a later time when the timeout occurs, soup_http2_message_data_check_status() is not called (from https://gitlab.gnome.org/GNOME/libsoup/-/blob/master/libsoup/http2/soup-client-message-io-http2.c?ref_type=heads#L497).
Attached is a small python HTTP/2 server that can be used to reproduce the issue http2-server.py