]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rgw: keep track of written_objs correctly 9240/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:47:08 +0000 (14:47 -0700)
commitdd29310bd6273ec3643bf90e51f7cae4801629c7
treec174250ba88621a942b0939e649ad1cd1a7b1895
parente219e85be00088eecde7b1f29d7699493a79bc4d
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.cc
src/rgw/rgw_rados.cc
src/rgw/rgw_rados.h