]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
rgw: keep track of written_objs correctly 9154/head
authorYehuda Sadeh <yehuda@redhat.com>
Mon, 16 May 2016 21:35:12 +0000 (14:35 -0700)
committerYehuda Sadeh <yehuda@redhat.com>
Mon, 16 May 2016 22:44:31 +0000 (15:44 -0700)
commit8fd74d11682f9d0c9085d2dc445fc3eb5631f6e0
treeef2a7d8735170428a4adfc4e1eb25f3f0c5863d8
parent207e9eee45451c95aeb6e1fa84858727f06717a8
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>
src/rgw/rgw_op.h
src/rgw/rgw_rados.cc
src/rgw/rgw_rados.h