New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

osd/ECTransaction: only read partial stripes when below *original* object size #15712

Merged
merged 2 commits into from Jun 19, 2017

Conversation

Projects
None yet
2 participants
@liewegas
Member

liewegas commented Jun 15, 2017

osd/ECTransaction: only read partial stripes when below *original* ob…
…ject size

If we touch a partial stripe that is before the stripe-aligned object size
we need to read it in to do a read/modify/write that overalys the new data
onto the old.  However, if we have two writes, both touching the same
stripe but not completely covering it, and that stripe is past the original
end of file, there is no old data to read.  The previous code was using
the projected size to decide whether to do a stripe read, and would end
up trying to read data that wasn't there.

Fix by basing the stripe read decision on the original object size instead
of the projected_size.

Fixes: http://tracker.ceph.com/issues/19882
Signed-off-by: Sage Weil <sage@redhat.com>
@liewegas

This comment has been minimized.

Member

liewegas commented Jun 16, 2017

http://pulpito.ceph.com/sage-2017-06-16_19:23:03-rbd:qemu-wip-19882---basic-smithi/

looks good in the rbd/qemu test that was triggering the original bug. still needs normal rados qa and review!

@liewegas liewegas added the needs-qa label Jun 16, 2017

@liewegas liewegas requested a review from jdurgin Jun 16, 2017

@liewegas

This comment has been minimized.

@liewegas liewegas merged commit ef2d22d into ceph:master Jun 19, 2017

4 checks passed

Signed-off-by all commits in this PR are signed
Details
Unmodified Submodules submodules for project are unmodified
Details
arm64 make check arm64 make check succeeded
Details
make check make check succeeded
Details

@liewegas liewegas deleted the liewegas:wip-19882 branch Jun 19, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment