Project

General

Profile

Bug #36086

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 almost 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

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

History

#1 Updated by Patrick Seidensal over 5 years ago

  • Status changed from New to In Progress

#2 Updated by Patrick Seidensal over 5 years ago

  • Description updated (diff)

#3 Updated by Patrick Seidensal over 5 years ago

  • Subject changed from mgr/dashboard: Error when getting OSD data to mgr/dashboard: Error when retrieving OSD data - OSD list broken

#4 Updated by Patrick Seidensal about 5 years ago

  • Status changed from In Progress to New

#5 Updated by Patrick Seidensal about 5 years ago

  • Status changed from New to In Progress
  • Assignee set to Patrick Seidensal

#6 Updated by Patrick Seidensal about 5 years ago

  • Subject changed from mgr/dashboard: Error when retrieving OSD data - OSD list broken to mgr/dashboard: "1 osds exist in the crush map but not in the osdmap" breaks OSD page

#7 Updated by Patrick Seidensal about 5 years ago

  • Status changed from In Progress to Fix Under Review
  • % Done changed from 0 to 90
  • Pull request ID set to 26836

#8 Updated by Sage Weil about 5 years ago

  • Backport set to nautilus

#9 Updated by Kefu Chai about 5 years ago

  • Status changed from Fix Under Review to Pending Backport

#10 Updated by Nathan Cutler about 5 years ago

  • Copied to Backport #38885: nautilus: mgr/dashboard: "1 osds exist in the crush map but not in the osdmap" breaks OSD page added

#11 Updated by Lenz Grimmer almost 5 years ago

  • Target version set to v15.0.0

#12 Updated by Tatjana Dehler almost 5 years ago

  • Status changed from Pending Backport to Resolved

#13 Updated by Patrick Seidensal almost 5 years ago

  • % Done changed from 90 to 100

#14 Updated by Ernesto Puerta almost 3 years ago

  • Project changed from mgr to Dashboard
  • Category changed from 138 to Component - OSDs

Also available in: Atom PDF