Skip to content

parse_template errors causes cli hanging #28

Description

@JohannesGarm

Trying to parse a template with syntax errors causes the CLI to hang. After closing with CTRL+C, the cli works again but it would be nice if a more informative error was presented.

pyapi log:

Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]: pyserver[449756] client.py:83: Catched an module exception
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]: Traceback (most recent call last):
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:   File "/usr/lib/python3.10/xml/sax/expatreader.py", line 217, in feed
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:     self._parser.Parse(data, isFinal)
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]: xml.parsers.expat.ExpatError: mismatched tag: line 7, column 6
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]: During handling of the above exception, another exception occurred:
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]: Traceback (most recent call last):
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:   File "/usr/local/lib/python3.10/dist-packages/clixon_pyapi-1.0.0-py3.10.egg/clixon/modules.py", line 49, in run_modules
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:     module.setup(root, logger, instance=instance)
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:   File "/usr/local/share/clixon/controller/modules/ipclos/ipclos.py", line 78, in setup
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:     apply_baseline(root, service_instance, leaf, asn, neighbors_asn_elements, log)
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:   File "/usr/local/share/clixon/controller/modules/ipclos/ipclos.py", line 92, in apply_baseline
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:     baseline = parse_template(
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:   File "/usr/local/lib/python3.10/dist-packages/clixon_pyapi-1.0.0-py3.10.egg/clixon/parser.py", line 202, in parse_template
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:     return parse_string(template)
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:   File "/usr/local/lib/python3.10/dist-packages/clixon_pyapi-1.0.0-py3.10.egg/clixon/parser.py", line 136, in parse_string
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:     parser.parse(StringIO(xmlstr))
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:   File "/usr/lib/python3.10/xml/sax/expatreader.py", line 111, in parse
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:     xmlreader.IncrementalParser.parse(self, source)
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:   File "/usr/lib/python3.10/xml/sax/xmlreader.py", line 125, in parse
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:     self.feed(buffer)
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:   File "/usr/lib/python3.10/xml/sax/expatreader.py", line 221, in feed
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:     self._err_handler.fatalError(exc)
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:   File "/usr/lib/python3.10/xml/sax/handler.py", line 38, in fatalError
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:     raise exception
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]: xml.sax._exceptions.SAXParseException: <unknown>:7:6: mismatched tag
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]: During handling of the above exception, another exception occurred:
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]: Traceback (most recent call last):
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:   File "/usr/local/lib/python3.10/dist-packages/clixon_pyapi-1.0.0-py3.10.egg/clixon/client.py", line 78, in services_commit_cb
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:     run_modules(modules, service_name, instance)
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:   File "/usr/local/lib/python3.10/dist-packages/clixon_pyapi-1.0.0-py3.10.egg/clixon/modules.py", line 54, in run_modules
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]:     raise ModuleError(e)
Jun 04 11:35:46 nsolab-02 clixon_server.py[449756]: clixon.modules.ModuleError: <unknown>:7:6: mismatched tag

backend log:

Jun 04 11:35:46 nsolab-02 clixon_backend[449121]: Jun  4 11:35:46.128565: xml_parse_bslash: 412: XML error: Sanity check failed: unknown vs reason: XML parse error
Jun 04 11:35:46 nsolab-02 clixon_backend[449121]: xml_parse_bslash: 412: XML error: Sanity check failed: unknown vs reason: XML parse error

To reproduce, simply introduce a faulty xml tag into your template and try to commit a service which uses that template in a parse_template call.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions