Bugzilla (bugzilla.redhat.com) will be under maintenance for infrastructure upgrades and will not be available on July 31st between 12:30 AM - 05:30 AM UTC. We appreciate your understanding and patience. You can follow status.redhat.com for details.
Bug 1572691 - dnf/yum4 fails with a traceback
Summary: dnf/yum4 fails with a traceback
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf
Version: 28
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: rpm-software-management
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-04-27 15:13 UTC by Jakub Mazanek
Modified: 2018-07-25 13:00 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-07-25 13:00:31 UTC
Type: Bug


Attachments (Terms of Use)

Description Jakub Mazanek 2018-04-27 15:13:43 UTC
Description of problem:

When running the dnf/yum4 on RHEL 7 it fails with a traceback and/ or dumping a memory table. Issue seems to be with a dependency python2-modulemd



Version-Release number of selected component (if applicable):

[root@desktop1 yum.repos.d]# rpm -q yum4
yum4-2.7.5-10.el7.noarch
[root@desktop1 yum.repos.d]# rpm -q dnf
dnf-2.7.5-10.el7.noarch
[root@desktop1 yum.repos.d]# rpm -q python2-modulemd
python2-modulemd-1.3.3-2.el7.noarch

How reproducible:
Always at RHEL 7

Steps to Reproduce:
1.
2.
3.

Actual results:

root@desktop1 yum.repos.d]# yum4 distro-sync --allowerasing --nogpgcheck
Last metadata expiration check: 20:38:56 ago on Thu 26 Apr 2018 04:44:29 PM CEST.
Traceback (most recent call last):
  File "/usr/bin/yum4", line 58, in <module>
    main.user_main(sys.argv[1:], exit_code=True)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 179, in user_main
    errcode = main(args)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 64, in main
    return _main(base, args, cli_class, option_parser_class)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 99, in _main
    return cli_run(cli, base)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 115, in cli_run
    cli.run()
  File "/usr/lib/python2.7/site-packages/dnf/cli/cli.py", line 1015, in run
    self._process_demands()
  File "/usr/lib/python2.7/site-packages/dnf/cli/cli.py", line 768, in _process_demands
    load_available_repos=self.demands.available_repos)
  File "/usr/lib/python2.7/site-packages/dnf/base.py", line 454, in fill_sack
    self._setup_modules()
  File "/usr/lib/python2.7/site-packages/dnf/base.py", line 217, in _setup_modules
    module_metadata = ModuleMetadataLoader(repo).load()
  File "/usr/lib/python2.7/site-packages/dnf/module/metadata_loader.py", line 53, in load
    return modulemd.loads_all(modules_yaml)
  File "/usr/lib/python2.7/site-packages/modulemd/_init_.py", line 99, in loads_all
    m.loadd(doc)
  File "/usr/lib/python2.7/site-packages/modulemd/_init_.py", line 229, in loadd
    raise ValueError("The supplied metadata version isn't supported")
ValueError: The supplied metadata version isn't supported

when trying to use yum4/dnf for a package query:

[root@desktop1 yum.repos.d]# yum4 list available | grep python
Traceback (most recent call last):
  File "/usr/bin/yum4", line 58, in <module>
    main.user_main(sys.argv[1:], exit_code=True)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 179, in user_main
    errcode = main(args)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 64, in main
    return _main(base, args, cli_class, option_parser_class)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 99, in _main
    return cli_run(cli, base)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 115, in cli_run
    cli.run()
  File "/usr/lib/python2.7/site-packages/dnf/cli/cli.py", line 1015, in run
    self._process_demands()
  File "/usr/lib/python2.7/site-packages/dnf/cli/cli.py", line 768, in _process_demands
    load_available_repos=self.demands.available_repos)
  File "/usr/lib/python2.7/site-packages/dnf/base.py", line 454, in fill_sack
    self._setup_modules()
  File "/usr/lib/python2.7/site-packages/dnf/base.py", line 217, in _setup_modules
    module_metadata = ModuleMetadataLoader(repo).load()
  File "/usr/lib/python2.7/site-packages/dnf/module/metadata_loader.py", line 53, in load
    return modulemd.loads_all(modules_yaml)
  File "/usr/lib/python2.7/site-packages/modulemd/_init_.py", line 99, in loads_all
    m.loadd(doc)
  File "/usr/lib/python2.7/site-packages/modulemd/_init_.py", line 229, in loadd
    raise ValueError("The supplied metadata version isn't supported")
ValueError: The supplied metadata version isn't supported
*** Error in `/usr/bin/python': corrupted double-linked list (not small): 0x0000000002d21330 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x7f574)[0x7fb1f10da574]
/lib64/libc.so.6(+0x81534)[0x7fb1f10dc534]
/lib64/libpython2.7.so.1.0(PyInt_ClearFreeList+0x11c)[0x7fb1f1dc092c]
/lib64/libpython2.7.so.1.0(+0x114cdf)[0x7fb1f1e61cdf]
/lib64/libpython2.7.so.1.0(PyGC_Collect+0x28)[0x7fb1f1e620b8]
/lib64/libpython2.7.so.1.0(Py_Finalize+0xf9)[0x7fb1f1e4f1c9]
/lib64/libpython2.7.so.1.0(Py_Main+0x6a5)[0x7fb1f1e60585]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7fb1f107d3d5]
/usr/bin/python[0x40066e]
======= Memory map: ========
00400000-00401000 r-xp 00000000 fd:00 12708052                           /usr/bin/python2.7
00600000-00601000 r--p 00000000 fd:00 12708052                           /usr/bin/python2.7
00601000-00602000 rw-p 00001000 fd:00 12708052                           /usr/bin/python2.7
01eb4000-031d8000 rw-p 00000000 00:00 0                                  [heap]
7fb1d4000000-7fb1d4021000 rw-p 00000000 00:00 0
7fb1d4021000-7fb1d8000000 ---p 00000000 00:00 0
7fb1da92f000-7fb1db5ef000 rw-p 00000000 00:00 0
7fb1db5ef000-7fb1db5f3000 r-xp 00000000 fd:00 12668997                   /usr/lib64/python2.7/lib-dynload/termios.so
7fb1db5f3000-7fb1db7f2000 ---p 00004000 fd:00 12668997                   /usr/lib64/python2.7/lib-dynload/termios.so
7fb1db7f2000-7fb1db7f3000 r--p 00003000 fd:00 12668997                   /usr/lib64/python2.7/lib-dynload/termios.so
7fb1db7f3000-7fb1db7f5000 rw-p 00004000 fd:00 12668997                   /usr/lib64/python2.7/lib-dynload/termios.so
7fb1db7f5000-7fb1db81a000 r-xp 00000000 fd:00 16456                      /usr/lib64/libtinfo.so.5.9
7fb1db81a000-7fb1dba1a000 ---p 00025000 fd:00 16456                      /usr/lib64/libtinfo.so.5.9
7fb1dba1a000-7fb1dba1e000 r--p 00025000 fd:00 16456                      /usr/lib64/libtinfo.so.5.9
7fb1dba1e000-7fb1dba1f000 rw-p 00029000 fd:00 16456                      /usr/lib64/libtinfo.so.5.9
7fb1dba1f000-7fb1dba56000 r-xp 00000000 fd:00 16448                      /usr/lib64/libncursesw.so.5.9
7fb1dba56000-7fb1dbc55000 ---p 00037000 fd:00 16448                      /usr/lib64/libncursesw.so.5.9
7fb1dbc55000-7fb1dbc56000 r--p 00036000 fd:00 16448                      /usr/lib64/libncursesw.so.5.9
7fb1dbc56000-7fb1dbc57000 rw-p 00037000 fd:00 16448                      /usr/lib64/libncursesw.so.5.9
7fb1dbc57000-7fb1dbc69000 r-xp 00000000 fd:00 12700123                   /usr/lib64/python2.7/lib-dynload/_curses.so
7fb1dbc69000-7fb1dbe68000 ---p 00012000 fd:00 12700123                   /usr/lib64/python2.7/lib-dynload/_curses.so
7fb1dbe68000-7fb1dbe69000 r--p 00011000 fd:00 12700123                   /usr/lib64/python2.7/lib-dynload/_curses.so
7fb1dbe69000-7fb1dbe6b000 rw-p 00012000 fd:00 12700123                   /usr/lib64/python2.7/lib-dynload/_curses.so
7fb1dbe6b000-7fb1dbf2b000 rw-p 00000000 00:00 0
7fb1dbf2b000-7fb1dbf33000 r-xp 00000000 fd:00 12700129                   /usr/lib64/python2.7/lib-dynload/_json.so
7fb1dbf33000-7fb1dc132000 ---p 00008000 fd:00 12700129                   /usr/lib64/python2.7/lib-dynload/_json.so
7fb1dc132000-7fb1dc133000 r--p 00007000 fd:00 12700129                   /usr/lib64/python2.7/lib-dynload/_json.so
7fb1dc133000-7fb1dc134000 rw-p 00008000 fd:00 12700129                   /usr/lib64/python2.7/lib-dynload/_json.so
7fb1dc134000-7fb1dc174000 rw-p 00000000 00:00 0
7fb1dc174000-7fb1dc185000 r-xp 00000000 fd:00 12700133                   /usr/lib64/python2.7/lib-dynload/_sqlite3.so
7fb1dc185000-7fb1dc385000 ---p 00011000 fd:00 12700133                   /usr/lib64/python2.7/lib-dynload/_sqlite3.so
7fb1dc385000-7fb1dc386000 r--p 00011000 fd:00 12700133                   /usr/lib64/python2.7/lib-dynload/_sqlite3.so
7fb1dc386000-7fb1dc388000 rw-p 00012000 fd:00 12700133                   /usr/lib64/python2.7/lib-dynload/_sqlite3.so
7fb1dc388000-7fb1dc3c8000 rw-p 00000000 00:00 0
7fb1dc3c8000-7fb1dc3cc000 r-xp 00000000 fd:00 127280                     /usr/lib64/librpmsign.so.1.2.2
7fb1dc3cc000-7fb1dc5cb000 ---p 00004000 fd:00 127280                     /usr/lib64/librpmsign.so.1.2.2
7fb1dc5cb000-7fb1dc5cc000 r--p 00003000 fd:00 127280                     /usr/lib64/librpmsign.so.1.2.2
7fb1dc5cc000-7fb1dc5cd000 rw-p 00004000 fd:00 127280                     /usr/lib64/librpmsign.so.1.2.2
7fb1dc5cd000-7fb1dc5ce000 r-xp 00000000 fd:00 4603779                    /usr/lib64/python2.7/site-packages/rpm/_rpms.so
7fb1dc5ce000-7fb1dc7cd000 ---p 00001000 fd:00 4603779                    /usr/lib64/python2.7/site-packages/rpm/_rpms.so
7fb1dc7cd000-7fb1dc7ce000 r--p 00000000 fd:00 4603779                    /usr/lib64/python2.7/site-packages/rpm/_rpms.so
7fb1dc7ce000-7fb1dc7cf000 rw-p 00001000 fd:00 4603779                    /usr/lib64/python2.7/site-packages/rpm/_rpms.so
7fb1dc7cf000-7fb1dc7ea000 r-xp 00000000 fd:00 85814                      /usr/lib64/libmagic.so.1.0.0
7fb1dc7ea000-7fb1dc9ea000 ---p 0001b000 fd:00 85814                      /usr/lib64/libmagic.so.1.0.0
7fb1dc9ea000-7fb1dc9eb000 r--p 0001b000 fd:00 85814                      /usr/lib64/libmagic.so.1.0.0
7fb1dc9eb000-7fb1dc9ec000 rw-p 0001c000 fd:00 85814                      /usr/lib64/libmagic.so.1.0.0
7fb1dc9ec000-7fb1dca0d000 r-xp 00000000 fd:00 109054                     /usr/lib64/librpmbuild.so.3.2.2
7fb1dca0d000-7fb1dcc0c000 ---p 00021000 fd:00 109054                     /usr/lib64/librpmbuild.so.3.2.2
7fb1dcc0c000-7fb1dcc0e000 r--p 00020000 fd:00 109054                     /usr/lib64/librpmbuild.so.3.2.2
7fb1dcc0e000-7fb1dcc0f000 rw-p 00022000 fd:00 109054                     /usr/lib64/librpmbuild.so.3.2.2
7fb1dcc0f000-7fb1dcc10000 rw-p 00000000 00:00 0
7fb1dcc10000-7fb1dcc13000 r-xp 00000000 fd:00 4603772                    /usr/lib64/python2.7/site-packages/rpm/_rpmb.so
7fb1dcc13000-7fb1dce12000 ---p 00003000 fd:00 4603772                    /usr/lib64/python2.7/site-packages/rpm/_rpmb.so
7fb1dce12000-7fb1dce13000 r--p 00002000 fd:00 4603772                    /usr/lib64/python2.7/site-packages/rpm/_rpmb.so
7fb1dce13000-7fb1dce14000 rw-p 00003000 fd:00 4603772                    /usr/lib64/python2.7/site-packages/rpm/_rpmb.so
7fb1dce14000-7fb1dce96000 r-xp 00000000 fd:00 14704                      /usr/lib64/libfreeblpriv3.so
7fb1dce96000-7fb1dd095000 ---p 00082000 fd:00 14704                      /usr/lib64/libfreeblpriv3.so
7fb1dd095000-7fb1dd097000 r--p 00081000 fd:00 14704                      /usr/lib64/libfreeblpriv3.so

7fb1dd097000-7fb1dd098000 rw-p 00083000 fd:00 14704                      /usr/lib64/libfreeblpriv3.so[root@desktop1 yum.repos.d]# 


Expected results:


Additional info:

Comment 1 Daniel Mach 2018-04-30 11:00:29 UTC
This is expected.
dnf-2.7.5-10 uses python-modulemd (that supports metadata v1)
while available metadata is v2.

I've filed following issue to unblock getting libmodulemd to RHEL / CentOS:
https://github.com/fedora-modularity/libmodulemd/issues/60

Comment 2 Michal Bocek 2018-05-16 11:53:31 UTC
Daniel, what are the next steps? Is there any workaround for now? E.g. to install some version of some pkg manually? Or should the old version of yum4 work?

Comment 3 Daniel Mach 2018-05-17 14:10:17 UTC
You'll have to wait until we build a new dnf incl. new libmodulemd for RHEL 7.
That may take some time, because libmodulemd is still not available; see comment#1

Is it blocking you or could you use latest DNF on Fedora until we have the new build ready?

Comment 4 Pavel Odvody 2018-05-18 10:56:11 UTC
(In reply to Daniel Mach from comment #3)
> You'll have to wait until we build a new dnf incl. new libmodulemd for RHEL
> 7.
> That may take some time, because libmodulemd is still not available; see
> comment#1
> 
> Is it blocking you or could you use latest DNF on Fedora until we have the
> new build ready?

Yes, this is *hard* blocker for us, we need to start testing the whole E2E flow w/o any hacks.

Comment 5 Michal Bocek 2018-05-18 13:31:49 UTC
In the end, we may not need yum4 on RHEL7 for doing the upgrade to RHEL8 because anyway the underlying rpm does not support rich deps.
We are figuring out the options now. Our goal is to resolve the list of RHEL8 pkgs to install together with their dependencies, download them, boot into RHEL8 initramfs and install the pkgs.
One option we see is to use libsolv on RHEL7 for the resolving part and rpm in RHEL8 initramfs for installation.
I'm setting up a meeting about that to early next week.

Comment 6 Michal Bocek 2018-06-05 17:52:05 UTC
Dan, the issue https://github.com/fedora-modularity/libmodulemd/issues/60 has been closed. Is it going to affect resolution of this issue?

Comment 7 Daniel Mach 2018-06-12 11:03:27 UTC
You can expect a new build in several days, it seems we're unblocked now.

Comment 8 Martin Hatina 2018-07-25 13:00:31 UTC
Newest dnf-2.7.5-17.el7 should work fine.


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