Fabian Vogt changed bug 1230912
What Removed Added
Status NEW IN_PROGRESS

Comment # 4 on bug 1230912 from Fabian Vogt
I managed to set up some debugging environment and had a debugging session with
bzeller.

In the working case, curl_multi_socket_action adds a socket and sets a timeout,
then returns to libzypp's event loop.

In the broken case, curl_multi_socket_action adds a socket to the wait list and
sets a timeout, but also removes the socket and clears the timeout before
returning to the event loop:

2024-09-27 13:12:43 <1> localhost(844) [zypp-curl++]
curlhelper.cc(log_curl):120 0x556b6be79148 * !!! WARNING !!!
2024-09-27 13:12:43 <1> localhost(844) [zypp-curl++]
curlhelper.cc(log_curl):120 0x556b6be79148 * This is a debug build of libcurl,
do not use in production.
2024-09-27 13:12:43 <1> localhost(844) [zypp::media++]
MediaCurl.cc(executeCurl):1442 Calling _curlHelper.handleTimout
2024-09-27 13:12:43 <1> localhost(844) [zypp-curl++]
curlhelper.cc(log_curl):120 0x556b6be79148 * STATE: INIT => SETUP handle
0x556b6be79148; line 1884
2024-09-27 13:12:43 <1> localhost(844) [zypp-curl++]
curlhelper.cc(log_curl):120 0x556b6be79148 * STATE: SETUP => CONNECT handle
0x556b6be79148; line 1900
2024-09-27 13:12:43 <1> localhost(844) [zypp-curl++]
curlhelper.cc(log_curl):120 0x556b6be79148 * Added connection 0. The cache now
contains 1 members
2024-09-27 13:12:43 <1> localhost(844) [zypp-curl++]
curlhelper.cc(log_curl):120 0x556b6be79148 * STATE: CONNECT => RESOLVING handle
0x556b6be79148; line 1925
2024-09-27 13:12:43 <1> localhost(844) [zypp-curl++]
curlhelper.cc(socketcb):431 CurlPollHelper::socketcb easy 0x556b6be79148 s: 16
what: 1 userp: 0x7ffc1b6c5dc0
2024-09-27 13:12:43 <1> localhost(844) [zypp-curl++]
curlhelper.cc(log_curl):120 0x556b6be79148 * Could not resolve host:
download.opensuse.org
2024-09-27 13:12:43 <1> localhost(844) [zypp-curl++]
curlhelper.cc(log_curl):120 0x556b6be79148 * Curl_multi_closed, fd=16 multi is
0x556b6be7ceb8
2024-09-27 13:12:43 <1> localhost(844) [zypp-curl++]
curlhelper.cc(log_curl):120 0x556b6be79148 * Curl_multi_closed, fd=16 entry is
0x556b6be7bbd8
2024-09-27 13:12:43 <1> localhost(844) [zypp-curl++]
curlhelper.cc(socketcb):431 CurlPollHelper::socketcb easy 0x556b6be79148 s: 16
what: 4 userp: 0x7ffc1b6c5dc0

Without sockets to poll and an infinite timeout (-1), libzypp waits forever.

The curl behaviour happens because some earlier curl call added a negative
cache entry for "download.opensuse.org", so it could reach the RESOLVING stage
and fail before performing any wait?


You are receiving this mail because: