Fixing issue in dagrunner where tasks were never removed from running list
This commit is contained in:
@@ -587,8 +587,7 @@ namespace daggy::daggyd {
|
||||
return a.startTime < b.startTime;
|
||||
});
|
||||
|
||||
for (size_t i = 0; i < tr->attempts.size(); ++i) {
|
||||
const auto &attempt = tr->attempts[i];
|
||||
for (const auto &attempt : tr->attempts) {
|
||||
ss << "<tr><td valign=top>" << timePointToString(attempt.startTime)
|
||||
<< "</td><td><pre>rc: " << attempt.rc
|
||||
<< "\n\nstdout:\n--------------\n"
|
||||
|
||||
@@ -124,10 +124,12 @@ namespace daggy {
|
||||
|
||||
void DAGRunner::collectFinished()
|
||||
{
|
||||
std::vector<std::string> completedTasks;
|
||||
for (auto &[taskName, fut] : runningTasks_) {
|
||||
if (fut->ready()) {
|
||||
auto attempt = fut->get();
|
||||
logger_.logTaskAttempt(runID_, taskName, attempt);
|
||||
completedTasks.push_back(taskName);
|
||||
|
||||
// Not a reference, since adding tasks will invalidate references
|
||||
auto vert = dag_.getVertex(taskName);
|
||||
@@ -196,6 +198,10 @@ namespace daggy {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const auto &taskName : completedTasks) {
|
||||
runningTasks_.extract(taskName);
|
||||
}
|
||||
}
|
||||
|
||||
void DAGRunner::stop(bool kill, bool blocking)
|
||||
|
||||
@@ -175,12 +175,12 @@ namespace daggy::loggers::dag_run {
|
||||
const std::string &taskName)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(guard_);
|
||||
const auto &run = dagRuns_.at(dagRunID);
|
||||
auto &run = dagRuns_.at(dagRunID);
|
||||
|
||||
return TaskRecord{.task = run.dagSpec.tasks.at(taskName),
|
||||
.state = run.taskRunStates.at(taskName),
|
||||
.stateChanges = run.taskStateChanges.at(taskName),
|
||||
.attempts = run.taskAttempts.at(taskName)};
|
||||
.attempts = run.taskAttempts[taskName]};
|
||||
}
|
||||
|
||||
RunState OStreamLogger::getTaskState(DAGRunID dagRunID,
|
||||
|
||||
Reference in New Issue
Block a user