Project

General

Profile

Bug #15073

osd: osdmap write not ordered before pgs consume map

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

Status:
Resolved
Priority:
Urgent
Assignee:
Category:
-
Target version:
-
Start date:
03/11/2016
Due date:
% Done:

0%

Source:
Q/A
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:

Description

/a/sage-2016-03-10_19:53:19-rados:thrash-wip-bluestore---basic-mira/52021

- osdmap write txn is queued
- pg consumes map, writes pg info
- pg info commits
- crash before osdmap is written

This was triggered with BlueStore. FileStore orders the transactions due to its journaling even though different sequencers are used.

Associated revisions

Revision b839a06c (diff)
Added by Sage Weil almost 3 years ago

osd: commit osdmaps before exposing them to PGs

handle_osd_map and the PGs use different sequencers when writing
their updates. We therefore need to make sure new osdmaps are
committed to disk before we expose them to PGs, lest they update
their info to reference a new osdmap that hasn't actually
committed yet.

This doesn't happen with FileStore because transactions are
ordered when they are queued, but it does affect BlueStore.

Fix by splitting handle_osd_map into two phases, one that just
persists stuff, and the second half that publishes the new maps to
the rest of the OSD.

Fixes: #15073
Signed-off-by: Sage Weil <>

History

#1 Updated by Sage Weil almost 3 years ago

  • Status changed from Verified to Testing
  • Assignee set to Sage Weil

#3 Updated by Sage Weil almost 3 years ago

  • Status changed from Testing to Resolved

Also available in: Atom PDF