-
-
Notifications
You must be signed in to change notification settings - Fork 7.1k
Closed
Closed
Copy link
Labels
Description
I did this
Since curl 8.13.0, CURLMOPT_SOCKETFUNCTION may receive a CURL_POLL_REMOVE callback for a socket that was not previously registered via CURL_POLL_IN or CURL_POLL_OUT.
This appears to be caused by the internal multi->admin easy handle, introduced for maintenance tasks. The socket used by this handle is not exposed to application code but still triggers callback events.
If this behavior is expected, it would help to document it clearly or provide a way to identify such callbacks. Thanks in advance!
Example backtrace when CURL_POLL_REMOVE is received for an unexpected socket:
(gdb) bt
#0 socket_callback ()
#1 mev_forget_socket ()
#2 socket_close ()
#3 cf_socket_close ()
#4 cf_he_close ()
#5 ssl_cf_close ()
#6 cf_setup_close ()
#7 cf_hc_close ()
#8 Curl_conn_close ()
#9 Curl_cshutdn_terminate ()
#10 cshutdn_perform ()
#11 multi_socket ()
I expected the following
No response
curl/libcurl version
curl 8.13.0
operating system
FreeBSD
Reactions are currently unavailable