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:
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
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?
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?
(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.
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.
Dan, the issue https://github.com/fedora-modularity/libmodulemd/issues/60 has been closed. Is it going to affect resolution of this issue?
You can expect a new build in several days, it seems we're unblocked now.
Newest dnf-2.7.5-17.el7 should work fine.