Project

General

Profile

Actions

Bug #36086

closed

mgr/dashboard: "1 osds exist in the crush map but not in the osdmap" breaks OSD page

Added by Patrick Seidensal over 5 years ago. Updated about 3 years ago.

Status:
Resolved
Priority:
Normal
Category:
Component - OSDs
Target version:
% Done:

100%

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

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


Related issues 1 (0 open1 closed)

Copied to Dashboard - Backport #38885: nautilus: mgr/dashboard: "1 osds exist in the crush map but not in the osdmap" breaks OSD pageResolvedTatjana DehlerActions
Actions

Also available in: Atom PDF