Bug ID 1181471
Summary libcurl hangs in a __poll below curl_easy_cleanup
Classification openSUSE
Product openSUSE Tumbleweed
Version Current
Hardware aarch64
OS Other
Status NEW
Severity Major
Priority P5 - None
Component Network
Assignee screening-team-bugs@suse.de
Reporter ma@suse.com
QA Contact qa-bugs@suse.de
Found By ---
Blocker ---

Hi Predro,

a puzzle for the curl maintainers. I'm lost how to further investigate it.
Maybe you've got an idea:
[https://github.com/openSUSE/zypper/issues/364]

- 'Proot' is used to chroot into an openSUSE TW system. This might be the
reason, at least ZYPP never received a similar issue report, neither on aarch64
nor on any other architecture.

From within the system, libzypp (via libcurl) is able to connect to e.g.
download. opensuse.org (the log shows a  successful head request). But when
closing the connection libcurl reproducible hangs below a call to
curl_easy_cleanup (for 20+ minutes before killing zypper).

A stacktrace created by libzypp shows curl_easy_cleanup staying in a call to
poll:
> [bt]: (0) /lib64/libc.so.6 : __poll+0xec [0x7f8a71618c]
> [bt]: (1) /usr/lib64/libcurl.so.4 : +0x5e088 [0x7f8a54f088]
> [bt]: (2) /usr/lib64/libcurl.so.4 : +0x6024c [0x7f8a55124c]
> [bt]: (3) /usr/lib64/libcurl.so.4 : +0x47240 [0x7f8a538240]
> [bt]: (4) /usr/lib64/libcurl.so.4 : +0x4740c [0x7f8a53840c]
> [bt]: (5) /usr/lib64/libcurl.so.4 : +0x1a3c4 [0x7f8a50b3c4]
> [bt]: (6) /usr/lib64/libcurl.so.4 : +0x6e7d0 [0x7f8a55f7d0]
> [bt]: (7) /usr/lib64/libcurl.so.4 : curl_easy_cleanup+0x40 [0x7f8a506db0]
> [bt]: (8) /usr/lib64/libzypp.so.1722 : zypp::media::MediaCurl::disconnectFrom()+0x2c [0x7f8ada0bdc]
> [bt]: (9) /usr/lib64/libzypp.so.1722 : zypp::media::MediaHandler::disconnect()+0x34 [0x7f8ad8bab4]

The same is seen in the strace log:
> https://github.com/openSUSE/zypper/files/5856500/zypper.strace.log.zip 
> (search for 'Releasing media http<http://download.opensuse.org'

After writing the log line libzypp calls curl_easy_cleanup. Then you see just
an endless loop of ppoll calls.

Any idea/hint how to circumvent this is welcome.


You are receiving this mail because: