summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-04-24 17:08:50 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-04-24 17:08:50 +0000
commitfcdb0975dec63232be10b480197ef7f38499dc4e (patch)
treef456ccbcc12ddadc50af697167ebd61b82b8ec92 /searchcore
parent00c425bbb2cda9e1aadebd9aa5e8323b4f99c25f (diff)
Disconnect the runner on stop
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp10
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/blockable_maintenance_job.cpp7
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/blockable_maintenance_job.h1
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/bucketmovejob.h1
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp1
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job.h1
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp1
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/pruneremoveddocumentsjob.h1
8 files changed, 18 insertions, 5 deletions
diff --git a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
index bebdeb2a701..b0c46dbd789 100644
--- a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
+++ b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
@@ -308,7 +308,10 @@ struct MySimpleJob : public BlockableMaintenanceJob
++_runCnt;
return true;
}
- void onStop() override { _stopped = true; }
+ void onStop() override {
+ BlockableMaintenanceJob::onStop();
+ _stopped = true;
+ }
};
struct MySplitJob : public MySimpleJob
@@ -345,7 +348,10 @@ struct MyLongRunningJob : public BlockableMaintenanceJob
usleep(10000);
return false;
}
- void onStop() override { _stopped = true; }
+ void onStop() override {
+ BlockableMaintenanceJob::onStop();
+ _stopped = true;
+ }
};
using MyAttributeManager = test::MockAttributeManager;
diff --git a/searchcore/src/vespa/searchcore/proton/server/blockable_maintenance_job.cpp b/searchcore/src/vespa/searchcore/proton/server/blockable_maintenance_job.cpp
index ce3bd3b8e9b..942e6c14a5f 100644
--- a/searchcore/src/vespa/searchcore/proton/server/blockable_maintenance_job.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/blockable_maintenance_job.cpp
@@ -91,6 +91,13 @@ BlockableMaintenanceJob::unBlock(BlockedReason reason)
}
}
+void
+BlockableMaintenanceJob::onStop()
+{
+ LockGuard guard(_mutex);
+ _runner = nullptr;
+}
+
bool
BlockableMaintenanceJob::isBlocked() const
{
diff --git a/searchcore/src/vespa/searchcore/proton/server/blockable_maintenance_job.h b/searchcore/src/vespa/searchcore/proton/server/blockable_maintenance_job.h
index fee0f91e717..adf6f2f3b6c 100644
--- a/searchcore/src/vespa/searchcore/proton/server/blockable_maintenance_job.h
+++ b/searchcore/src/vespa/searchcore/proton/server/blockable_maintenance_job.h
@@ -49,6 +49,7 @@ public:
bool isBlocked(BlockedReason reason);
void considerRun();
+ void onStop() override;
void setBlocked(BlockedReason reason) override;
void unBlock(BlockedReason reason) override;
bool isBlocked() const override;
diff --git a/searchcore/src/vespa/searchcore/proton/server/bucketmovejob.h b/searchcore/src/vespa/searchcore/proton/server/bucketmovejob.h
index 9c1e92e2fec..7ef1a491667 100644
--- a/searchcore/src/vespa/searchcore/proton/server/bucketmovejob.h
+++ b/searchcore/src/vespa/searchcore/proton/server/bucketmovejob.h
@@ -125,7 +125,6 @@ public:
// IMaintenanceJob API
bool run() override;
- void onStop() override { }
// IClusterStateChangedHandler API
void notifyClusterStateChanged(const std::shared_ptr<IBucketStateCalculator> &newCalc) override;
diff --git a/searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp b/searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp
index 576e608d24b..9e34462ae21 100644
--- a/searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/bucketmovejobv2.cpp
@@ -451,6 +451,7 @@ BucketMoveJobV2::notifyDiskMemUsage(DiskMemUsageState state)
void
BucketMoveJobV2::onStop() {
// Called by master write thread
+ BlockableMaintenanceJob::onStop();
_stopped = true;
}
diff --git a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job.h b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job.h
index e29472ea154..4116a4cedf0 100644
--- a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job.h
+++ b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job.h
@@ -28,7 +28,6 @@ public:
IClusterStateChangedNotifier &clusterStateChangedNotifier,
bool nodeRetired);
~LidSpaceCompactionJob() override;
- void onStop() override { }
};
} // namespace proton
diff --git a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp
index a4fa1195c79..6ac8f803800 100644
--- a/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/lid_space_compaction_job_take2.cpp
@@ -160,6 +160,7 @@ CompactionJob::create(const DocumentDBLidSpaceCompactionConfig &config,
void
CompactionJob::onStop() {
+ BlockableMaintenanceJob::onStop();
_stopped = true;
}
diff --git a/searchcore/src/vespa/searchcore/proton/server/pruneremoveddocumentsjob.h b/searchcore/src/vespa/searchcore/proton/server/pruneremoveddocumentsjob.h
index ba6faf556c0..76967635f4a 100644
--- a/searchcore/src/vespa/searchcore/proton/server/pruneremoveddocumentsjob.h
+++ b/searchcore/src/vespa/searchcore/proton/server/pruneremoveddocumentsjob.h
@@ -42,7 +42,6 @@ public:
// Implements IMaintenanceJob
bool run() override;
- void onStop() override { }
};
} // namespace proton