Bug 1544407

Summary: 'dnf group list' fails with traceback when comps.xml is empty
Product: [Fedora] Fedora Reporter: Eva Mrakova <emrakova>
Component: dnfAssignee: rpm-software-management
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: 27CC: dmach, ignatenko, mblaha, mhatina, packaging-team-maint, rpm-software-management, vmukhame
Target Milestone: ---   
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: 2018-02-13 06:21:49 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 Eva Mrakova 2018-02-12 11:58:43 UTC
Description of problem:
'dnf group list' fails with traceback when comps.xml in an enabled repository is empty

Related bug 830739 has been reported for yum in the past.

Version-Release number of selected component (if applicable):
dnf-2.7.5-2.fc27.noarch

How reproducible:
always

Steps to Reproduce:
1. create a repo with empty comps.xml
   (e.g. in a directory with some .rpm files run
    # touch comps.xml
    # createrepo_c -g comps.xml .
    and create a .repo file with baseurl pointing to that directory)
2. run
   # dnf group list

Actual results:
# dnf --disablerepo=\* --enablerepo=dummyrepo group list
Last metadata expiration check: 0:18:35 ago on Mon 12 Feb 2018 06:33:00 AM EST.
Traceback (most recent call last):
  File "/usr/bin/dnf", line 58, in <module>
    main.user_main(sys.argv[1:], exit_code=True)
  File "/usr/lib/python3.6/site-packages/dnf/cli/main.py", line 179, in user_main
    errcode = main(args)
  File "/usr/lib/python3.6/site-packages/dnf/cli/main.py", line 64, in main
    return _main(base, args, cli_class, option_parser_class)
  File "/usr/lib/python3.6/site-packages/dnf/cli/main.py", line 99, in _main
    return cli_run(cli, base)
  File "/usr/lib/python3.6/site-packages/dnf/cli/main.py", line 115, in cli_run
    cli.run()
  File "/usr/lib/python3.6/site-packages/dnf/cli/cli.py", line 1014, in run
    return self.command.run()
  File "/usr/lib/python3.6/site-packages/dnf/cli/commands/group.py", line 375, in run
    self._grp_setup()
  File "/usr/lib/python3.6/site-packages/dnf/cli/commands/group.py", line 108, in _grp_setup
    self.base.read_comps(arch_filter=True)
  File "/usr/lib/python3.6/site-packages/dnf/base.py", line 550, in read_comps
    self._comps._add_from_xml_filename(decompressed)
  File "/usr/lib/python3.6/site-packages/dnf/comps.py", line 328, in _add_from_xml_filename
    ret = comps.fromxml_f(fn)
_libpycomps.ParserError: Fatal parser error


Expected results:
no traceback

Additional info:
/CoreOS/yum/Regression/bz830739-yum-langpacks-tracebacks-comps-xml-has-zero-length can help to create a reproducer

Comment 1 Marek Blaha 2018-02-13 06:21:49 UTC

*** This bug has been marked as a duplicate of bug 1537957 ***