summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@oath.com>2018-09-07 15:51:13 +0200
committerHenning Baldersheim <balder@oath.com>2018-09-07 15:51:13 +0200
commit1cc9b065b9160600dcef93c6f041d774aea5d958 (patch)
treec8eaca8a3a262ec169e944d3dde78474a225f34a /searchlib
parent35a4e8cdcc82afc39cf0a8adc2412f6d3fe0ea73 (diff)
Proper connected check and proper relaying og ok()
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/session.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/session.h4
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp6
3 files changed, 7 insertions, 4 deletions
diff --git a/searchlib/src/vespa/searchlib/transactionlog/session.cpp b/searchlib/src/vespa/searchlib/transactionlog/session.cpp
index ef36ff980d8..e703c32484f 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/session.cpp
+++ b/searchlib/src/vespa/searchlib/transactionlog/session.cpp
@@ -100,7 +100,6 @@ Session::Session(int sId, const SerialNumRange & r, const Domain::SP & d,
_domain(d),
_range(r),
_id(sId),
- _ok(true),
_visitRunning(false),
_inSync(false),
_finished(false),
diff --git a/searchlib/src/vespa/searchlib/transactionlog/session.h b/searchlib/src/vespa/searchlib/transactionlog/session.h
index dde9c03d3b8..bf35d83c000 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/session.h
+++ b/searchlib/src/vespa/searchlib/transactionlog/session.h
@@ -29,6 +29,7 @@ public:
virtual bool send(int32_t id, const vespalib::string & domain, const Packet & packet) = 0;
virtual bool sendDone(int32_t id, const vespalib::string & domain) = 0;
virtual bool connected() const = 0;
+ virtual bool ok() const = 0;
};
typedef std::shared_ptr<Session> SP;
Session(const Session &) = delete;
@@ -38,7 +39,6 @@ public:
const SerialNumRange & range() const { return _range; }
int id() const { return _id; }
bool inSync() const { return _inSync; }
- bool ok() const { return _ok; }
bool finished() const;
static Task::UP createTask(const Session::SP & session);
void setStartTime(time_point startTime) { _startTime = startTime; }
@@ -54,6 +54,7 @@ private:
Session::SP _session;
};
+ bool ok() const { return _destination->ok(); }
bool send(const Packet & packet);
bool sendDone();
void visit();
@@ -65,7 +66,6 @@ private:
DomainSP _domain;
SerialNumRange _range;
int _id;
- bool _ok;
std::atomic<bool> _visitRunning;
std::atomic<bool> _inSync;
std::atomic<bool> _finished;
diff --git a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp
index 2ecacf8f22b..4b3e7bddb07 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp
+++ b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp
@@ -353,6 +353,10 @@ public:
}
~RPCDestination() override { _connection->SubRef(); }
+ bool ok() const override {
+ return _ok;
+ }
+
bool send(int32_t id, const vespalib::string & domain, const Packet & packet) override {
FRT_RPCRequest *req = _supervisor.AllocRPCRequest();
req->SetMethodName("visitCallback");
@@ -371,7 +375,7 @@ public:
return retval;
}
bool connected() const override {
- return (_connection->GetState() != FNET_Connection::FNET_CONNECTED);
+ return (_connection->GetState() <= FNET_Connection::FNET_CONNECTED);
}
private:
bool send(FRT_RPCRequest * req) {