write and read error handling problems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



hi,all
About OSD read ops, if osd got errors, it just return,
that may lead memory leak. we patched it.
diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc
index 2ab21bb..21fbca7 100644
--- a/src/osd/ReplicatedPG.cc
+++ b/src/osd/ReplicatedPG.cc
@@ -588,8 +588,18 @@ void ReplicatedPG::do_op(MOSDOp *op)
     obc->ondisk_read_unlock();
   }

-  if (result == -EAGAIN)
+  if (result == -EAGAIN) {
+    delete ctx;
     return;
+  }
please have a check!

So i'm confused about the Error handling strategy of write/read
operations in OSD.
If the ceph just return when encountered errors, pass the work to client?
Let's take an example of writing files. Client send request to write 4MB file,
and OSD first write the osd journal, then return commit msg to Client.
But, if the write file op was interrupted by the borken disk sector or
other errors, that means write ops failed. What does the OSD going to
do? Replay it from the former writen journal item? or other methods?

thanks!
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux