Skip to content
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

jewel: librbd: properly order concurrent updates to the object map #12909

Merged
merged 5 commits into from Jan 30, 2017

Conversation

dillaman
Copy link

@dillaman dillaman commented Jan 12, 2017

Jason Dillaman added 4 commits January 12, 2017 10:57
Concurrent IO to the same object would previously result in the first
IO pausing to update the object map while the other IO would proceed
to directly update the object before the object map state was properly
updated.

Fixes: http://tracker.ceph.com/issues/16176
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 378b810)

Conflicts:
	test/librbd/object_map/test_mock_UpdateRequest.cc: resize op signature
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 477ae54)

Conflicts:
	src/librbd/AioObjectRequest.cc: trivial resolution
	src/librbd/ObjectMap.cc: trivial resolution
	src/librbd/operation/TrimRequest.cc: removed optimizations
	src/tools/rbd_mirror/image_sync/ObjectCopyRequest.cc: trivial resolution
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit ea7b30a)

Conflicts:
	src/librbd/image/CreateRequest.cc: not in jewel
	src/librbd/internal.cc: trivial resolution
	src/librbd/object_map/CreateRequest.cc: not in jewel
	src/librbd/object_map/RemoveRequest.cc: not in jewel
	src/test/librbd/test_ObjectMap.cc: trivial resolution
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit b1d624b)

Conflicts:
	src/librbd/BlockGuard.h: fixed compile issue
	src/librbd/Makefile.am: added BlockGuard
	src/test/Makefile-client.am: added BlockGuard test
	src/test/librbd/CMakeLists.txt: trivial resolution
@dillaman dillaman added this to the jewel milestone Jan 12, 2017
…ject

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
(cherry picked from commit 7d743bf)
@smithfarm
Copy link
Contributor

@trociny This PR passed an RBD suite at http://tracker.ceph.com/issues/17851#note-41
with a single failure [1] that was not reproducible in a subsequent run.

[1] The failure was a reoccurrence of http://tracker.ceph.com/issues/17695
which was supposed to have been fixed in jewel by #11644

@dillaman
Copy link
Author

@smithfarm 👍

@smithfarm smithfarm merged commit 60a2037 into ceph:jewel Jan 30, 2017
@dillaman dillaman deleted the wip-18290-jewel branch January 30, 2017 12:24
smithfarm added a commit to smithfarm/ceph that referenced this pull request Aug 26, 2017
In master, the "batch update" change [1] was merged before
the "order concurrent updates" [2], while in jewel the latter
is already backported [3]. A partial backport of [1]
was attempted, but the automated cherry-pick missed some
parts of it which this commit is adding manually.

[1] ceph#11510
[2] ceph#12420
[3] ceph#12909

Signed-off-by: Mykola Golub <mgolub@mirantis.com>
Signed-off-by: Nathan Cutler <ncutler@suse.com>
smithfarm added a commit to smithfarm/ceph that referenced this pull request Aug 26, 2017
In master, the "batch update" change [1] was merged before the "order
concurrent updates" [2], while in jewel the latter is already
backported [3]. A backport of [1] to jewel was attempted, and was
necessarily applied on top of [3] - i.e. in the reverse order compared
to how the commits went into master. This reverse ordering caused the
automated cherry-pick to miss some parts of [1] which this commit is
adding manually.

[1] ceph#11510
[2] ceph#12420
[3] ceph#12909

Signed-off-by: Mykola Golub <mgolub@mirantis.com>
Signed-off-by: Nathan Cutler <ncutler@suse.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants