From afca14d75cd80ac05e8f68dd09d4d41dee75b5bf Mon Sep 17 00:00:00 2001 From: "Ruben S. Montero" Date: Mon, 22 May 2017 22:51:34 +0200 Subject: [PATCH] F #4809: Initialize last_index of federated log when starting replica threads --- include/FedReplicaManager.h | 3 ++- src/raft/FedReplicaManager.cc | 14 ++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/include/FedReplicaManager.h b/include/FedReplicaManager.h index 4c2430a048..a86c5a1ef6 100644 --- a/include/FedReplicaManager.h +++ b/include/FedReplicaManager.h @@ -106,6 +106,8 @@ public: update_zones(zids); + get_last_index(last_index); + ReplicaManager::start_replica_threads(zids); } @@ -203,7 +205,6 @@ private: std::string log_retention; - // ------------------------------------------------------------------------- // Action Listener interface // ------------------------------------------------------------------------- diff --git a/src/raft/FedReplicaManager.cc b/src/raft/FedReplicaManager.cc index bf135c2355..48f898e493 100644 --- a/src/raft/FedReplicaManager.cc +++ b/src/raft/FedReplicaManager.cc @@ -36,7 +36,7 @@ const time_t FedReplicaManager::xmlrpc_timeout_ms = 2000; FedReplicaManager::FedReplicaManager(time_t _t, time_t _p, SqlDB * d, const std::string& l): ReplicaManager(), timer_period(_t), purge_period(_p), - logdb(d), log_retention(l) + last_index(-1), logdb(d), log_retention(l) { pthread_mutex_init(&mutex, 0); @@ -399,9 +399,19 @@ int FedReplicaManager::get_last_index(unsigned int& index) int FedReplicaManager::bootstrap(SqlDB *_db) { + int rc; + std::ostringstream oss(db_bootstrap); - return _db->exec_local_wr(oss); + rc = _db->exec_local_wr(oss); + + oss.str(""); + + oss << "REPLACE INTO " << table << " ("<< db_names <<") VALUES (-1,-1)"; + + rc += _db->exec_local_wr(oss); + + return rc; } /* -------------------------------------------------------------------------- */