-
-
Notifications
You must be signed in to change notification settings - Fork 6.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
multi_wait() ignores Curl_poll() errors #8921
Labels
Comments
I don't think all poll/select errors are permanent though, are they? Should all underlying errors make curl_multi_poll()/wait() return error? |
Indeed, |
bagder
added a commit
that referenced
this issue
Jun 5, 2022
Reported-by: Harry Sintonen Fixes #8921
t-8ch
added a commit
to t-8ch/curl
that referenced
this issue
Jul 3, 2022
The same was done for select() in 5912da2 but poll() was missed. Downstream report: https://bugs.archlinux.org/task/75201 See curl#8921 and curl#8961
jay
pushed a commit
that referenced
this issue
Jul 4, 2022
The same was done for select() in 5912da2 but poll() was missed. Bug: https://bugs.archlinux.org/task/75201 Reported-by: Alexandre Bury (gyscos at archlinux) Ref: #8921 Ref: #8961 Ref: 5912da25#r77584294 Closes #9091
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
multi_wait()
ignores the potential error fromCurl_poll()
atcurl/lib/multi.c
Line 1315 in d67f41a
If
Curl_poll()
returns immediately the function will then returnCURLM_OK
right away without performing any waiting. This will leadcurl_multi_poll()
/curl_multi_wait()
to return immediately as well. Effectively this will lead to a busyloop as there is no status returned that would lead to terminating a loop of a typicalcurl_multi_perform()
+curl_multi_poll()
app, at least if the app doesn't bail out once the connections are completed (still_running == 0
doesn't lead to loop termination).I did this
Had condition where
poll()
(orselect()
if usingpoll()
emulation) return a permanent error without waiting.I expected the following
curl_multi_poll()
/curl_multi_wait()
to return an error ifCurl_poll()
fails.The question is what error to return though as none of the
CURLM_
errors seem to fit the bill.curl/libcurl version
7.83.1
operating system
This is a generic issue, but it is likely more likely to get triggered on specific platforms.
The text was updated successfully, but these errors were encountered: