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

osd: crash creating/deleting pools #5527

Merged
1 commit merged into from Sep 2, 2015
Merged

osd: crash creating/deleting pools #5527

1 commit merged into from Sep 2, 2015

Conversation

smithfarm
Copy link
Contributor

Because new_pools was processed after old_pools, if something
was modified and then deleted in the same incremental
map, then the resulting state would be a pool in the map
that had no entry in pool_name.

Fixes: ceph#12429
Signed-off-by: John Spray <john.spray@redhat.com>
(cherry picked from commit 8d4932e)
@smithfarm smithfarm self-assigned this Aug 10, 2015
@smithfarm smithfarm added this to the hammer milestone Aug 10, 2015
@ghost
Copy link

ghost commented Aug 30, 2015

@tchaikov does this backport look good to merge ? It passed a run of the hammer rados suite ( see http://tracker.ceph.com/issues/12701#rados for details ).

ghost pushed a commit that referenced this pull request Aug 30, 2015
Reviewed-by: Loic Dachary <ldachary@redhat.com>
ghost pushed a commit that referenced this pull request Aug 30, 2015
Reviewed-by: Loic Dachary <ldachary@redhat.com>
ghost pushed a commit that referenced this pull request Aug 30, 2015
Reviewed-by: Loic Dachary <ldachary@redhat.com>
ghost pushed a commit that referenced this pull request Aug 31, 2015
Reviewed-by: Loic Dachary <ldachary@redhat.com>
ghost pushed a commit that referenced this pull request Sep 1, 2015
Reviewed-by: Loic Dachary <ldachary@redhat.com>
@tchaikov
Copy link
Contributor

tchaikov commented Sep 2, 2015

@dachary lgtm

ghost pushed a commit that referenced this pull request Sep 2, 2015
OSD crash creating/deleting pools

Reviewed-by: Kefu Chai <kchai@redhat.com>
@ghost ghost merged commit 845d2ae into ceph:hammer Sep 2, 2015
ghost pushed a commit that referenced this pull request Sep 2, 2015
Reviewed-by: Loic Dachary <ldachary@redhat.com>
@smithfarm smithfarm deleted the wip-12585-hammer branch September 5, 2015 07:39
@ghost ghost changed the title OSD crash creating/deleting pools osd: crash creating/deleting pools Sep 13, 2015
steveftaylor pushed a commit to steveftaylor/ceph that referenced this pull request May 4, 2016
Covers 100% of the LOC and all the expected behavior, including thread
safety.

The sharedptr_registry is made friend of the test class so that it can
synthetize race conditions. The lookup and lookup_or_create methods
set the new in_method data member before calling cond.Wait() so that
the caller knows it is waiting.

http://tracker.ceph.com/issues/5527 refs ceph#5527

Signed-off-by: Loic Dachary <loic@dachary.org>
(cherry picked from commit 6b16cd1)
steveftaylor pushed a commit to steveftaylor/ceph that referenced this pull request May 4, 2016
A single counter ( waiting ) accurately reflects the number of
waiters, regardless of the method waiting. It is enough to allow
unit tests to synthetise all situations, including:

T1: x = lookup_or_create(0)
T1: release x part 1 (weak_ptrs now fail to lock)
T2: y = lookup_or_create(0)
T2: block in lookup_or_create (waiting == 1)
T1: z = lookup_or_create(1) (does not block because the key is different)
    while holding the lock it waiting++ and waiting == 2
    and before returning it waiting-- and waiting is back to == 1
T1: complete release x
T2: complete lookup_or_create(0) (waiting == 0)

The unit tests are modified to add a lookup on an unrelated key to
demonstrate that it does not reset waiting counter.

http://tracker.ceph.com/issues/5527 refs ceph#5527

Signed-off-by: Loic Dachary <loic@dachary.org>
(cherry picked from commit 2ec480b)
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants