Actions
Bug #41675
closedmgr/orchestrator: incorrect refs in progress event
% 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
- Generate an event in progress module. For example, use `ceph orchestrator osd create <host>:<dev>` to add a new OSD.
- 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.
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
Updated by Kefu Chai over 4 years ago
- Status changed from Fix Under Review to Resolved
Updated by Sage Weil over 4 years ago
- Project changed from mgr to Orchestrator
- Category deleted (
orchestrator)
Actions