]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
rgw: fix data corruption due to network jitter 48273/head
authorlu.shasha <lu.shasha@aishu.cn>
Thu, 18 Aug 2022 07:07:42 +0000 (15:07 +0800)
committerSatoru Takeuchi <satoru.takeuchi@gmail.com>
Wed, 28 Sep 2022 02:26:35 +0000 (02:26 +0000)
commite4d58658cf678fa23332be25b4e02bc7717cdcf6
tree72bff970592292a959dd378d43b911afa18c711a
parentd007c663d49bb5bc76f0589f3c244392cda85189
rgw: fix data corruption due to network jitter

In function RGWRados::Object::Write::_do_write_meta rgw_rados_operate may return -ETIMEDOUT due to network jitter.
But head obj may eventually be written successfully even if return -ETIMEDOUT. Due to r < 0, meta.canceled be set true.
In such scenario, all the tail objects will removed in the destructor of RadosWriter, then data corruptted.
To avoid data corruption, when return -ETIMEDOUT, should clear all objects in RadosWriter.

Signed-off-by: Shasha Lu <lu.shasha@aishu.cn>
(cherry picked from commit 04282ae3c1d19bf185ee1df148eb84deb244630f)
src/rgw/rgw_putobj_processor.cc