Bug 1628056 - dnf has problem when setting option fastestmirror
Summary: dnf has problem when setting option fastestmirror
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf   
(Show other bugs)
Version: rawhide
Hardware: Unspecified Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Jaroslav Rohel
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Keywords: Triaged
: 1629383 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-09-12 06:58 UTC by Lukas Slebodnik
Modified: 2018-11-22 17:27 UTC (History)
14 users (show)

Fixed In Version: dnf-4.0.4
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2018-11-22 17:27:48 UTC
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

Description Lukas Slebodnik 2018-09-12 06:58:05 UTC
Description of problem:
The latest upgrade of dnf and libdnf in rawhide cause SWIG error when using
option fastestmirror

Version-Release number of selected component (if applicable):
sh# rpm -q dnf libdnf
dnf-3.5.1-1.fc30.noarch
libdnf-0.19.1-1.fc30.x86_64

How reproducible:
Deterministic

Steps to Reproduce:
1. rpm -q dnf libdnf
2. rm -rf /var/cache/dnf/*
3. dnf update -y --setopt=fastestmirror=1

Actual results:
[root@host ~]# rpm -q dnf libdnf
dnf-3.5.1-1.fc30.noarch
libdnf-0.19.1-1.fc30.x86_64
[root@host ~]# rm -rf /var/cache/dnf/*
[root@host ~]# dnf update -y --setopt=fastestmirror=1
Error: SWIG director method error. Error detected when calling 'RepoCB.fastestMirror'
[root@host ~]# echo $?
1

Expected results:
//No errors

[root@host ~]# rpm -q dnf libdnf
dnf-3.5.1-1.fc30.noarch
libdnf-0.19.1-1.fc30.x86_64
[root@host ~]# rm -rf /var/cache/dnf/*
[root@host ~]# dnf update -y --setopt=fastestmirror=1
//snip
[root@host ~]# echo $?
0


Additional info:

sh# cat /var/log/dnf.log
2018-09-12T06:56:32Z INFO --- logging initialized ---
2018-09-12T06:56:32Z DDEBUG timer: config: 7 ms
2018-09-12T06:56:32Z DEBUG Loaded plugins: builddep, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, repoclosure, repograph, repomanage, reposync
2018-09-12T06:56:32Z DEBUG DNF version: 3.5.1
2018-09-12T06:56:32Z DDEBUG Command: dnf update -e 10 -d 10 -y --setopt=fastestmirror=1 
2018-09-12T06:56:32Z DDEBUG Installroot: /
2018-09-12T06:56:32Z DDEBUG Releasever: 30
2018-09-12T06:56:32Z DEBUG cachedir: /var/cache/dnf
2018-09-12T06:56:32Z DDEBUG Base command: update
2018-09-12T06:56:32Z DDEBUG Extra commands: ['update', '-e', '10', '-d', '10', '-y', '--setopt=fastestmirror=1']
2018-09-12T06:56:32Z DEBUG repo: downloading from remote: rawhide-modular
2018-09-12T06:56:34Z DDEBUG Cleaning up.
2018-09-12T06:56:34Z SUBDEBUG 
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/dnf/repo.py", line 521, in load
    ret = self._repo.load()
  File "/usr/lib64/python3.7/site-packages/libdnf/repo.py", line 503, in load
    return _repo.Repo_load(self)
RuntimeError: SWIG director method error. Error detected when calling 'RepoCB.fastestMirror'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 64, in main
    return _main(base, args, cli_class, option_parser_class)
  File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 99, in _main
    return cli_run(cli, base)
  File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 115, in cli_run
    cli.run()
  File "/usr/lib/python3.7/site-packages/dnf/cli/cli.py", line 1048, in run
    self._process_demands()
  File "/usr/lib/python3.7/site-packages/dnf/cli/cli.py", line 784, in _process_demands
    load_available_repos=self.demands.available_repos)
  File "/usr/lib/python3.7/site-packages/dnf/base.py", line 381, in fill_sack
    self._add_repo_to_sack(r)
  File "/usr/lib/python3.7/site-packages/dnf/base.py", line 134, in _add_repo_to_sack
    repo.load()
  File "/usr/lib/python3.7/site-packages/dnf/repo.py", line 523, in load
    raise dnf.exceptions.RepoError(str(e))
dnf.exceptions.RepoError: SWIG director method error. Error detected when calling 'RepoCB.fastestMirror'
2018-09-12T06:56:34Z CRITICAL Error: SWIG director method error. Error detected when calling 'RepoCB.fastestMirror'

Comment 1 Lukas Slebodnik 2018-09-12 07:01:30 UTC
I am not sure whether it is related but I can see some use after free error with valgrind

Extra commands: ['update', '-e', '10', '-d', '10', '-y', '--setopt=fastestmirror=1']
==111== Invalid read of size 1
==111==    at 0x483B8C6: __strlen_sse2 (vg_replace_strmem.c:460)
==111==    by 0x6D46918: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const*) (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x6CF0636: ??? (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x4B43FB2: PyCFunction_Call (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE3F82: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B009: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==  Address 0x60fcc90 is 0 bytes inside a block of size 69 free'd
==111==    at 0x4839EFC: operator delete(void*) (vg_replace_malloc.c:576)
==111==    by 0x6EB1684: libdnf::OptionBinds::OutOfRange::what() const (in /usr/lib64/libdnf.so.2)
==111==    by 0x6CF0611: ??? (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x4B43FB2: PyCFunction_Call (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE3F82: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B009: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==  Block was alloc'd at
==111==    at 0x4838E86: operator new(unsigned long) (vg_replace_malloc.c:334)
==111==    by 0x6E2B1BC: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long) (in /usr/lib64/libdnf.so.2)
==111==    by 0x6EB222D: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > tinyformat::format<char const*>(char const*, char const* const&) (in /usr/lib64/libdnf.so.2)
==111==    by 0x6EB166E: libdnf::OptionBinds::OutOfRange::what() const (in /usr/lib64/libdnf.so.2)
==111==    by 0x6CF0611: ??? (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x4B43FB2: PyCFunction_Call (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE3F82: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==
==111== Invalid read of size 1
==111==    at 0x483B8D4: __strlen_sse2 (vg_replace_strmem.c:460)
==111==    by 0x6D46918: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const*) (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x6CF0636: ??? (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x4B43FB2: PyCFunction_Call (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE3F82: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B009: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==  Address 0x60fcc91 is 1 bytes inside a block of size 69 free'd
==111==    at 0x4839EFC: operator delete(void*) (vg_replace_malloc.c:576)
==111==    by 0x6EB1684: libdnf::OptionBinds::OutOfRange::what() const (in /usr/lib64/libdnf.so.2)
==111==    by 0x6CF0611: ??? (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x4B43FB2: PyCFunction_Call (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE3F82: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B009: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==  Block was alloc'd at
==111==    at 0x4838E86: operator new(unsigned long) (vg_replace_malloc.c:334)
==111==    by 0x6E2B1BC: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long) (in /usr/lib64/libdnf.so.2)
==111==    by 0x6EB222D: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > tinyformat::format<char const*>(char const*, char const* const&) (in /usr/lib64/libdnf.so.2)
==111==    by 0x6EB166E: libdnf::OptionBinds::OutOfRange::what() const (in /usr/lib64/libdnf.so.2)
==111==    by 0x6CF0611: ??? (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x4B43FB2: PyCFunction_Call (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE3F82: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==
==111== Invalid read of size 2
==111==    at 0x483CCA0: memcpy@GLIBC_2.2.5 (vg_replace_strmem.c:1021)
==111==    by 0x6D4687F: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long) (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x6D46939: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const*) (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x6CF0636: ??? (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x4B43FB2: PyCFunction_Call (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE3F82: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==  Address 0x60fcc90 is 0 bytes inside a block of size 69 free'd
==111==    at 0x4839EFC: operator delete(void*) (vg_replace_malloc.c:576)
==111==    by 0x6EB1684: libdnf::OptionBinds::OutOfRange::what() const (in /usr/lib64/libdnf.so.2)
==111==    by 0x6CF0611: ??? (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x4B43FB2: PyCFunction_Call (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE3F82: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B009: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==  Block was alloc'd at
==111==    at 0x4838E86: operator new(unsigned long) (vg_replace_malloc.c:334)
==111==    by 0x6E2B1BC: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long) (in /usr/lib64/libdnf.so.2)
==111==    by 0x6EB222D: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > tinyformat::format<char const*>(char const*, char const* const&) (in /usr/lib64/libdnf.so.2)
==111==    by 0x6EB166E: libdnf::OptionBinds::OutOfRange::what() const (in /usr/lib64/libdnf.so.2)
==111==    by 0x6CF0611: ??? (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x4B43FB2: PyCFunction_Call (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE3F82: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==
==111== Invalid read of size 2
==111==    at 0x483CCAF: memcpy@GLIBC_2.2.5 (vg_replace_strmem.c:1021)
==111==    by 0x6D4687F: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long) (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x6D46939: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const*) (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x6CF0636: ??? (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x4B43FB2: PyCFunction_Call (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE3F82: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==  Address 0x60fcc94 is 4 bytes inside a block of size 69 free'd
==111==    at 0x4839EFC: operator delete(void*) (vg_replace_malloc.c:576)
==111==    by 0x6EB1684: libdnf::OptionBinds::OutOfRange::what() const (in /usr/lib64/libdnf.so.2)
==111==    by 0x6CF0611: ??? (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x4B43FB2: PyCFunction_Call (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE3F82: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B009: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==  Block was alloc'd at
==111==    at 0x4838E86: operator new(unsigned long) (vg_replace_malloc.c:334)
==111==    by 0x6E2B1BC: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long) (in /usr/lib64/libdnf.so.2)
==111==    by 0x6EB222D: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > tinyformat::format<char const*>(char const*, char const* const&) (in /usr/lib64/libdnf.so.2)
==111==    by 0x6EB166E: libdnf::OptionBinds::OutOfRange::what() const (in /usr/lib64/libdnf.so.2)
==111==    by 0x6CF0611: ??? (in /usr/lib64/python3.7/site-packages/libdnf/_conf.so)
==111==    by 0x4B43FB2: PyCFunction_Call (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE3F82: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4BE2AF8: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B236C7: _PyEval_EvalCodeWithName (in /usr/lib64/libpython3.7m.so.1.0)
==111==    by 0x4B6B1B0: _PyFunction_FastCallKeywords (in /usr/lib64/libpython3.7m.so.1.0)
==111==
repo: downloading from remote: rawhide-modular
Cleaning up.ular Rawhide - Developmental packages for the next Fedora rele 69% [==================================================-                      ]  45 kB/s |  15 kB     00:00 ETA
Error: SWIG director method error. Error detected when calling 'RepoCB.fastestMirror'

Comment 2 Lukas Slebodnik 2018-09-12 07:22:43 UTC
(In reply to Lukas Slebodnik from comment #1)
> I am not sure whether it is related but I can see some use after free error
> with valgrind
> 
> Extra commands: ['update', '-e', '10', '-d', '10', '-y',
> '--setopt=fastestmirror=1']
> ==111== Invalid read of size 1
> ==111==    at 0x483B8C6: __strlen_sse2 (vg_replace_strmem.c:460)
> ==111==    by 0x6D46918: std::__cxx11::basic_string<char,

Actually, it seems to be unrelated because they are reproducible even without '--setopt=fastestmirror=1'

I filed another BZ for that BZ1628065

Comment 3 Sumit Bhardwaj 2018-09-16 19:28:10 UTC
This is happening currently in Fedora 29 as well, since its using the same version of libdnf/dnf.

Comment 4 Jaroslav Rohel 2018-09-17 11:38:00 UTC
*** Bug 1629383 has been marked as a duplicate of this bug. ***

Comment 5 Jaroslav Rohel 2018-09-18 11:09:05 UTC
PR: https://github.com/rpm-software-management/dnf/pull/1212

Comment 6 Scott Cohen 2018-10-01 04:48:23 UTC
Is there any workaround for this issue other than manually installing the next DNF release (I'm assuming this issue doesn't affect installing packages)?

Comment 7 Alexander Mayorov 2018-10-01 07:34:10 UTC
(In reply to Scott Cohen from comment #6)
> Is there any workaround for this issue other than manually installing the
> next DNF release (I'm assuming this issue doesn't affect installing
> packages)?

In my case fastestmirror=1 is enabled by default via /etc/dnf/dnf.conf.

I get all recent updates successfully with temporary included '--setopt=fastestmirror=0' option in dnf command line, e.g.:
dnf upgrade --setopt=fastestmirror=0

The issue looks like fixed with dnf-3.6.1-1.fc29.


Note You need to log in before you can comment on or make changes to this bug.