Bug #36086
Updated by Patrick Seidensal over 5 years ago
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.
<pre> osds = self.get_osd_map()
</pre> 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.
<pre>GET http://localhost:4200/api/osd</pre>
<pre>
{
"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"
}
</pre>
<pre>
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'
</pre>
`ceph -s` contains:
<pre>1 osds exist in the crush map but not in the osdmap</pre>