Project

General

Profile

Actions

Bug #19849

open

cls ops do not consistently get ENOENT on whiteouts

Added by Sage Weil almost 7 years ago. Updated almost 7 years ago.

Status:
New
Priority:
Normal
Assignee:
Category:
Correctness/Safety
Target version:
-
% Done:

0%

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

Description

the cls glue objclass.cc directly calls do_osd_ops, which inconsistently checks for !exists || is_whiteout(). instead we should wrap all cls read calls in a check that verifies the object exists. otherwise the error codes could be inconsistent (e.g., ENODATA instead of ENOENT for getxattr). hmm, maybe that's the only one, but a single consistent ENOENT path (like we have with in do_op()) would be better.

Actions #1

Updated by Greg Farnum almost 7 years ago

  • Project changed from Ceph to RADOS
  • Category set to Correctness/Safety
  • Component(RADOS) OSD added
Actions #2

Updated by Sage Weil almost 7 years ago

  • Priority changed from Urgent to Normal
Actions

Also available in: Atom PDF