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 about 1 year ago. Updated 7 months ago.

Status:
Resolved
Priority:
Normal
Category:
dashboard/osds
Target version:
Start date:
09/19/2018
Due date:
% Done:

100%

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

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 mgr - 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 about 1 year ago

  • Status changed from New to In Progress

#2 Updated by Patrick Seidensal about 1 year ago

  • Description updated (diff)

#3 Updated by Patrick Seidensal about 1 year 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 9 months ago

  • Status changed from In Progress to New

#5 Updated by Patrick Seidensal 9 months ago

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

#6 Updated by Patrick Seidensal 8 months 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 8 months ago

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

#8 Updated by Sage Weil 8 months ago

  • Backport set to nautilus

#9 Updated by Kefu Chai 8 months ago

  • Status changed from Need Review to Pending Backport

#10 Updated by Nathan Cutler 8 months 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 7 months ago

  • Target version set to v15.0.0

#12 Updated by Tatjana Dehler 7 months ago

  • Status changed from Pending Backport to Resolved

#13 Updated by Patrick Seidensal 7 months ago

  • % Done changed from 90 to 100

Also available in: Atom PDF