Project

General

Profile

Actions

Bug #2360

closed

osd: inconsistent use of dirty_info = true vs write_info()

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

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

0%

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

Description

The dirty_info flag was added ages ago to avoid stuff done during advance*N + activate_map from rewriting the pg info zillions of times. Now some of the stuff called from that path is also called from other paths which don't check dirty_info (generate_past_intervals(), for one).

I think we want something similar to this, but i'm not sure if it should be pushed up into OSD.cc (any handle_*() is followed by if (dirty_info)...) or whether the osdmap refactoring will push the N advance_map's into PG.cc and it'll be best handled there. Hopefully the latter...

But in any case, that this needs an audit.

Actions #1

Updated by Sage Weil almost 12 years ago

  • Priority changed from Normal to Urgent

void PG::all_activated_and_committed()

creates and submits its own transaction. it's called from _activate_committed() (write completion) and from

boost::statechart::result PG::RecoveryState::Active::react(const MInfoRec& infoevt). badness.

Actions #2

Updated by Sage Weil almost 12 years ago

  • Status changed from 12 to Resolved

wip-pi merged into master. may still be some cleanup possible, but that's an optimization at this point.

Actions

Also available in: Atom PDF