}
void PG::proc_replica_log(
- ObjectStore::Transaction& t,
pg_info_t &oinfo,
const pg_log_t &olog,
pg_missing_t& omissing,
dout(10) << "proc_replica_log for osd." << from << ": "
<< oinfo << " " << olog << " " << omissing << dendl;
- pg_log.proc_replica_log(t, oinfo, olog, omissing, from);
+ pg_log.proc_replica_log(oinfo, olog, omissing, from);
peer_info[from] = oinfo;
dout(10) << " peer osd." << from << " now " << oinfo << " " << omissing << dendl;
ldout(pg->cct, 10) << "searching osd." << logevt.from
<< " log for unfound items" << dendl;
pg->proc_replica_log(
- *context<RecoveryMachine>().get_cur_transaction(),
logevt.msg->info, logevt.msg->log, logevt.msg->missing, logevt.from);
bool got_missing = pg->search_for_missing(
pg->peer_info[logevt.from],
PG *pg = context< RecoveryMachine >().pg;
peer_missing_requested.erase(logevt.from);
- pg->proc_replica_log(*context<RecoveryMachine>().get_cur_transaction(),
- logevt.msg->info, logevt.msg->log, logevt.msg->missing, logevt.from);
+ pg->proc_replica_log(logevt.msg->info, logevt.msg->log, logevt.msg->missing, logevt.from);
if (peer_missing_requested.empty()) {
if (pg->need_up_thru) {
};
void test_proc_replica_log(const TestCase &tcase) {
clear();
- ObjectStore::Transaction t;
log = tcase.get_fullauth();
pg_info_t info = tcase.get_authinfo();
pg_info_t oinfo = tcase.get_divinfo();
proc_replica_log(
- t, oinfo, olog, omissing, pg_shard_t(1, shard_id_t(0)));
+ oinfo, olog, omissing, pg_shard_t(1, shard_id_t(0)));
assert(oinfo.last_update >= log.tail);
{
clear();
- ObjectStore::Transaction t;
pg_log_t olog;
pg_info_t oinfo;
pg_missing_t omissing;
eversion_t last_complete(1, 1);
oinfo.last_complete = last_complete;
- EXPECT_TRUE(t.empty());
EXPECT_FALSE(omissing.have_missing());
EXPECT_EQ(last_update, oinfo.last_update);
EXPECT_EQ(last_complete, oinfo.last_complete);
- proc_replica_log(t, oinfo, olog, omissing, from);
+ proc_replica_log(oinfo, olog, omissing, from);
- EXPECT_TRUE(t.empty());
EXPECT_FALSE(omissing.have_missing());
EXPECT_EQ(last_update, oinfo.last_update);
EXPECT_EQ(last_update, oinfo.last_complete);
{
clear();
- ObjectStore::Transaction t;
pg_log_t olog;
pg_info_t oinfo;
pg_missing_t omissing;
oinfo.last_complete = olog.head;
}
- EXPECT_TRUE(t.empty());
EXPECT_FALSE(omissing.have_missing());
EXPECT_EQ(olog.head, oinfo.last_update);
EXPECT_EQ(olog.head, oinfo.last_complete);
- proc_replica_log(t, oinfo, olog, omissing, from);
+ proc_replica_log(oinfo, olog, omissing, from);
- EXPECT_TRUE(t.empty());
EXPECT_FALSE(omissing.have_missing());
}
{
clear();
- ObjectStore::Transaction t;
pg_log_t olog;
pg_info_t oinfo;
pg_missing_t omissing;
oinfo.last_complete = olog.head;
}
- EXPECT_TRUE(t.empty());
EXPECT_FALSE(omissing.have_missing());
EXPECT_EQ(olog.head, oinfo.last_update);
EXPECT_EQ(olog.head, oinfo.last_complete);
- proc_replica_log(t, oinfo, olog, omissing, from);
+ proc_replica_log(oinfo, olog, omissing, from);
- EXPECT_TRUE(t.empty());
EXPECT_TRUE(omissing.have_missing());
EXPECT_TRUE(omissing.is_missing(divergent_object));
EXPECT_EQ(eversion_t(1, 2), omissing.get_items().at(divergent_object).need);
{
clear();
- ObjectStore::Transaction t;
pg_log_t olog;
pg_info_t oinfo;
pg_missing_t omissing;
oinfo.last_complete = olog.head;
}
- EXPECT_TRUE(t.empty());
EXPECT_FALSE(omissing.have_missing());
EXPECT_EQ(olog.head, oinfo.last_update);
EXPECT_EQ(olog.head, oinfo.last_complete);
- proc_replica_log(t, oinfo, olog, omissing, from);
+ proc_replica_log(oinfo, olog, omissing, from);
- EXPECT_TRUE(t.empty());
EXPECT_TRUE(omissing.have_missing());
EXPECT_TRUE(omissing.is_missing(divergent_object));
EXPECT_EQ(omissing.get_items().at(divergent_object).have, eversion_t(0, 0));
{
clear();
- ObjectStore::Transaction t;
pg_log_t olog;
pg_info_t oinfo;
pg_missing_t omissing;
oinfo.last_complete = olog.head;
}
- EXPECT_TRUE(t.empty());
EXPECT_TRUE(omissing.have_missing());
EXPECT_TRUE(omissing.is_missing(divergent_object));
EXPECT_EQ(eversion_t(1, 3), omissing.get_items().at(divergent_object).need);
EXPECT_EQ(olog.head, oinfo.last_update);
EXPECT_EQ(olog.head, oinfo.last_complete);
- proc_replica_log(t, oinfo, olog, omissing, from);
+ proc_replica_log(oinfo, olog, omissing, from);
- EXPECT_TRUE(t.empty());
EXPECT_TRUE(omissing.have_missing());
EXPECT_TRUE(omissing.is_missing(divergent_object));
EXPECT_EQ(omissing.get_items().at(divergent_object).have, eversion_t(0, 0));
{
clear();
- ObjectStore::Transaction t;
pg_log_t olog;
pg_info_t oinfo;
pg_missing_t omissing;
oinfo.last_complete = olog.head;
}
- EXPECT_TRUE(t.empty());
EXPECT_TRUE(omissing.have_missing());
EXPECT_TRUE(omissing.is_missing(divergent_object));
EXPECT_EQ(divergent_version, omissing.get_items().at(divergent_object).need);
EXPECT_EQ(olog.head, oinfo.last_update);
EXPECT_EQ(olog.head, oinfo.last_complete);
- proc_replica_log(t, oinfo, olog, omissing, from);
+ proc_replica_log(oinfo, olog, omissing, from);
- EXPECT_TRUE(t.empty());
EXPECT_TRUE(omissing.have_missing());
EXPECT_TRUE(omissing.get_items().begin()->second.need == eversion_t(1, 1));
EXPECT_EQ(last_update, oinfo.last_update);