Re: [PATCH] ceph: parallelize object copy in ceph_do_objects_copy()

Alex Markuze <[email protected]>
Newsgroups org.kernel.vger.ceph-devel
Message-ID <[email protected]>
Hi Xiubo,

Thanks for the patch, the idea is sound but there are a few correctness
issues that need fixing:

The drain loop walks past the valid window on error — it dereferences
request pointers beyond the tail of the in-flight window, which are
either freed or uninitialized depending on where the failure occurred.

The window size is read from copyfrom_max_inflight on every iteration.
A concurrent sysfs write can change it mid-flight, causing the loop
bounds to shift while requests are already in-flight.

If a request allocation fails partway through, the error return masks
any I/O errors that were already recorded for earlier in-flight
requests.

There's also a design issue for mid-file copies: parallel writes can
modify the destination beyond the position implied by a short source
count before the short is detected.

Could you respin with these fixed?

--
Alex Markuze
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.