Project

General

Profile

Backport #16547

jewel:ObjectCacher: doesn't correctly handle read replies on split BufferHeads

Added by Xiaoxi Chen almost 4 years ago. Updated almost 4 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Target version:
Release:
jewel
Crash signature:


Related issues

Copied from Ceph - Bug #16002: ObjctCacher: doesn't correctly handle read replies on split BufferHeads Resolved 05/23/2016

History

#1 Updated by Xiaoxi Chen almost 4 years ago

  • Copied from Bug #16002: ObjctCacher: doesn't correctly handle read replies on split BufferHeads added

#2 Updated by Kefu Chai almost 4 years ago

  • Tracker changed from Bug to Backport

#3 Updated by Nathan Cutler almost 4 years ago

  • Description updated (diff)
  • Status changed from Pending Backport to New

original description

In ObjectCacher::bh_read_finish, we have a nonsense snippet

      } else {
        bh->bl.substr_of(bl,
                         oldpos-bh->start(),
                         bh->length());
        mark_clean(bh);
      }

Here we're trying to map the offsets of an incoming OSD op reply's bufferlist with our BufferHeads. But oldpos==bh->start at all times. The correct offset calculation is "bh->start()-start" ("start" being a function parameter corresponding to bl's position within the object).

The patch is obviously simple enough, but I want tests verifying it as well.

#4 Updated by Greg Farnum almost 4 years ago

  • Status changed from New to 7

https://github.com/ceph/ceph/pull/10074

Sepia's idle right now so I'll run this through on its own once gitbuilders are done.

#5 Updated by Greg Farnum almost 4 years ago

  • Assignee changed from Greg Farnum to Nathan Cutler

Forgot to update this. These are good results: http://pulpito.ceph.com/?branch=jewel-16002

Nathan, I'm assigning to you so this is in somebody's hands and I think I've seen you poking at it lately. ;)

#6 Updated by Nathan Cutler almost 4 years ago

  • Description updated (diff)
  • Status changed from 7 to In Progress

#7 Updated by Loic Dachary almost 4 years ago

  • Status changed from In Progress to Resolved
  • Target version set to v10.2.3

#8 Updated by Loic Dachary almost 4 years ago

  • Subject changed from jewel:ObjctCacher: doesn't correctly handle read replies on split BufferHeads to jewel:ObjectCacher: doesn't correctly handle read replies on split BufferHeads

Also available in: Atom PDF