From f7723e59b6e10e1aef35543639e0ea1fcac65574 Mon Sep 17 00:00:00 2001 From: Nathan Cutler Date: Thu, 24 Nov 2016 18:23:43 +0100 Subject: [PATCH] osd: improve error message when FileStore op fails due to EPERM References: http://tracker.ceph.com/issues/18037 Signed-off-by: Nathan Cutler --- src/os/filestore/FileStore.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/os/filestore/FileStore.cc b/src/os/filestore/FileStore.cc index 0d65187220a..0d77e90437e 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; -- 2.39.5