Bug #10039
closedosd cann't entry up status with cpu 100%, when osd restart from out status.
0%
Description
ceph version: 0.80.6
platform : Redhat 6.5
Host: 3
osd node: 15 (5 per host)
operator:
1 start the ceph cluster;
2 shutdown a host;
3 after one day, restart the host;
4. the osd start , but entry up state, and all osd's cpu 100%;
then , gdb attach to osd, I find the FileStore::lfn_open return error.
int FileStore::lfn_open(coll_t cid,
const ghobject_t& oid,
bool create,
FDRef *outfd,
IndexedPath *path,
Index *index)
{
....
r = (*index)->lookup(oid, path, &exist);
if (r < 0) {
derr << "could not find " << oid << " in index: "
<< cpp_strerror(-r) << dendl;
goto fail;
}
r = ::open((*path)->path(), flags, 0644);
the ::open function return -1;
then I print path, I can find the path is:
(gdb) p *(CollectionIndex::Path *) 0x7f881c844160
$6 =
{
full_path = "/ceph-data/ceph-1/current/meta/DIR_5/osdmap.168__0_AC977195__none",
parent_ref = std::tr1::shared_ptr (count 2) 0x7f881c8464a0,
parent_coll = { static META_COLL = {
static META_COLL = <same as static member of an already seen type>,
str="meta"
},
str = "meta"
}
}
but I list the "/ceph-data/ceph-1/current/meta/DIR_5/" , can't find the file:
[root@sandstone0002 DIR_5]# ll osdmap*rw-r--r- 1 sdsadmin sdsadmin 17490 Nov 8 17:34 osdmap.883__0_AC94C795__none