8000 Merge branch 'devel' of https://github.com/arangodb/arangodb into devel · sleepycat/arangodb@9a8e2bc · GitHub
[go: up one dir, main page]

Skip to content

Commit 9a8e2bc

Browse files
committed
Merge branch 'devel' of https://github.com/arangodb/arangodb into devel
2 parents 126f9a2 + 48be25b commit 9a8e2bc

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

arangod/Cluster/HeartbeatThread.cpp

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,24 @@ HeartbeatThread::~HeartbeatThread() { shutdown(); }
105105

106106
class HeartbeatBackgroundJob {
107107
std::shared_ptr<HeartbeatThread> _heartbeatThread;
108+
double _startTime;
109+
std::string _schedulerInfo;
108110
public:
109-
explicit HeartbeatBackgroundJob(std::shared_ptr<HeartbeatThread> hbt)
110-
: _heartbeatThread(hbt) {}
111+
explicit HeartbeatBackgroundJob(std::shared_ptr<HeartbeatThread> hbt,
112+
double startTime)
113+
: _heartbeatThread(hbt), _startTime(startTime) {
114+
_schedulerInfo = SchedulerFeature::SCHEDULER->infoStatus();
115+
}
111116

112117
void operator()() {
118+
double now = TRI_microtime();
119+
if (now > _startTime + 5.0) {
120+
LOG_TOPIC(ERR, Logger::HEARTBEAT) << "ALARM: Scheduling background job "
121+
"took " << now - _startTime
122+
<< " seconds, scheduler info at schedule time: " << _schedulerInfo
123+
<< ", scheduler info now: "
124+
<< SchedulerFeature::SCHEDULER->infoStatus();
125+
}
113126
_heartbeatThread->runBackgroundJob();
114127
}
115128
};
@@ -138,7 +151,8 @@ void HeartbeatThread::runBackgroundJob() {
138151
jobNr = ++_backgroundJobsPosted;
139152
LOG_TOPIC(DEBUG, Logger::HEARTBEAT) << "dispatching sync tail " << jobNr;
140153
_launchAnotherBackgroundJob = false;
141-
_ioService->post(HeartbeatBackgroundJob(shared_from_this()));
154+
_ioService->post(HeartbeatBackgroundJob(shared_from_this(),
155+
TRI_microtime()));
142156
} else {
143157
_backgroundJobScheduledOrRunning = false;
144158
_launchAnotherBackgroundJob = false;
@@ -790,7 +804,7 @@ void HeartbeatThread::syncDBServerStatusQuo() {
790804
uint64_t jobNr = ++_backgroundJobsPosted;
791805
LOG_TOPIC(DEBUG, Logger::HEARTBEAT) << "dispatching sync " << jobNr;
792806
_backgroundJobScheduledOrRunning = true;
793-
_ioService->post(HeartbeatBackgroundJob(shared_from_this()));
807+
_ioService->post(HeartbeatBackgroundJob(shared_from_this(), TRI_microtime()));
794808
}
795809

796810
////////////////////////////////////////////////////////////////////////////////

0 commit comments

Comments
 (0)
0