Re: reproducible, but limited, SEGFAULTS after upgrade curl/libcurl 7.66 -> 7.67. curl issue, or not?
Date: Wed, 13 Nov 2019 18:03:55 -0800
On 11/13/19 4:03 PM, PGNet Dev wrote:
> On 11/13/19 2:39 PM, Daniel Stenberg wrote:
>> If this crash is at least semi-reliably reproduced in your environment
>
> 100%, on all machines tested so far.
>
> Unfortunately, I've not yet found any OTHER reports from others'
>
>> then maybe you can try building a libcurl from source with the debug symbols still present and see if you can get some specifics out of this crash?
>> With a debug version, possibly you could even catch the crash in a debugger and get a full stack trace to show us!
This catches the zypper+libcurl crash ...
Installed debug symbols for curl*, zypper*, etc.
rpm -qa | egrep -i "^curl|^libcurl|^zypp|^libzypp"
curl-7.67.0-lp151.272.1.x86_64
+ curl-debuginfo-7.67.0-lp151.272.1.x86_64
libcurl4-7.67.0-lp151.272.1.x86_64
+ libcurl4-debuginfo-7.67.0-lp151.272.1.x86_64
libcurl-devel-7.67.0-lp151.272.1.x86_64
libzypp-17.15.0-lp151.2.3.2.x86_64
+ libzypp-debuginfo-17.15.0-lp151.2.3.2.x86_64
libzypp-devel-17.15.0-lp151.2.3.2.x86_64
zypper-1.14.30-lp151.2.3.1.x86_64
+ zypper-debuginfo-1.14.30-lp151.2.3.1.x86_64
zypper-log-1.14.30-lp151.2.3.1.noarch
Checking
curl -V
curl 7.67.0 (x86_64-suse-linux-gnu) libcurl/7.67.0 OpenSSL/1.1.0i-fips zlib/1.2.11 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.2/openssl/zlib nghttp2/1.39.2
Release-Date: 2019-11-06
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS GSS-API HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz Metalink NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets
ldd `which zypper` | grep -i curl
libcurl.so.4 => /usr/lib64/libcurl.so.4 (0x00007f7ce9bd4000)
set env ZYPP_MEDIA_CURL_DEBUG 2
zypper clean --all OS15-oss
zypper ref OS15-oss
Retrieving repository 'OS15-oss' metadata -----------------[\]Segmentation fault (core dumped)
coredumpctl list
TIME PID UID GID SIG COREFILE EXE
Wed 2019-11-13 17:31:24 PST 4842 0 0 11 present /usr/bin/zypper
cd /var/lib/systemd/coredump/
ls
core.zypper.0.3d6e4a4406ce4819a0eefd05a1853b9e.4842.1573695083000000.lz4
unlz4 core.zypper.0.3d6e4a4406ce4819a0eefd05a1853b9e.4842.1573695083000000.lz4
echo "set pagination off" > ~/.gdbinit
gdb zypper /var/lib/systemd/coredump/core.zypper.0.3d6e4a4406ce4819a0eefd05a1853b9e.4842.1573695083000000
GNU gdb (GDB; openSUSE Leap 15.1) 8.3.1
Reading symbols from zypper...
Reading symbols from /usr/lib/debug/usr/bin/zypper-1.14.30-lp151.2.3.1.x86_64.debug...
[New LWP 4842]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `zypper ref OS15-oss'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 Curl_splay (i=..., t=0x563d07704238) at splay.c:55
55 splay.c: No such file or directory.
(gdb) bt
#0 Curl_splay (i=..., t=0x563d07704238) at splay.c:55
#1 0x00007f8adcc91a33 in Curl_splayinsert (i=..., t=<optimized out>, node=node_at_entry=0x563d076b7698) at splay.c:111
#2 0x00007f8adcc8a204 in Curl_expire (data=data_at_entry=0x563d076b63d0, milli=milli_at_entry=0, id=id_at_entry=EXPIRE_RUN_NOW) at multi.c:3050
#3 0x00007f8adcc8a348 in curl_multi_add_handle (multi=0x563d07699b60, data=0x563d076b63d0) at multi.c:469
#4 0x00007f8ade7dcf57 in zypp::media::multifetchworker::run (this=0x563d07677370) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/media/MediaMultiCurl.cc:763
#5 0x00007f8ade7e17a0 in zypp::media::multifetchrequest::run (this=this_at_entry=0x7ffefd0a8cb0, urllist=...) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/media/MediaMultiCurl.cc:864
#6 0x00007f8ade7e27f8 in zypp::media::MediaMultiCurl::multifetch (this=this_at_entry=0x563d074d2960, filename=..., fp=0x563d076d6530, urllist=urllist_at_entry=0x7ffefd0a8f00, report=report_at_entry=0x7ffefd0a931f, blklist=<optimized out>, blklist_at_entry=0x7ffefd0a91b0, filesize=<optimized out>) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/media/MediaMultiCurl.cc:1560
#7 0x00007f8ade7e3be8 in zypp::media::MediaMultiCurl::multifetch (filesize=..., blklist=0x7ffefd0a91b0, report=0x7ffefd0a931f, urllist=0x7ffefd0a8f00, fp=<optimized out>, filename=..., this=0x563d074d2960) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/media/MediaMultiCurl.h:56
#8 zypp::media::MediaMultiCurl::doGetFileCopy (this=0x563d074d2960, filename=..., target=..., report=..., expectedFileSize_r=..., options=...) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/media/MediaMultiCurl.cc:1442
#9 0x00007f8ade7d9704 in zypp::media::MediaCurl::getFileCopy (this=0x563d074d2960, filename=..., target=..., expectedFileSize_r=...) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/media/MediaCurl.cc:981
#10 0x00007f8ade7cc920 in zypp::media::MediaCurl::getFile (this=0x563d074d2960, filename=..., expectedFileSize_r=...) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/media/MediaCurl.cc:964
#11 0x00007f8ade7a63cd in zypp::media::MediaHandler::provideFile (this=this_at_entry=0x563d074d2960, filename=..., expectedFileSize_r=...) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/media/MediaHandler.cc:1014
#12 0x00007f8ade7a013a in zypp::media::MediaAccess::provideFile (this=<optimized out>, filename=..., expectedFileSize=...) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/media/MediaAccess.cc:346
#13 0x00007f8ade7eeea1 in zypp::media::MediaManager::provideFile (this=this_at_entry=0x7ffefd0a983f, accessId=accessId_at_entry=2, filename=..., expectedFileSize=...) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/media/MediaManager.cc:636
#14 0x00007f8ade96f3f4 in zypp::ProvideFileOperation::operator() (file=..., media=2, this=0x7ffefd0a9b10) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/MediaSetAccess.cc:118
#15 boost::detail::function::void_function_ref_invoker2<zypp::ProvideFileOperation, void, unsigned int, zypp::filesystem::Pathname const&>::invoke (function_obj_ptr=..., a0=2, a1=...) at /usr/include/boost/function/function_template.hpp:194
#16 0x00007f8ade96bb51 in boost::function2<void, unsigned int, zypp::filesystem::Pathname const&>::operator() (a1=..., a0=2, this=0x7ffefd0a9af0) at /usr/include/boost/function/function_template.hpp:759
#17 zypp::MediaSetAccess::provide(boost::function<void (unsigned int, zypp::filesystem::Pathname const&)>, zypp::OnMediaLocation const&, zypp::base::Flags<zypp::MediaSetAccess::ProvideFileOption>, zypp::filesystem::Pathname const&) (this=this_at_entry=0x7ffefd0aa880, op=..., resource=..., options=..., deltafile=...) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/MediaSetAccess.cc:260
#18 0x00007f8ade96ce2f in zypp::MediaSetAccess::provideFile (this=this_at_entry=0x7ffefd0aa880, resource=..., options=..., deltafile=...) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/MediaSetAccess.cc:165
#19 0x00007f8ade93d073 in zypp::Fetcher::Impl::provideToDest (this=this_at_entry=0x563d0756c2b0, media_r=..., destDir_r=..., jobp_r=...) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/Fetcher.cc:519
#20 0x00007f8ade93dd54 in zypp::Fetcher::Impl::start(zypp::filesystem::Pathname const&, zypp::MediaSetAccess&, boost::function<bool (zypp::ProgressData const&)> const&) (this=this_at_entry=0x563d0756c2b0, dest_dir=..., media=..., progress_receiver=...) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/Fetcher.cc:797
#21 0x00007f8ade93f3d3 in zypp::Fetcher::start(zypp::filesystem::Pathname const&, zypp::MediaSetAccess&, boost::function<bool (zypp::ProgressData const&)> const&) (this=this_at_entry=0x563d0747b740, dest_dir=..., media=..., progress_receiver=...) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/Fetcher.cc:876
#22 0x00007f8ade8588d2 in zypp::repo::yum::Downloader::download(zypp::MediaSetAccess&, zypp::filesystem::Pathname const&, boost::function<bool (zypp::ProgressData const&)> const&) (this=this_at_entry=0x563d0747b740, media=..., dest_dir=..., progressrcv=...) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/repo/yum/Downloader.cc:196
#23 0x00007f8ade9cd857 in zypp::RepoManager::Impl::refreshMetadata(zypp::RepoInfo const&, zypp::RepoManager::RawMetadataRefreshPolicy, boost::function<bool (zypp::ProgressData const&)> const&) (this=this_at_entry=0x563d074f5c60, info=..., policy=policy_at_entry=zypp::RepoManager::RefreshForced, progress=...) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/RepoManager.cc:1178
#24 0x00007f8ade9ce551 in zypp::RepoManager::refreshMetadata(zypp::RepoInfo const&, zypp::RepoManager::RawMetadataRefreshPolicy, boost::function<bool (zypp::ProgressData const&)> const&) (this=this_at_entry=0x563d0754ba20, info=..., policy=policy_at_entry=zypp::RepoManager::RefreshForced, progressrcv=...) at /usr/src/debug/libzypp-17.15.0-lp151.2.3.2.x86_64/zypp/RepoManager.cc:2569
#25 0x0000563d050390c1 in refresh_raw_metadata (zypper=..., repo=..., force_download=force_download_at_entry=false) at /usr/src/debug/zypper-1.14.30-lp151.2.3.1.x86_64/src/repos.cc:295
#26 0x0000563d050bca44 in RefreshRepoCmd::refreshRepository (zypper=..., repo=..., flags_r=flags_r_at_entry=...) at /usr/src/debug/zypper-1.14.30-lp151.2.3.1.x86_64/src/commands/repos/refresh.cc:155
#27 0x0000563d050bd888 in RefreshRepoCmd::refreshRepositories (zypper=..., flags_r=..., repos_r=...) at /usr/src/debug/zypper-1.14.30-lp151.2.3.1.x86_64/src/commands/repos/refresh.cc:260
#28 0x0000563d050bf6db in RefreshRepoCmd::execute (this=0x563d07492300, zypper=..., positionalArgs_r=...) at /usr/src/debug/zypper-1.14.30-lp151.2.3.1.x86_64/src/commands/repos/refresh.cc:142
#29 0x0000563d0506b142 in ZypperBaseCommand::run (this=0x563d07492300, zypper=...) at /usr/src/debug/zypper-1.14.30-lp151.2.3.1.x86_64/src/commands/basecommand.cc:255
#30 0x0000563d0500ac10 in Zypper::doCommand (this=this_at_entry=0x563d054679c0 <Zypper::instance()::_instance>, cmdArgc=cmdArgc_at_entry=3, cmdArgv=cmdArgv_at_entry=0x7ffefd0abf88, firstFlag=1) at /usr/src/debug/zypper-1.14.30-lp151.2.3.1.x86_64/src/Zypper.cc:679
#31 0x0000563d04fe4f59 in Zypper::main (this=0x563d054679c0 <Zypper::instance()::_instance>, argc=3, argv=0x7ffefd0abf88) at /usr/src/debug/zypper-1.14.30-lp151.2.3.1.x86_64/src/Zypper.cc:217
#32 0x0000563d04fe4529 in main (argc=3, argv=0x7ffefd0abf88) at /usr/src/debug/zypper-1.14.30-lp151.2.3.1.x86_64/src/main.cc:137
(gdb)
note,
curl_multi_add_handle() @
https://github.com/openSUSE/libzypp/blob/02a52477c0378127d0c13e4797826ee1367936ac/zypp/media/MediaMultiCurl.cc#L763
If there's more specific detail that can/should be gotten, pls specify what/how to grab it.
-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette: https://curl.haxx.se/mail/etiquette.html
Received on 2019-11-14