Project

General

Profile

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>

Back