Project

General

Profile

Actions

Fix #8035

open

OSD: must guarantee we are newer than Objecter reply send epochs

Added by Greg Farnum about 10 years ago. Updated about 5 years ago.

Status:
New
Priority:
High
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

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

Description

Because OSDs are now normal clients of each other in some circumstances, we've broken our map synchronization guarantees:
OSD1.objecter(10) -- osd_op_request() --> OSD2
OSD1.objecter(10) <-- osd_op_reply() -- OSD2 // note that the objecter doesn't need to get updated to take the reply
OSD1 <- payload -- objecter(10) // note that the OSD and Objecter don't share reply epochs

This is okay for most of the stuff we do (basic copy-get), but can cause problems when doing promotes that race against snap deletion in the map and such.

Actions

Also available in: Atom PDF