Uploaded image for project: 'MariaDB ColumnStore'
  1. MariaDB ColumnStore
  2. MCOL-5698

cmapi service doesn't show a clear error if config file is malformed

    XMLWordPrintable

Details

    • Task
    • Status: Open (View Workflow)
    • Minor
    • Resolution: Unresolved
    • None
    • None
    • cmapi

    Description

      Edit cmapi_server.conf adding this line:

      x = y
      

      I believe this syntax is wrong because of the missing quotes. If you add the quotes, cmapi service will start normally.

      Now try to restart. It will fail, so let's see the error messages.

      systemctl restart mariadb-columnstore-cmapi
      journalctl -u mariadb-columnstore-cmapi.service
      

      And the output is:

      Mar 20 18:26:01 cs1 systemd[1]: Starting MariaDB ColumnStore CMAPI: cluster management API and command line tool....
      Mar 20 18:26:01 cs1 python3[44192]: 20/Mar/2024 18:26:01 [INFO] (root) {MainThread} CMAPI Version: 23.10.0.1
      Mar 20 18:26:01 cs1 python3[44192]: Traceback (most recent call last):
      Mar 20 18:26:01 cs1 python3[44192]:   File "/usr/share/columnstore/cmapi/deps/cherrypy/lib/reprconf.py", line 182, in as_dict
      Mar 20 18:26:01 cs1 python3[44192]:     value = unrepr(value)
      Mar 20 18:26:01 cs1 python3[44192]:   File "/usr/share/columnstore/cmapi/deps/cherrypy/lib/reprconf.py", line 371, in unrepr
      Mar 20 18:26:01 cs1 python3[44192]:     return b.build(obj)
      Mar 20 18:26:01 cs1 python3[44192]:   File "/usr/share/columnstore/cmapi/deps/cherrypy/lib/reprconf.py", line 221, in build
      Mar 20 18:26:01 cs1 python3[44192]:     return m(o)
      Mar 20 18:26:01 cs1 python3[44192]:   File "/usr/share/columnstore/cmapi/deps/cherrypy/lib/reprconf.py", line 333, in build_Name
      Mar 20 18:26:01 cs1 python3[44192]:     raise TypeError('unrepr could not resolve the name %s' % repr(name))
      Mar 20 18:26:01 cs1 python3[44192]: TypeError: unrepr could not resolve the name 'y'
      Mar 20 18:26:01 cs1 python3[44192]: During handling of the above exception, another exception occurred:
      Mar 20 18:26:01 cs1 python3[44192]: Traceback (most recent call last):
      Mar 20 18:26:01 cs1 python3[44192]:   File "/usr/share/columnstore/cmapi/python/lib/python3.9/runpy.py", line 197, in _run_module_as_main
      Mar 20 18:26:01 cs1 python3[44192]:     return _run_code(code, main_globals, None,
      Mar 20 18:26:01 cs1 python3[44192]:   File "/usr/share/columnstore/cmapi/python/lib/python3.9/runpy.py", line 87, in _run_code
      Mar 20 18:26:01 cs1 python3[44192]:     exec(code, run_globals)
      Mar 20 18:26:01 cs1 python3[44192]:   File "/usr/share/columnstore/cmapi/cmapi_server/__main__.py", line 202, in <module>
      Mar 20 18:26:01 cs1 python3[44192]:     app = cherrypy.tree.mount(root=None, config=CMAPI_CONF_PATH)
      Mar 20 18:26:01 cs1 python3[44192]:   File "/usr/share/columnstore/cmapi/deps/cherrypy/_cptree.py", line 248, in mount
      Mar 20 18:26:01 cs1 python3[44192]:     app.merge(config)
      Mar 20 18:26:01 cs1 python3[44192]:   File "/usr/share/columnstore/cmapi/deps/cherrypy/_cptree.py", line 114, in merge
      Mar 20 18:26:01 cs1 python3[44192]:     _cpconfig.merge(self.config, config)
      Mar 20 18:26:01 cs1 python3[44192]:   File "/usr/share/columnstore/cmapi/deps/cherrypy/_cpconfig.py", line 141, in merge
      Mar 20 18:26:01 cs1 python3[44192]:     for section, value_map in reprconf.Parser.load(other).items():
      Mar 20 18:26:01 cs1 python3[44192]:   File "/usr/share/columnstore/cmapi/deps/cherrypy/lib/reprconf.py", line 208, in load
      Mar 20 18:26:01 cs1 python3[44192]:     return Parser().dict_from_file(input) if is_file else input.copy()
      Mar 20 18:26:01 cs1 python3[44192]:   File "/usr/share/columnstore/cmapi/deps/cherrypy/lib/reprconf.py", line 197, in dict_from_file
      Mar 20 18:26:01 cs1 python3[44192]:     return self.as_dict()
      Mar 20 18:26:01 cs1 python3[44192]:   File "/usr/share/columnstore/cmapi/deps/cherrypy/lib/reprconf.py", line 188, in as_dict
      Mar 20 18:26:01 cs1 python3[44192]:     raise ValueError(msg, x.__class__.__name__, x.args)
      Mar 20 18:26:01 cs1 python3[44192]: ValueError: ("Config error in section: 'global', option: 'x', value: 'y'. Config values must be valid Python.", 'TypeError', ("unrepr could not resolve the name 'y'",))
      Mar 20 18:26:01 cs1 systemd[1]: mariadb-columnstore-cmapi.service: Main process exited, code=exited, status=1/FAILURE
      Mar 20 18:26:17 cs1 sh[44194]: Waiting CMAPI to finish startup..1..2..3..4..5..6..7..8..9..10..11..12..13..14..15
      Mar 20 18:26:17 cs1 sh[44194]: CMAPI not ready after waiting 15 seconds. Check log file for further details.
      Mar 20 18:26:17 cs1 systemd[1]: mariadb-columnstore-cmapi.service: Failed with result 'exit-code'.
      Mar 20 18:26:17 cs1 systemd[1]: Failed to start MariaDB ColumnStore CMAPI: cluster management API and command line tool..
      

      It would help to see a clear exception.

      Attachments

        Issue Links

          Activity

            People

              alan.mologorsky Alan Mologorsky
              f_razzoli Federico Razzoli
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.