Project

General

Profile

Actions

Bug #41675

closed

mgr/orchestrator: incorrect refs in progress event

Added by Kiefer Chang over 4 years ago. Updated over 4 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

  1. Generate an event in progress module. For example, use `ceph orchestrator osd create <host>:<dev>` to add a new OSD.
  2. Open Dashboard, there will be a `500 - Internal Server Error` popup.

The error happens when issuing `GET /api/summary` request to dashboard backend. Here is the traceback in mgr log:

[06/Sep/2019:02:37:08] HTTP Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/cherrypy/_cprequest.py", line 656, in respond
    response.body = self.handler()
  File "/usr/lib/python2.7/site-packages/cherrypy/lib/encoding.py", line 188, in __call__
    self.body = self.oldhandler(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/cherrypy/_cptools.py", line 221, in wrap
    return self.newhandler(innerfunc, *args, **kwargs)
  File "/usr/share/ceph/mgr/dashboard/services/exception.py", line 88, in dashboard_exception_handler
    return handler(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/cherrypy/_cpdispatch.py", line 34, in __call__
    return self.callable(*self.args, **self.kwargs)
  File "/usr/share/ceph/mgr/dashboard/controllers/__init__.py", line 645, in inner
    ret = func(*args, **kwargs)
  File "/usr/share/ceph/mgr/dashboard/controllers/summary.py", line 77, in __call__
    e, f = progress.get_progress_tasks()
  File "/usr/share/ceph/mgr/dashboard/services/progress.py", line 38, in get_progress_tasks
    'metadata': dict(ev['refs']),
ValueError: dictionary update sequence element #0 has length 12; 2 is required

Output of progress list:

$ ceph progress json
{
  "completed": [
    {
      "finished_at": 1567736422.365124,
      "message": "Creating OSD on node2:['vdb']",
      "started_at": 1567736422.261157,
      "id": "d6ac6dca-013e-4ea4-9da2-e4a1e684a27b",
      "refs": [
        "orchestrator" 
      ]
    }
  ],
  "events": []
}

According to comment in code, `refs` should contain a list of tuples. Dashboard backend converts `refs` to a dictionary. So `refs` should be a list of two-element tuple or a dictionary.

Actions #1

Updated by Kiefer Chang over 4 years ago

  • Status changed from New to Fix Under Review
  • Assignee set to Kiefer Chang
  • Pull request ID set to 30197
Actions #2

Updated by Kefu Chai over 4 years ago

  • Status changed from Fix Under Review to Resolved
Actions #3

Updated by Sage Weil over 4 years ago

  • Project changed from mgr to Orchestrator
  • Category deleted (orchestrator)
Actions

Also available in: Atom PDF