From: Stefan Eissing Date: Tue, 24 Sep 2024 11:06:03 +0000 (+0200) Subject: multi.c: warn/assert on stall only without timer X-Git-Tag: curl-8_11_0~348 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=98c7d4b1943c0a077ba4a2b10bc42302e92c0ff0;p=thirdparty%2Fcurl.git multi.c: warn/assert on stall only without timer Warn/assert about a possibly stalling transfer only when it has no timeout set. The assertion triggered in test 1540 on loaded CI sometimes. Closes #15028 --- diff --git a/lib/multi.c b/lib/multi.c index d4097d24e5..27b8ef3075 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -1125,10 +1125,14 @@ static void multi_getsock(struct Curl_easy *data, } if(expect_sockets && !ps->num && - !(data->req.keepon & (KEEP_RECV_PAUSE|KEEP_SEND_PAUSE)) && + !Curl_llist_count(&data->state.timeoutlist) && !Curl_cwriter_is_paused(data) && !Curl_creader_is_paused(data) && Curl_conn_is_ip_connected(data, FIRSTSOCKET)) { - infof(data, "WARNING: no socket in pollset, transfer may stall!"); + /* We expected sockets for POLL monitoring, but none are set. + * We are not waiting on any timer. + * None of the READ/WRITE directions are paused. + * We are connected to the server on IP level, at least. */ + infof(data, "WARNING: no socket in pollset or timer, transfer may stall!"); DEBUGASSERT(0); } }