diff --git a/task/processor/processor.go b/task/processor/processor.go index c78a8ad2..cd08698f 100644 --- a/task/processor/processor.go +++ b/task/processor/processor.go @@ -66,6 +66,9 @@ func (r *processor) process(taskID common.Hash) error { slog.Error("failed to handle task", "error", err) return err } + if len(proof) == 0 { + return nil + } processTime := time.Since(startTime) slog.Info("process task success", "project_id", t.ProjectID.String(), "task_id", t.ID, "process_time", processTime) metrics.TaskDurationMtc.WithLabelValues(t.ProjectID.String(), t.ProjectVersion, t.ID.String()).Set(processTime.Seconds()) diff --git a/vm/payload.go b/vm/payload.go index 0bd81bca..8be4b6c2 100644 --- a/vm/payload.go +++ b/vm/payload.go @@ -132,6 +132,10 @@ func encodeMovementPayload(task *task.Task, projectConfig *project.Config) ([]by slog.Info("------", "lastPayload", string(task.PrevTask.Payload)) slog.Info("------", "curPayload", string(task.Payload)) + if isMove == 0 { + return nil, nil + } + assignment := ProofofMovementCircuit{ LastPayloadHash: uints.NewU8Array(lastPayloadHash[:]), LastTimestamp: lastTimestamp, diff --git a/vm/vm.go b/vm/vm.go index 86f97b26..a05a2126 100644 --- a/vm/vm.go +++ b/vm/vm.go @@ -34,6 +34,9 @@ func (r *Handler) Handle(task *task.Task, projectConfig *project.Config) ([]byte if err != nil { return nil, errors.Wrap(err, "failed to load payload") } + if len(taskPayload) == 0 { + return nil, nil + } conn, ok := r.vmClients[projectConfig.VMTypeID] if !ok { return nil, errors.Errorf("unsupported vm type id %d", projectConfig.VMTypeID)