Description of problem: Customer tried to comment out XML lines with #, leading to a wrongly formatted file in /etc/firewalld/direct.xml. They disabled the service afterwards. Leapp tries to parse that file but should ignore the ParseError like it is done if the file is missing (IOError). Version-Release number of selected component (if applicable): leapp-upgrade-el7toel8-0.17.0-1.el7_9 How reproducible: Always Steps to Reproduce: 1. cat /etc/firewalld/direct.xml <?xml version="1.0" encoding="utf-8"?> #<direct> # <rule priority="1" table="filter" ipv="ipv4" chain="OUTPUT">-j DROP</rule> #</direct> 2. leapp preupgrade Actual results: Process Process-234: Traceback (most recent call last): File "/usr/lib64/python2.7/multiprocessing/process.py", line 258, in _bootstrap self.run() File "/usr/lib64/python2.7/multiprocessing/process.py", line 114, in run self._target(*self._args, **self._kwargs) File "/usr/lib/python2.7/site-packages/leapp/repository/actor_definition.py", line 72, in _do_run actor_instance.run(*args, **kwargs) File "/usr/lib/python2.7/site-packages/leapp/actors/__init__.py", line 289, in run self.process(*args) File "/usr/share/leapp-repository/repositories/system_upgrade/el7toel8/actors/firewalldfactsactor/actor.py", line 33, in process tree = ElementTree.parse('/etc/firewalld/direct.xml') File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 1182, in parse tree.parse(source, parser) File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 656, in parse parser.feed(data) File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 1642, in feed self._raiseerror(v) File "/usr/lib64/python2.7/xml/etree/ElementTree.py", line 1506, in _raiseerror raise err ParseError: not well-formed (invalid token): line 2, column 1 ====================================================================================================== Actor firewalld_facts_actor unexpectedly terminated with exit code: 1 - Please check the above details ====================================================================================================== Expected results: Ignore that ParseError, possibly with a warning. Additional info: 32 try: 33 tree = ElementTree.parse('/etc/firewalld/direct.xml') 34 root = tree.getroot() 35 facts.ebtablesTablesInUse = firewalldfactsactor.getEbtablesTablesInUse(root) 36 except IOError: 37 pass