Bug #2360
closedosd: inconsistent use of dirty_info = true vs write_info()
0%
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.
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.
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.