]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
rgw: keep track of written_objs correctly 9239/head
authorYehuda Sadeh <yehuda@redhat.com>
Mon, 16 May 2016 21:35:12 +0000 (14:35 -0700)
committerYehuda Sadeh <yehuda@redhat.com>
Fri, 20 May 2016 21:37:38 +0000 (14:37 -0700)
commitffd545bf173c5a076c47541cbe3889175188d73e
treefe4c5728a149acd683ec80c1acc4832757903f3c
parentc11db6f103b2dd0049894a606916a84d66933833
rgw: keep track of written_objs correctly

Fixes: http://tracker.ceph.com/issues/15886
Only add a rados object to the written_objs list if the write
was successful. Otherwise if the write will be canceled for some
reason, we'd remove an object that we didn't write to. This was
a problem in a case where there's multiple writes that went to
the same part. The second writer should fail the write, since
we do an exclusive write. However, we added the object's name
to the written_objs list anyway, which was a real problem when
the old processor was disposed (as it was clearing the objects).

Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
(cherry picked from commit 8fd74d11682f9d0c9085d2dc445fc3eb5631f6e0)
src/rgw/rgw_op.h
src/rgw/rgw_rados.cc
src/rgw/rgw_rados.h