From: Nathan Cutler Date: Thu, 24 Nov 2016 17:23:43 +0000 (+0100) Subject: osd: improve error message when FileStore op fails due to EPERM X-Git-Tag: v12.0.0~292^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f7723e59b6e10e1aef35543639e0ea1fcac65574;p=ceph.git osd: improve error message when FileStore op fails due to EPERM References: http://tracker.ceph.com/issues/18037 Signed-off-by: Nathan Cutler --- diff --git a/src/os/filestore/FileStore.cc b/src/os/filestore/FileStore.cc index 0d65187220a9..0d77e90437e6 100644 --- a/src/os/filestore/FileStore.cc +++ b/src/os/filestore/FileStore.cc @@ -3001,17 +3001,17 @@ void FileStore::_do_transaction( if (r == -ENOENT && (op->op == Transaction::OP_CLONERANGE || op->op == Transaction::OP_CLONE || - op->op == Transaction::OP_CLONERANGE2)) + op->op == Transaction::OP_CLONERANGE2)) { msg = "ENOENT on clone suggests osd bug"; - - if (r == -ENOSPC) + } else if (r == -ENOSPC) { // For now, if we hit _any_ ENOSPC, crash, before we do any damage // by partially applying transactions. msg = "ENOSPC handling not implemented"; - - if (r == -ENOTEMPTY) { + } else if (r == -ENOTEMPTY) { msg = "ENOTEMPTY suggests garbage data in osd data dir"; - } + } else if (r == -EPERM) { + msg = "EPERM suggests file(s) in osd data dir not owned by ceph user, or leveldb corruption"; + } derr << " error " << cpp_strerror(r) << " not handled on operation " << op << " (" << spos << ", or op " << spos.op << ", counting from 0)" << dendl;