You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ab...@apache.org on 2024/02/08 11:55:29 UTC
(incubator-devlake) branch release-v0.20 updated: fix: rerun pipeline deadlock (#6939) (#6941)
This is an automated email from the ASF dual-hosted git repository.
abeizn pushed a commit to branch release-v0.20
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
The following commit(s) were added to refs/heads/release-v0.20 by this push:
new 006162f7f fix: rerun pipeline deadlock (#6939) (#6941)
006162f7f is described below
commit 006162f7f1824f10be4667dbac3e221bb26584f7
Author: abeizn <zi...@merico.dev>
AuthorDate: Thu Feb 8 19:55:25 2024 +0800
fix: rerun pipeline deadlock (#6939) (#6941)
Co-authored-by: Klesh Wong <zh...@merico.dev>
---
backend/server/api/task/task.go | 7 ++++---
backend/server/services/pipeline.go | 2 +-
backend/server/services/task.go | 4 ++--
3 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/backend/server/api/task/task.go b/backend/server/api/task/task.go
index 07fe7b8d4..bb00fd8c6 100644
--- a/backend/server/api/task/task.go
+++ b/backend/server/api/task/task.go
@@ -18,12 +18,13 @@ limitations under the License.
package task
import (
+ "net/http"
+ "strconv"
+
"github.com/apache/incubator-devlake/core/errors"
"github.com/apache/incubator-devlake/core/models"
"github.com/apache/incubator-devlake/server/api/shared"
"github.com/apache/incubator-devlake/server/services"
- "net/http"
- "strconv"
"github.com/gin-gonic/gin"
)
@@ -63,7 +64,7 @@ func GetTaskByPipeline(c *gin.Context) {
shared.ApiOutputError(c, errors.BadInput.Wrap(err, "invalid pipeline ID format"))
return
}
- tasks, err := services.GetTasksWithLastStatus(pipelineId)
+ tasks, err := services.GetTasksWithLastStatus(pipelineId, nil)
if err != nil {
shared.ApiOutputError(c, errors.Default.Wrap(err, "error getting tasks"))
return
diff --git a/backend/server/services/pipeline.go b/backend/server/services/pipeline.go
index c8c9191d5..afa080ec0 100644
--- a/backend/server/services/pipeline.go
+++ b/backend/server/services/pipeline.go
@@ -371,7 +371,7 @@ func RerunPipeline(pipelineId uint64, task *models.Task) (tasks []*models.Task,
}
failedTasks = append(failedTasks, task)
} else {
- tasks, err := GetTasksWithLastStatus(pipelineId)
+ tasks, err := GetTasksWithLastStatus(pipelineId, tx)
if err != nil {
return nil, errors.Default.Wrap(err, "error getting tasks")
}
diff --git a/backend/server/services/task.go b/backend/server/services/task.go
index eaf10120d..362414557 100644
--- a/backend/server/services/task.go
+++ b/backend/server/services/task.go
@@ -110,9 +110,9 @@ func GetTasks(query *TaskQuery) ([]*models.Task, int64, errors.Error) {
// GetTasksWithLastStatus returns task list of the pipeline, only the most recently tasks would be returned
// TODO: adopts GetLatestTasksOfPipeline
-func GetTasksWithLastStatus(pipelineId uint64) ([]*models.Task, errors.Error) {
+func GetTasksWithLastStatus(pipelineId uint64, tx dal.Dal) ([]*models.Task, errors.Error) {
var tasks []*models.Task
- err := db.All(&tasks, dal.Where("pipeline_id = ?", pipelineId), dal.Orderby("id DESC"))
+ err := tx.All(&tasks, dal.Where("pipeline_id = ?", pipelineId), dal.Orderby("id DESC"))
if err != nil {
return nil, err
}