Project

General

Profile

Fix #6483

osd: does not fill in OSDOp::rval member

Added by Greg Farnum over 10 years ago. Updated about 9 years ago.

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

0%

Source:
Development
Tags:
Backport:
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

We provide an interface via the Objecter (and librados) for getting the return code of specific ops within a compound operation. Right now, the OSD never fills those in, so they're always set to zero!
This is often appropriate, since most operations fail as soon as one of the individual Ops fail. However, some can be marked as okay to fail, and sometimes we can desire the individual return values (containing, eg, the amount of data read).

A (very small) patch that probably solves the problem is in wip-rval, but before merging we of course need to add tests to detect this problem, and make sure we haven't broken anything else.

Associated revisions

Revision abca34aa (diff)
Added by Josh Durgin about 10 years ago

Objecter: keep ObjectOperation rval pointers for writes

Just before sending an op, prepare_mutate_op() is called, creating a
new Op. prepare_read_op() already copied over all the out-params
correctly, but for write operations the individual op return value
pointers were not copied, so they would not be filled in. With this
fixed, librados users can get the per-op return codes again.

Partially fixes: #6483
Signed-off-by: Josh Durgin <>

Revision 1d661ca9 (diff)
Added by Josh Durgin about 10 years ago

ReplicatedPG: set individual osd op rvals

This takes care of things that can fail before transaction is
executed, like omap comparison. Getting individual rvals from a
transaction requires more refactoring, so I'm leaving it for a later
cleanup.

Fixes: #6483
Signed-off-by: Josh Durgin <>

History

#1 Updated by Greg Farnum over 10 years ago

  • Target version deleted (v0.71)

#2 Updated by Josh Durgin about 10 years ago

  • Status changed from New to Fix Under Review
  • Assignee set to Josh Durgin

#3 Updated by Josh Durgin about 10 years ago

  • Status changed from Fix Under Review to 7

Running this through the rados suite. It's in wip-librados-op-rvals, which is on top of https://github.com/ceph/ceph/pull/1195.

#4 Updated by Josh Durgin about 9 years ago

  • Status changed from 7 to Resolved

Also available in: Atom PDF