From a70f5aafc23dcbbe25d6a05b138493add70e448a Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Sat, 7 Oct 2023 18:28:49 -0300 Subject: [PATCH] fix: increase max task calls limit from 100 to 1000 Closes #1321 Closes #1332 --- CHANGELOG.md | 4 ++++ task.go | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 19d670ca45..ccda204b9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ #1342 by @pd93). - Added a new [exit code](https://taskfile.dev/api/#exit-codes) (107) for when a Taskfile does not contain a schema version (#1342 by @pd93). +- Increased limit of maximum task calls from 100 to 1000 for now, as some people + have been reaching this limit organically now that we have loops. This check + exists to detect recursive calls, but will be removed in favor of a better + algorithm soon (#1321, #1332). ## v3.30.1 - 2023-09-14 diff --git a/task.go b/task.go index e51e6d21b5..f3f67ab6e6 100644 --- a/task.go +++ b/task.go @@ -34,7 +34,7 @@ import ( const ( // MaximumTaskCall is the max number of times a task can be called. // This exists to prevent infinite loops on cyclic dependencies - MaximumTaskCall = 100 + MaximumTaskCall = 1000 ) func shouldPromptContinue(input string) bool { @@ -173,7 +173,10 @@ func (e *Executor) RunTask(ctx context.Context, call taskfile.Call) error { return err } if !e.Watch && atomic.AddInt32(e.taskCallCount[t.Task], 1) >= MaximumTaskCall { - return &errors.TaskCalledTooManyTimesError{TaskName: t.Task} + return &errors.TaskCalledTooManyTimesError{ + TaskName: t.Task, + MaximumTaskCall: MaximumTaskCall, + } } release := e.acquireConcurrencyLimit()