Bug 1693643

Summary: dnf crashed when trying to install debug packages
Product: [Fedora] Fedora Reporter: Lukas Slebodnik <lslebodn>
Component: librepoAssignee: Jaroslav Mracek <jmracek>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: dmach, jmracek, jrohel, mblaha, mhatina, packaging-team-maint, pkratoch, rpm-software-management, tmlcoch, vmukhame
Target Milestone: ---Keywords: Regression, Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-04-15 12:18:15 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Lukas Slebodnik 2019-03-28 12:01:21 UTC
Description of problem:
It crashed when downloading repo related files.

Version-Release number of selected component (if applicable):
sh#  rpm -qf /usr/lib64/librepo.so.0 /usr/lib64/libdnf.so.2 /usr/bin/dnf
librepo-1.9.6-1.fc31.x86_64
libdnf-0.28.1-1.fc31.x86_64
dnf-4.2.2-1.fc31.noarch

Steps to Reproduce:
1. dnf install --enablerepo=rawhide-debuginfo --enablerepo=rawhide-modular-debuginfo libtar-debuginfo libtar-debugsource

Actual results:
sh# dnf install --enablerepo=rawhide-debuginfo --enablerepo=rawhide-modular-debuginfo libtar-debuginfo libtar-debugsource -e9 -d9
timer: config: 4 ms
Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
DNF version: 4.2.2
Command: dnf install --enablerepo=rawhide-debuginfo --enablerepo=rawhide-modular-debuginfo libtar-debuginfo libtar-debugsource -e9 -d9 
Installroot: /
Releasever: 31
cachedir: /var/cache/dnf
Base command: install
Extra commands: ['install', '--enablerepo=rawhide-debuginfo', '--enablerepo=rawhide-modular-debuginfo', 'libtar-debuginfo', 'libtar-debugsource', '-e9', '-d9']
Unknown configuration value: failovermethod=priority in /etc/yum.repos.d/fedora-updates-modular.repo; Configuration: OptionBinding with id "failovermethod" does not exist
Unknown configuration value: failovermethod=priority in /etc/yum.repos.d/fedora-updates-modular.repo; Configuration: OptionBinding with id "failovermethod" does not exist
Unknown configuration value: failovermethod=priority in /etc/yum.repos.d/fedora-updates-modular.repo; Configuration: OptionBinding with id "failovermethod" does not exist
repo: using cache for: rawhide-modular
not found other for: Fedora - Modular Rawhide - Developmental packages for the next Fedora release
not found deltainfo for: Fedora - Modular Rawhide - Developmental packages for the next Fedora release
not found updateinfo for: Fedora - Modular Rawhide - Developmental packages for the next Fedora release
rawhide-modular: using metadata from Wed 27 Mar 2019 03:40:38 AM EDT.
repo: downloading from remote: rawhide-modular-debuginfo
Segmentation fault (core dumped)

Expected results:
No crash

Additional info:
           PID: 34282 (dnf)
           UID: 0 (root)
           GID: 0 (root)
        Signal: 11 (SEGV)
     Timestamp: Thu 2019-03-28 07:57:27 EDT (2min 16s ago)
  Command Line: /usr/bin/python3 /usr/bin/dnf install --enablerepo=rawhide-debuginfo --enablerepo=rawhide-modular-debuginfo libtar-debuginfo libtar-debugsource -e9 -d9
    Executable: /usr/bin/python3.7
 Control Group: /user.slice/user-0.slice/session-4.scope
          Unit: session-4.scope
         Slice: user-0.slice
       Session: 4
     Owner UID: 0 (root)
       Boot ID: 87ae1ac35e4b4069ad8b61030a96f117
    Machine ID: 2317e08f83f846d29679a7aa9ebdb2f2
      Hostname: intel-canoepass-09.testrelm.test
       Storage: /var/lib/systemd/coredump/core.dnf.0.87ae1ac35e4b4069ad8b61030a96f117.34282.1553774247000000.lz4
       Message: Process 34282 (dnf) of user 0 dumped core.
                
                Stack trace of thread 34282:
                #0  0x00007fb0dab7e180 Curl_splay (libcurl.so.4)
                #1  0x00007fb0dab7e436 Curl_splayremovebyaddr (libcurl.so.4)
                #2  0x00007fb0dab77042 Curl_expire_clear (libcurl.so.4)
                #3  0x00007fb0dab617db Curl_close (libcurl.so.4)
                #4  0x00007fb0dab6f509 curl_easy_cleanup (libcurl.so.4)
                #5  0x00007fb0db445a1b prepare_next_transfer (librepo.so.0)
                #6  0x00007fb0db447a2a lr_download (librepo.so.0)
                #7  0x00007fb0db449590 lr_download_single_cb (librepo.so.0)
                #8  0x00007fb0db45a423 lr_yum_download_repo (librepo.so.0)
                #9  0x00007fb0db45ac85 lr_yum_download_remote (librepo.so.0)
                #10 0x00007fb0db44e6cd lr_handle_perform (librepo.so.0)
                #11 0x00007fb0db5a7fa9 _ZN6libdnf4Repo4Impl15lrHandlePerformEP9_LrHandleRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb (libdnf.so.2)
                #12 0x00007fb0db5aa2b3 _ZN6libdnf4Repo4Impl5fetchERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEOSt10unique_ptrI9_LrHandleSt14default_deleteISB_EE (libdnf.so.2)
                #13 0x00007fb0db5aae24 _ZN6libdnf4Repo4Impl4loadEv (libdnf.so.2)
                #14 0x00007fb0d9eb28ab _wrap_Repo_load (_repo.so)
                #15 0x00007fb0dc78ea01 _PyMethodDef_RawFastCallKeywords (libpython3.7m.so.1.0)
                #16 0x00007fb0dc78eb33 _PyCFunction_FastCallKeywords (libpython3.7m.so.1.0)
                #17 0x00007fb0dc7c7d72 n/a (libpython3.7m.so.1.0)
                #18 0x00007fb0dc80e572 _PyEval_EvalFrameDefault (libpython3.7m.so.1.0)
                #19 0x00007fb0dc7b46e2 _PyFunction_FastCallKeywords (libpython3.7m.so.1.0)
                #20 0x00007fb0dc7c7c5f n/a (libpython3.7m.so.1.0)
                #21 0x00007fb0dc80e572 _PyEval_EvalFrameDefault (libpython3.7m.so.1.0)
                #22 0x00007fb0dc7b46e2 _PyFunction_FastCallKeywords (libpython3.7m.so.1.0)
                #23 0x00007fb0dc7c7c5f n/a (libpython3.7m.so.1.0)
                #24 0x00007fb0dc80e572 _PyEval_EvalFrameDefault (libpython3.7m.so.1.0)
                #25 0x00007fb0dc7b46e2 _PyFunction_FastCallKeywords (libpython3.7m.so.1.0)
                #26 0x00007fb0dc7c7c5f n/a (libpython3.7m.so.1.0)
                #27 0x00007fb0dc8098b3 _PyEval_EvalFrameDefault (libpython3.7m.so.1.0)
                #28 0x00007fb0dc7b3601 _PyEval_EvalCodeWithName (libpython3.7m.so.1.0)
                #29 0x00007fb0dc7b4880 _PyFunction_FastCallKeywords (libpython3.7m.so.1.0)
                #30 0x00007fb0dc7c7c5f n/a (libpython3.7m.so.1.0)
                #31 0x00007fb0dc80a5a0 _PyEval_EvalFrameDefault (libpython3.7m.so.1.0)

Comment 1 Lukas Slebodnik 2019-03-28 12:02:53 UTC
sh# valgrind dnf install --enablerepo=rawhide-debuginfo --enablerepo=rawhide-modular-debuginfo libtar-debuginfo libtar-debugsource
==34223== Memcheck, a memory error detector
==34223== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==34223== Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info
==34223== Command: /usr/bin/dnf install --enablerepo=rawhide-debuginfo --enablerepo=rawhide-modular-debuginfo libtar-debuginfo libtar-debugsource
==34223== 
Fedora - Modular Rawhide - Debug                                                                                                                           0.0  B/s |   0  B     00:30    
Failed to synchronize cache for repo 'rawhide-modular-debuginfo'
==34223== Conditional jump or move depends on uninitialised value(s)
==34223==    at 0x4AEE7C3: PyBool_FromLong (in /usr/lib64/libpython3.7m.so.1.0)
==34223==    by 0x8B5A2A2: SWIG_From_bool (repoPYTHON_wrap.cxx:4013)
==34223==    by 0x8B5A2A2: _wrap_Repo_isExpired (repoPYTHON_wrap.cxx:10915)
==34223==    by 0x4B16A00: _PyMethodDef_RawFastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==34223==    by 0x4B16B32: _PyCFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==34223==    by 0x4B4FD71: ??? (in /usr/lib64/libpython3.7m.so.1.0)
==34223==    by 0x4B96571: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==34223==    by 0x4B3C6E1: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==34223==    by 0x4B4FC5E: ??? (in /usr/lib64/libpython3.7m.so.1.0)
==34223==    by 0x4B96571: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==34223==    by 0x4B3B600: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==34223==    by 0x4B3C87F: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==34223==    by 0x4B4FC5E: ??? (in /usr/lib64/libpython3.7m.so.1.0)
==34223== 
Error: Failed to synchronize cache for repo 'rawhide-modular-debuginfo'
==34223== 
==34223== HEAP SUMMARY:
==34223==     in use at exit: 4,318,451 bytes in 35,723 blocks
==34223==   total heap usage: 820,532 allocs, 784,809 frees, 5,077,145,206 bytes allocated
==34223== 
==34223== LEAK SUMMARY:
==34223==    definitely lost: 304 bytes in 7 blocks
==34223==    indirectly lost: 0 bytes in 0 blocks
==34223==      possibly lost: 1,515,453 bytes in 10,412 blocks
==34223==    still reachable: 2,802,614 bytes in 25,303 blocks
==34223==                       of which reachable via heuristic:
==34223==                         newarray           : 1,536 bytes in 16 blocks
==34223==         suppressed: 0 bytes in 0 blocks
==34223== Rerun with --leak-check=full to see details of leaked memory
==34223== 
==34223== For counts of detected and suppressed errors, rerun with: -v
==34223== Use --track-origins=yes to see where uninitialised values come from
==34223== ERROR SUMMARY: 8 errors from 2 contexts (suppressed: 0 from 0)

Comment 2 Lukas Slebodnik 2019-03-28 12:07:55 UTC
sh# LD_PRELOAD=/usr/lib64/libasan.so.5 dnf install --enablerepo=rawhide-debuginfo --enablerepo=rawhide-modular-debuginfo libtar-debuginfo libtar-debugsource -e9 -d9
timer: config: 7 ms
Loaded plugins: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
DNF version: 4.2.2
Command: dnf install --enablerepo=rawhide-debuginfo --enablerepo=rawhide-modular-debuginfo libtar-debuginfo libtar-debugsource -e9 -d9 
Installroot: /
Releasever: 31
cachedir: /var/cache/dnf
Base command: install
Extra commands: ['install', '--enablerepo=rawhide-debuginfo', '--enablerepo=rawhide-modular-debuginfo', 'libtar-debuginfo', 'libtar-debugsource', '-e9', '-d9']
Unknown configuration value: failovermethod=priority in /etc/yum.repos.d/fedora-updates-modular.repo; Configuration: OptionBinding with id "failovermethod" does not exist
Unknown configuration value: failovermethod=priority in /etc/yum.repos.d/fedora-updates-modular.repo; Configuration: OptionBinding with id "failovermethod" does not exist
Unknown configuration value: failovermethod=priority in /etc/yum.repos.d/fedora-updates-modular.repo; Configuration: OptionBinding with id "failovermethod" does not exist
repo: using cache for: rawhide-modular
not found other for: Fedora - Modular Rawhide - Developmental packages for the next Fedora release
not found deltainfo for: Fedora - Modular Rawhide - Developmental packages for the next Fedora release
not found updateinfo for: Fedora - Modular Rawhide - Developmental packages for the next Fedora release
rawhide-modular: using metadata from Wed 27 Mar 2019 03:40:38 AM EDT.
repo: downloading from remote: rawhide-modular-debuginfo
AddressSanitizer:DEADLYSIGNALbug                                               [   ===                                                                   ] ---  B/s |   0  B     --:-- ETA
=================================================================
==34316==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7fef96247180 bp 0x61400000a330 sp 0x7ffe46608cb0 T0)
==34316==The signal is caused by a READ memory access.
==34316==Hint: address points to the zero page.
    #0 0x7fef9624717f  (/lib64/libcurl.so.4+0x4117f)
    #1 0x7fef96247435  (/lib64/libcurl.so.4+0x41435)
    #2 0x7fef96240041  (/lib64/libcurl.so.4+0x3a041)
    #3 0x7fef9622a7da  (/lib64/libcurl.so.4+0x247da)
    #4 0x7fef96238508 in curl_easy_cleanup (/lib64/libcurl.so.4+0x32508)
    #5 0x7fef96b0ea1a in prepare_next_transfer /usr/src/debug/librepo-1.9.6-1.fc31.x86_64/librepo/downloader.c:1454
    #6 0x7fef96b0ea1a in prepare_next_transfers /usr/src/debug/librepo-1.9.6-1.fc31.x86_64/librepo/downloader.c:1688
    #7 0x7fef96b10a29 in lr_download /usr/src/debug/librepo-1.9.6-1.fc31.x86_64/librepo/downloader.c:2572
    #8 0x7fef96b1258f in lr_download_single_cb /usr/src/debug/librepo-1.9.6-1.fc31.x86_64/librepo/downloader.c:2781
    #9 0x7fef96b23422 in lr_yum_download_repo /usr/src/debug/librepo-1.9.6-1.fc31.x86_64/librepo/yum.c:952
    #10 0x7fef96b23c84 in lr_yum_download_remote /usr/src/debug/librepo-1.9.6-1.fc31.x86_64/librepo/yum.c:1344
    #11 0x7fef96b23c84 in lr_yum_perform /usr/src/debug/librepo-1.9.6-1.fc31.x86_64/librepo/yum.c:1420
    #12 0x7fef96b176cc in lr_handle_perform (/lib64/librepo.so.0+0x156cc)
    #13 0x7fef96c70fa8 in libdnf::Repo::Impl::lrHandlePerform(_LrHandle*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) /usr/src/debug/libdnf-0.28.1-1.fc31.x86_64/libdnf/repo/Repo.cpp:1005
    #14 0x7fef96c732b2 in libdnf::Repo::Impl::fetch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<_LrHandle, std::default_delete<_LrHandle> >&&) /usr/src/debug/libdnf-0.28.1-1.fc31.x86_64/libdnf/repo/Repo.cpp:1222
    #15 0x7fef96c73e23 in libdnf::Repo::Impl::load() /usr/src/debug/libdnf-0.28.1-1.fc31.x86_64/libdnf/repo/Repo.cpp:1288
    #16 0x7fef955868aa in _wrap_Repo_load /usr/src/debug/libdnf-0.28.1-1.fc31.x86_64/build-py3/bindings/python/CMakeFiles/_repo.dir/repoPYTHON_wrap.cxx:10316
    #17 0x7fef9af3ba00 in _PyMethodDef_RawFastCallKeywords (/lib64/libpython3.7m.so.1.0+0x102a00)
    #18 0x7fef9af3bb32 in _PyCFunction_FastCallKeywords (/lib64/libpython3.7m.so.1.0+0x102b32)
    #19 0x7fef9af74d71  (/lib64/libpython3.7m.so.1.0+0x13bd71)
    #20 0x7fef9afbb571 in _PyEval_EvalFrameDefault (/lib64/libpython3.7m.so.1.0+0x182571)
    #21 0x7fef9af616e1 in _PyFunction_FastCallKeywords (/lib64/libpython3.7m.so.1.0+0x1286e1)
    #22 0x7fef9af74c5e  (/lib64/libpython3.7m.so.1.0+0x13bc5e)
    #23 0x7fef9afbb571 in _PyEval_EvalFrameDefault (/lib64/libpython3.7m.so.1.0+0x182571)
    #24 0x7fef9af616e1 in _PyFunction_FastCallKeywords (/lib64/libpython3.7m.so.1.0+0x1286e1)
    #25 0x7fef9af74c5e  (/lib64/libpython3.7m.so.1.0+0x13bc5e)
    #26 0x7fef9afbb571 in _PyEval_EvalFrameDefault (/lib64/libpython3.7m.so.1.0+0x182571)
    #27 0x7fef9af616e1 in _PyFunction_FastCallKeywords (/lib64/libpython3.7m.so.1.0+0x1286e1)
    #28 0x7fef9af74c5e  (/lib64/libpython3.7m.so.1.0+0x13bc5e)
    #29 0x7fef9afb68b2 in _PyEval_EvalFrameDefault (/lib64/libpython3.7m.so.1.0+0x17d8b2)
    #30 0x7fef9af60600 in _PyEval_EvalCodeWithName (/lib64/libpython3.7m.so.1.0+0x127600)
    #31 0x7fef9af6187f in _PyFunction_FastCallKeywords (/lib64/libpython3.7m.so.1.0+0x12887f)
    #32 0x7fef9af74c5e  (/lib64/libpython3.7m.so.1.0+0x13bc5e)
    #33 0x7fef9afb759f in _PyEval_EvalFrameDefault (/lib64/libpython3.7m.so.1.0+0x17e59f)
    #34 0x7fef9af616e1 in _PyFunction_FastCallKeywords (/lib64/libpython3.7m.so.1.0+0x1286e1)
    #35 0x7fef9af74c5e  (/lib64/libpython3.7m.so.1.0+0x13bc5e)
    #36 0x7fef9afb68b2 in _PyEval_EvalFrameDefault (/lib64/libpython3.7m.so.1.0+0x17d8b2)
    #37 0x7fef9af616e1 in _PyFunction_FastCallKeywords (/lib64/libpython3.7m.so.1.0+0x1286e1)
    #38 0x7fef9af74c5e  (/lib64/libpython3.7m.so.1.0+0x13bc5e)
    #39 0x7fef9afb68b2 in _PyEval_EvalFrameDefault (/lib64/libpython3.7m.so.1.0+0x17d8b2)
    #40 0x7fef9af616e1 in _PyFunction_FastCallKeywords (/lib64/libpython3.7m.so.1.0+0x1286e1)
    #41 0x7fef9af74c5e  (/lib64/libpython3.7m.so.1.0+0x13bc5e)
    #42 0x7fef9afb680f in _PyEval_EvalFrameDefault (/lib64/libpython3.7m.so.1.0+0x17d80f)
    #43 0x7fef9af616e1 in _PyFunction_FastCallKeywords (/lib64/libpython3.7m.so.1.0+0x1286e1)
    #44 0x7fef9af74c5e  (/lib64/libpython3.7m.so.1.0+0x13bc5e)
    #45 0x7fef9afb680f in _PyEval_EvalFrameDefault (/lib64/libpython3.7m.so.1.0+0x17d80f)
    #46 0x7fef9af60600 in _PyEval_EvalCodeWithName (/lib64/libpython3.7m.so.1.0+0x127600)
    #47 0x7fef9af6187f in _PyFunction_FastCallKeywords (/lib64/libpython3.7m.so.1.0+0x12887f)
    #48 0x7fef9af74c5e  (/lib64/libpython3.7m.so.1.0+0x13bc5e)
    #49 0x7fef9afb680f in _PyEval_EvalFrameDefault (/lib64/libpython3.7m.so.1.0+0x17d80f)
    #50 0x7fef9af60600 in _PyEval_EvalCodeWithName (/lib64/libpython3.7m.so.1.0+0x127600)
    #51 0x7fef9af6187f in _PyFunction_FastCallKeywords (/lib64/libpython3.7m.so.1.0+0x12887f)
    #52 0x7fef9af74c5e  (/lib64/libpython3.7m.so.1.0+0x13bc5e)
    #53 0x7fef9afb759f in _PyEval_EvalFrameDefault (/lib64/libpython3.7m.so.1.0+0x17e59f)
    #54 0x7fef9af60600 in _PyEval_EvalCodeWithName (/lib64/libpython3.7m.so.1.0+0x127600)
    #55 0x7fef9af615b8 in PyEval_EvalCodeEx (/lib64/libpython3.7m.so.1.0+0x1285b8)
    #56 0x7fef9af615da in PyEval_EvalCode (/lib64/libpython3.7m.so.1.0+0x1285da)
    #57 0x7fef9b03a70e  (/lib64/libpython3.7m.so.1.0+0x20170e)
    #58 0x7fef9b03ab16 in PyRun_FileExFlags (/lib64/libpython3.7m.so.1.0+0x201b16)
    #59 0x7fef9b04104c in PyRun_SimpleFileExFlags (/lib64/libpython3.7m.so.1.0+0x20804c)
    #60 0x7fef9b0432c3  (/lib64/libpython3.7m.so.1.0+0x20a2c3)
    #61 0x7fef9b04366b in _Py_UnixMain (/lib64/libpython3.7m.so.1.0+0x20a66b)
    #62 0x7fef9b1abf72 in __libc_start_main (/lib64/libc.so.6+0x26f72)
    #63 0x55caae2a308d in _start (/usr/bin/python3.7+0x108d)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/lib64/libcurl.so.4+0x4117f) 
==34316==ABORTING

Comment 3 Lukas Slebodnik 2019-03-28 21:57:30 UTC
Seems to be some issue with librepo and/or zchunk-libs

repo: using cache for: rawhide-modular
not found other for: Fedora - Modular Rawhide - Developmental packages for the next Fedora release
not found deltainfo for: Fedora - Modular Rawhide - Developmental packages for the next Fedora release
not found updateinfo for: Fedora - Modular Rawhide - Developmental packages for the next Fedora release
rawhide-modular: using metadata from Wed 27 Mar 2019 03:40:38 AM EDT.
repo: downloading from remote: rawhide-modular-debuginfo
==24691== Invalid read of size 1                                               [            ===                                                          ] ---  B/s |   0  B     --:-- ETA
==24691==    at 0x7F054E4: sigpipe_ignore (sigpipe.h:47)
==24691==    by 0x7F054E4: curl_easy_cleanup (easy.c:764)
==24691==    by 0x7644A1A: prepare_next_transfer (downloader.c:1454)
==24691==    by 0x7644A1A: prepare_next_transfers (downloader.c:1688)
==24691==    by 0x7646A29: lr_download (downloader.c:2572)
==24691==    by 0x764858F: lr_download_single_cb (downloader.c:2781)
==24691==    by 0x7659422: lr_yum_download_repo (yum.c:952)
==24691==    by 0x7659C84: lr_yum_download_remote (yum.c:1344)
==24691==    by 0x7659C84: lr_yum_perform (yum.c:1420)
==24691==    by 0x764D6CC: lr_handle_perform (handle.c:1220)
==24691==    by 0x75E3FA8: libdnf::Repo::Impl::lrHandlePerform(_LrHandle*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (Repo.cpp:1005)
==24691==    by 0x75E62B2: libdnf::Repo::Impl::fetch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<_LrHandle, std::default_delete<_LrHandle> >&&) (Repo.cpp:1222)
==24691==    by 0x75E6E23: libdnf::Repo::Impl::load() (Repo.cpp:1288)
==24691==    by 0x8B598AA: ??? (in /usr/lib64/python3.7/site-packages/libdnf/_repo.so)
==24691==    by 0x4B16A00: _PyMethodDef_RawFastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==24691==  Address 0xb099ebc is 12 bytes after a block of size 192 in arena "client"
==24691== 
==24691== Invalid read of size 8
==24691==    at 0x7F0D021: Curl_expire_clear (multi.c:3032)
==24691==    by 0x7EF77DA: Curl_close (url.c:328)
==24691==    by 0x7F05508: curl_easy_cleanup (easy.c:765)
==24691==    by 0x7644A1A: prepare_next_transfer (downloader.c:1454)
==24691==    by 0x7644A1A: prepare_next_transfers (downloader.c:1688)
==24691==    by 0x7646A29: lr_download (downloader.c:2572)
==24691==    by 0x764858F: lr_download_single_cb (downloader.c:2781)
==24691==    by 0x7659422: lr_yum_download_repo (yum.c:952)
==24691==    by 0x7659C84: lr_yum_download_remote (yum.c:1344)
==24691==    by 0x7659C84: lr_yum_perform (yum.c:1420)
==24691==    by 0x764D6CC: lr_handle_perform (handle.c:1220)
==24691==    by 0x75E3FA8: libdnf::Repo::Impl::lrHandlePerform(_LrHandle*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (Repo.cpp:1005)
==24691==    by 0x75E62B2: libdnf::Repo::Impl::fetch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<_LrHandle, std::default_delete<_LrHandle> >&&) (Repo.cpp:1222)
==24691==    by 0x75E6E23: libdnf::Repo::Impl::load() (Repo.cpp:1288)
==24691==  Address 0xb099388 is 0 bytes after a block of size 8 free'd
==24691==    at 0x4839A0C: free (vg_replace_malloc.c:540)
==24691==    by 0x76BEE5C: g_free (in /usr/lib64/libglib-2.0.so.0.6000.0)
==24691==    by 0x7657AB9: lr_yum_switch_to_zchunk.isra.0.part.0 (yum.c:211)
==24691==    by 0x7658D31: lr_yum_switch_to_zchunk (yum.c:177)
==24691==    by 0x7658D31: prepare_repo_download_targets (yum.c:751)
==24691==    by 0x76593EC: lr_yum_download_repo (yum.c:947)
==24691==    by 0x7659C84: lr_yum_download_remote (yum.c:1344)
==24691==    by 0x7659C84: lr_yum_perform (yum.c:1420)
==24691==    by 0x764D6CC: lr_handle_perform (handle.c:1220)
==24691==    by 0x75E3FA8: libdnf::Repo::Impl::lrHandlePerform(_LrHandle*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (Repo.cpp:1005)
==24691==    by 0x75E62B2: libdnf::Repo::Impl::fetch(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::unique_ptr<_LrHandle, std::default_delete<_LrHandle> >&&) (Repo.cpp:1222)
==24691==    by 0x75E6E23: libdnf::Repo::Impl::load() (Repo.cpp:1288)
==24691==    by 0x8B598AA: ??? (in /usr/lib64/python3.7/site-packages/libdnf/_repo.so)
==24691==    by 0x4B16A00: _PyMethodDef_RawFastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==24691==  Block was alloc'd at
==24691==    at 0x483880B: malloc (vg_replace_malloc.c:309)
==24691==    by 0x76BED68: g_malloc (in /usr/lib64/libglib-2.0.so.0.6000.0)
==24691==    by 0x76D8E23: g_strdup (in /usr/lib64/libglib-2.0.so.0.6000.0)
==24691==    by 0x7656793: lr_strv_dup (util.c:442)
==24691==    by 0x764B329: lr_handle_setopt (handle.c:478)
==24691==    by 0x75DDC2C: handleSetOpt<char const**> (Repo.cpp:134)
==24691==    by 0x75DDC2C: libdnf::Repo::Impl::lrHandleInitBase() (Repo.cpp:564)
==24691==    by 0x75E0C75: libdnf::Repo::Impl::lrHandleInitRemote(char const*, bool) (Repo.cpp:601)
==24691==    by 0x75E6E15: libdnf::Repo::Impl::load() (Repo.cpp:1288)
==24691==    by 0x8B598AA: ??? (in /usr/lib64/python3.7/site-packages/libdnf/_repo.so)
==24691==    by 0x4B16A00: _PyMethodDef_RawFastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==24691==    by 0x4B16B32: _PyCFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==24691==    by 0x4B4FD71: ??? (in /usr/lib64/libpython3.7m.so.1.0)
==24691==
==24691== Invalid read of size 8
==24691==    at 0x7F14180: Curl_splay (splay.c:51)
==24691==    by 0x7F14435: Curl_splayremovebyaddr (splay.c:238)
==24691==    by 0x7F0D041: Curl_expire_clear (multi.c:3032)
==24691==    by 0x7EF77DA: Curl_close (url.c:328)
==24691==    by 0x7F05508: curl_easy_cleanup (easy.c:765)
==24691==    by 0x7644A1A: prepare_next_transfer (downloader.c:1454)
==24691==    by 0x7644A1A: prepare_next_transfers (downloader.c:1688)
==24691==    by 0x7646A29: lr_download (downloader.c:2572)
==24691==    by 0x764858F: lr_download_single_cb (downloader.c:2781)
==24691==    by 0x7659422: lr_yum_download_repo (yum.c:952)
==24691==    by 0x7659C84: lr_yum_download_remote (yum.c:1344)
==24691==    by 0x7659C84: lr_yum_perform (yum.c:1420)
==24691==    by 0x764D6CC: lr_handle_perform (handle.c:1220)
==24691==    by 0x75E3FA8: libdnf::Repo::Impl::lrHandlePerform(_LrHandle*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (Repo.cpp:1005)
==24691==  Address 0x6720a080728 is not stack'd, malloc'd or (recently) free'd
==24691== 
==24691== 
==24691== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==24691==  Access not within mapped region at address 0x6720A080728
==24691==    at 0x7F14180: Curl_splay (splay.c:51)
==24691==    by 0x7F14435: Curl_splayremovebyaddr (splay.c:238)
==24691==    by 0x7F0D041: Curl_expire_clear (multi.c:3032)
==24691==    by 0x7EF77DA: Curl_close (url.c:328)
==24691==    by 0x7F05508: curl_easy_cleanup (easy.c:765)
==24691==    by 0x7644A1A: prepare_next_transfer (downloader.c:1454)
==24691==    by 0x7644A1A: prepare_next_transfers (downloader.c:1688)
==24691==    by 0x7646A29: lr_download (downloader.c:2572)
==24691==    by 0x764858F: lr_download_single_cb (downloader.c:2781)
==24691==    by 0x7659422: lr_yum_download_repo (yum.c:952)
==24691==    by 0x7659C84: lr_yum_download_remote (yum.c:1344)
==24691==    by 0x7659C84: lr_yum_perform (yum.c:1420)
==24691==    by 0x764D6CC: lr_handle_perform (handle.c:1220)
==24691==    by 0x75E3FA8: libdnf::Repo::Impl::lrHandlePerform(_LrHandle*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) (Repo.cpp:1005)
==24691==  If you believe this happened as a result of a stack
==24691==  overflow in your program's main thread (unlikely but
==24691==  possible), you can try to increase the size of the
==24691==  main thread stack using the --main-stacksize= flag.
==24691==  The main thread stack size used in this run was 8388608.
==24691== 
==24691== HEAP SUMMARY:
==24691==     in use at exit: 37,555,278 bytes in 141,148 blocks
==24691==   total heap usage: 548,284 allocs, 407,136 frees, 4,500,688,543 bytes allocated
==24691== 
==24691== LEAK SUMMARY:
==24691==    definitely lost: 770 bytes in 14 blocks
==24691==    indirectly lost: 195,084 bytes in 398 blocks
==24691==      possibly lost: 4,689,679 bytes in 47,011 blocks
==24691==    still reachable: 32,669,441 bytes in 93,723 blocks
==24691==                       of which reachable via heuristic:
==24691==                         newarray           : 1,536 bytes in 16 blocks
==24691==         suppressed: 0 bytes in 0 blocks
==24691== Rerun with --leak-check=full to see details of leaked memory
==24691== 
==24691== For counts of detected and suppressed errors, rerun with: -v
==24691== Use --track-origins=yes to see where uninitialised values come from
==24691== ERROR SUMMARY: 8 errors from 4 contexts (suppressed: 0 from 0)
Segmentation fault

Comment 4 Lukas Slebodnik 2019-03-28 21:58:41 UTC
Workaround is downgrade both of them

[root@host ~]# dnf downgrade -y -C https://kojipkgs.fedoraproject.org//packages/librepo/1.9.5/1.fc31/x86_64/librepo-1.9.5-1.fc31.x86_64.rpm https://kojipkgs.fedoraproject.org//packages/zchunk/1.0.4/1.fc31/x86_64/zchunk-libs-1.0.4-1.fc31.x86_64.rpm
Last metadata expiration check: 0:05:59 ago on Thu 28 Mar 2019 05:43:14 PM EDT.
librepo-1.9.5-1.fc31.x86_64.rpm                                                                                                                             99 kB/s |  86 kB     00:00    
zchunk-libs-1.0.4-1.fc31.x86_64.rpm                                                                                                                         83 kB/s |  46 kB     00:00    
Dependencies resolved.
===========================================================================================================================================================================================
 Package                                      Architecture                            Version                                          Repository                                     Size
===========================================================================================================================================================================================
Downgrading:
 librepo                                      x86_64                                  1.9.5-1.fc31                                     @commandline                                   86 k
 zchunk-libs                                  x86_64                                  1.0.4-1.fc31                                     @commandline                                   46 k

Transaction Summary
===========================================================================================================================================================================================
Downgrade  2 Packages

Total size: 132 k
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                   1/1 
  Downgrading      : zchunk-libs-1.0.4-1.fc31.x86_64                                                                                                                                   1/4 
  Downgrading      : librepo-1.9.5-1.fc31.x86_64                                                                                                                                       2/4 
  Cleanup          : librepo-1.9.6-1.fc31.x86_64                                                                                                                                       3/4 
  Cleanup          : zchunk-libs-1.1.0-1.fc31.x86_64                                                                                                                                   4/4 
  Running scriptlet: zchunk-libs-1.1.0-1.fc31.x86_64                                                                                                                                   4/4 
  Verifying        : librepo-1.9.5-1.fc31.x86_64                                                                                                                                       1/4 
  Verifying        : librepo-1.9.6-1.fc31.x86_64                                                                                                                                       2/4 
  Verifying        : zchunk-libs-1.0.4-1.fc31.x86_64                                                                                                                                   3/4 
  Verifying        : zchunk-libs-1.1.0-1.fc31.x86_64                                                                                                                                   4/4 

Downgraded:
  librepo-1.9.5-1.fc31.x86_64                                                                zchunk-libs-1.0.4-1.fc31.x86_64                                                               

Complete!

[root@host ~]# dnf install --enablerepo=rawhide-debuginfo --enablerepo=rawhide-modular-debuginfo libtar-debuginfo libtar-debugsource
Fedora - Modular Rawhide - Debug                                                                                                                           3.2 kB/s | 4.8 kB     00:01    
Fedora - Rawhide - Developmental packages for the next Fedora release                                                                                       20 kB/s |  14 kB     00:00    
Fedora - Rawhide - Debug                                                                                                                                   2.1 MB/s |  28 MB     00:13    
rawhide-koji-basearch                                                                                                                                       10 kB/s | 3.8 kB     00:00    
Dependencies resolved.
===========================================================================================================================================================================================
 Package                                          Architecture                         Version                                       Repository                                       Size
===========================================================================================================================================================================================
Installing:
 libtar-debuginfo                                 x86_64                               1.2.20-17.fc30                                rawhide-debuginfo                                54 k
 libtar-debugsource                               x86_64                               1.2.20-17.fc30                                rawhide-debuginfo                                31 k

Transaction Summary
===========================================================================================================================================================================================
Install  2 Packages

Total download size: 85 k
Installed size: 282 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): libtar-debugsource-1.2.20-17.fc30.x86_64.rpm                                                                                                         42 kB/s |  31 kB     00:00    
(2/2): libtar-debuginfo-1.2.20-17.fc30.x86_64.rpm                                                                                                           68 kB/s |  54 kB     00:00    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                       69 kB/s |  85 kB     00:01     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                   1/1 
  Installing       : libtar-debugsource-1.2.20-17.fc30.x86_64                                                                                                                          1/2 
  Installing       : libtar-debuginfo-1.2.20-17.fc30.x86_64                                                                                                                            2/2 
  Running scriptlet: libtar-debuginfo-1.2.20-17.fc30.x86_64                                                                                                                            2/2 
  Verifying        : libtar-debuginfo-1.2.20-17.fc30.x86_64                                                                                                                            1/2 
  Verifying        : libtar-debugsource-1.2.20-17.fc30.x86_64                                                                                                                          2/2 

Installed:
  libtar-debuginfo-1.2.20-17.fc30.x86_64                                                      libtar-debugsource-1.2.20-17.fc30.x86_64                                                     

Complete!

Comment 5 Lukas Slebodnik 2019-04-02 19:41:20 UTC
It would be good if you could take a look.

Comment 6 Jaroslav Mracek 2019-04-15 12:18:15 UTC
We believe that the issue is fixed in librepo-0:1.9.6-2.fc31.x86_64. Please if you could reproduce the issue with the latest version of librepo, reopen the bug.