Project

General

Profile

Bug #6254

ceph_test_rados: rollback then delete gets ENOENT

Added by Sage Weil over 10 years ago. Updated over 10 years ago.

Status:
Resolved
Priority:
Urgent
Assignee:
Category:
OSD
Target version:
-
% Done:

0%

Source:
Q/A
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

ubuntu@teuthology:/a/teuthology-2013-09-07_01:00:04-rados-next-testing-basic-plana/24495
ubuntu@teuthology:/a/teuthology-2013-09-07_01:00:04-rados-next-testing-basic-plana/24289

Associated revisions

Revision 488678f3 (diff)
Added by Sage Weil over 10 years ago

ceph_test_rados: fix snap remove vs rollback fix

In commit 55d279b98553ba4542219b126fc7159b20b18b1f we tried to fix a race
between rollback and snap removal, but got the logic wrong: we need to
prevent snap removal on in-use snaps, not prevent multiple rollbacks on
the same snap.

Fixes: #6254 (again)
Signed-off-by: Sage Weil <>
Reviewed-by: Samuel Just <>

History

#1 Updated by Ian Colle over 10 years ago

  • Assignee set to Sage Weil

#2 Updated by Sage Weil over 10 years ago

  • Status changed from New to In Progress

#3 Updated by Sage Weil over 10 years ago

ubuntu@teuthology:/a/teuthology-2013-10-02_23:00:03-rados-master-testing-basic-plana/31098

#4 Updated by Sage Weil over 10 years ago

  • Status changed from In Progress to 4

aha:

...
2013-10-03T00:14:03.931 INFO:teuthology.task.rados.rados.0.out:[10.214.132.27]: 3481: rollback oid 45 to 426
2013-10-03T00:14:03.931 INFO:teuthology.task.rados.rados.0.out:[10.214.132.27]: 3482: snap_remove snap 426
...

the model should avoid this situation.

BUT the osd behavior here is also confusing: if you say "rollback to snap X" and snap X does not exist, it deletes the object. wouldn't it make more sense to return -EINVAL?

#6 Updated by Sage Weil over 10 years ago

  • Status changed from 4 to Fix Under Review

Sage Weil wrote:

BUT the osd behavior here is also confusing: if you say "rollback to snap X" and snap X does not exist, it deletes the object. wouldn't it make more sense to return -EINVAL?

Nevermind. The snapset/snapc on the object may not be recent, so we don't necessarily know if the rollback snapid ever existed or not. We could explicitly check for deleted snaps, but I don't think it is worth it. Especially if we ever want rearchitect the way snap cleanup works it could box us in.

#7 Updated by Sage Weil over 10 years ago

  • Assignee changed from Sage Weil to Samuel Just

#8 Updated by Sage Weil over 10 years ago

  • Status changed from Fix Under Review to Resolved

Also available in: Atom PDF