Actions
Bug #36086
closedmgr/dashboard: "1 osds exist in the crush map but not in the osdmap" breaks OSD page
Status:
Resolved
Priority:
Normal
Assignee:
Category:
Component - OSDs
Target version:
% Done:
100%
Source:
Tags:
Backport:
nautilus
Regression:
No
Severity:
3 - minor
Reviewed:
Description
An error occurrs when marking an OSD down while the `noup` OSD flag is enabled and eventually removing the OSD. Some errors occur in the frontend and the OSD list is not shown anymore due to the created constellation. `ceph osd dump` isn't returning four OSDs anymore but three.
osds = self.get_osd_map()is technically the result of `ceph osd dump` and is used as base for collecting data about OSDs, hence one OSD can't be found to add data to it as the previous command didn't return all OSDs.
GET http://localhost:4200/api/osd
{ "status":"500 Internal Server Error", "version":"10.2.1", "detail":"The server encountered an unexpected condition which prevented it from fulfilling the request.", "traceback":"Traceback (most recent call last):\n File \"/usr/lib/python2.7/site-packages/cherrypy/_cprequest.py\", line 670, in respond\n response.body = self.handler()\n File \"/usr/lib/python2.7/site-packages/cherrypy/lib/encoding.py\", line 221, in __call__\n self.body = self.oldhandler(*args, **kwargs)\n File \"/usr/lib/python2.7/site-packages/cherrypy/_cptools.py\", line 237, in wrap\n return self.newhandler(innerfunc, *args, **kwargs)\n File \"/ceph/src/pybind/mgr/dashboard/services/exception.py\", line 88, in dashboard_exception_handler\n return handler(*args, **kwargs)\n File \"/usr/lib/python2.7/site-packages/cherrypy/_cpdispatch.py\", line 60, in __call__\n return self.callable(*self.args, **self.kwargs)\n File \"/ceph/src/pybind/mgr/dashboard/controllers/__init__.py\", line 536, in inner\n ret = func(*args, **kwargs)\n File \"/ceph/src/pybind/mgr/dashboard/controllers/__init__.py\", line 716, in wrapper\n return func(*vpath, **params)\n File \"/ceph/src/pybind/mgr/dashboard/controllers/osd.py\", line 24, in list\n osds[o[0]].update({'tree': o[1]})\nKeyError: '1'\n" }
Traceback (most recent call last): File \"/usr/lib/python2.7/site-packages/cherrypy/_cprequest.py\", line 670, in respond response.body = self.handler() File \"/usr/lib/python2.7/site-packages/cherrypy/lib/encoding.py\", line 221, in __call__ self.body = self.oldhandler(*args, **kwargs) File \"/usr/lib/python2.7/site-packages/cherrypy/_cptools.py\", line 237, in wrap return self.newhandler(innerfunc, *args, **kwargs) File \"/ceph/src/pybind/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 60, in __call__ return self.callable(*self.args, **self.kwargs) File \"/ceph/src/pybind/mgr/dashboard/controllers/__init__.py\", line 536, in inner ret = func(*args, **kwargs) File \"/ceph/src/pybind/mgr/dashboard/controllers/__init__.py\", line 716, in wrapper return func(*vpath, **params) File \"/ceph/src/pybind/mgr/dashboard/controllers/osd.py\", line 24, in list osds[o[0]].update({'tree': o[1]}) KeyError: '1'
`ceph -s` contains:
1 osds exist in the crush map but not in the osdmap
Actions