From: Ji Chen Date: Tue, 5 Jan 2016 08:22:10 +0000 (-0500) Subject: os/FileStore: print error to log on eio X-Git-Tag: v10.0.4~128^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c69a2aace459a4d07f1088b08679bac4a6e43f72;p=ceph.git os/FileStore: print error to log on eio when osd do backfillings, once read one file failed osd will assert failed, and never up again. so we need locate this file from log at level-0, delete it manully,start osd and let backfill go again. Signed-off-by: Ji Chen --- diff --git a/src/os/filestore/FileStore.cc b/src/os/filestore/FileStore.cc index 5cb73e7b01a3..a927e441d909 100644 --- a/src/os/filestore/FileStore.cc +++ b/src/os/filestore/FileStore.cc @@ -2959,7 +2959,10 @@ int FileStore::read( if (got < 0) { dout(10) << "FileStore::read(" << cid << "/" << oid << ") pread error: " << cpp_strerror(got) << dendl; lfn_close(fd); - assert(allow_eio || !m_filestore_fail_eio || got != -EIO); + if (!(allow_eio || !m_filestore_fail_eio || got != -EIO)) { + derr << "FileStore::read(" << cid << "/" << oid << ") pread error: " << cpp_strerror(got) << dendl; + assert(0 == "eio on pread"); + } return got; } bptr.set_length(got); // properly size the buffer