Message ID | BANLkTinQmX5HnzaxQE11Mst9Pjei7j90FA@mail.gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 05/27/2011 10:18 PM, Gregory Farnum wrote: > Can you check out the recoverywq_fix branch and see if that prevents > this issue? Or just apply the patch I've included below. :) > -Greg > ok, I will write about the result. WBR, Fyodor. -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 2224e67..41c09d6 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -4789,11 +4789,17 @@ void OSD::do_recovery(PG *pg) do_queries(query_map); else { dout(10) << "do_recovery no luck, giving up on this pg for now" << dendl; + recovery_wq.lock(); pg->recovery_item.remove_myself(); // sigh... + recovery_wq.unlock(); + } } - else if (started < max) + else if (started < max) { + recovery_wq.lock(); pg->recovery_item.remove_myself(); + recovery_wq.unlock(); + } pg->unlock();