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 #1

Updated by Patrick Seidensal over 5 years ago

  • Status changed from New to In Progress
Actions #2

Updated by Patrick Seidensal over 5 years ago

  • Description updated (diff)
Actions #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
Actions #4

Updated by Patrick Seidensal about 5 years ago

  • Status changed from In Progress to New
Actions #5

Updated by Patrick Seidensal about 5 years ago

  • Status changed from New to In Progress
  • Assignee set to Patrick Seidensal
Actions #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
Actions #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
Actions #8

Updated by Sage Weil about 5 years ago

  • Backport set to nautilus
Actions #9

Updated by Kefu Chai about 5 years ago

  • Status changed from Fix Under Review to Pending Backport
Actions #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
Actions #11

Updated by Lenz Grimmer about 5 years ago

  • Target version set to v15.0.0
Actions #12

Updated by Tatjana Dehler about 5 years ago

  • Status changed from Pending Backport to Resolved
Actions #13

Updated by Patrick Seidensal about 5 years ago

  • % Done changed from 90 to 100
Actions #14

Updated by Ernesto Puerta about 3 years ago

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

Also available in: Atom PDF