Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

runtime error (panic) when flattening an included Taskfile with a default task defined #1777

Closed
mgbowman opened this issue Aug 31, 2024 · 1 comment · Fixed by #1778
Closed
Assignees

Comments

@mgbowman
Copy link
Contributor

I'm excited for the new flatten feature that was recently merged to main and wanted to give it a try and came across this SIGSEGV panic...

# Taskfile.yml
version: '3'
includes:
  base: 
    taskfile: Taskfile.base.yml
    flatten: true

tasks:
  foo:
    - echo "foo"
---
# Taskfile.base.yml
version: '3'
tasks:
  default: # <-- this appears to be the culprit
    - echo "bar"

This panics ...

$ task -a
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x98 pc=0x865a21]

goroutine 6 [running]:
github.com/go-task/task/v3/taskfile/ast.(*Tasks).Merge(0xc00018c5a8, {{{0xc00011c740, 0x1, 0x1}, 0xc0001fa780}}, 0xc0001b25b0, 0xc00005e700?)
        /home/vscode/go/pkg/mod/github.com/go-task/task/v3@v3.38.1-0.20240826211905-a72b65b3b23c/taskfile/ast/tasks.go:122 +0x221
github.com/go-task/task/v3/taskfile/ast.(*Taskfile).Merge(0xc00018c500, 0xc00018cf00, 0xc0001b25b0)
        /home/vscode/go/pkg/mod/github.com/go-task/task/v3@v3.38.1-0.20240826211905-a72b65b3b23c/taskfile/ast/taskfile.go:58 +0x1eb
github.com/go-task/task/v3/taskfile/ast.(*TaskfileGraph).Merge.func1()
        /home/vscode/go/pkg/mod/github.com/go-task/task/v3@v3.38.1-0.20240826211905-a72b65b3b23c/taskfile/ast/graph.go:92 +0xdc
golang.org/x/sync/errgroup.(*Group).Go.func1()
        /home/vscode/go/pkg/mod/golang.org/x/sync@v0.8.0/errgroup/errgroup.go:78 +0x56
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
        /home/vscode/go/pkg/mod/golang.org/x/sync@v0.8.0/errgroup/errgroup.go:75 +0x96

Looks like a nil pointer at taskfiles/ast/tasks.go:122


If I change the included task to bar ...

# Taskfile.base.yml
version: '3'
tasks:
  bar:
    - echo "bar"

...everything works as expected...

$ task -a
task: Available tasks for this project:
* bar:       
* foo: 

  • Task version: v3.38.1-0.20240826211905-a72b65b3b23c (h1:01ZCV3qmpxFkx17tDEDO4qQ/2uzXorCUl3lDtl56nVk=)
  • Operating system: Linux colima 6.5.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 9 17:03:36 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
  • Experiments enabled: none
@task-bot task-bot added the state: needs triage Waiting to be triaged by a maintainer. label Aug 31, 2024
@vmaerten vmaerten added type: bug Something not working as intended. and removed state: needs triage Waiting to be triaged by a maintainer. labels Aug 31, 2024
@vmaerten vmaerten self-assigned this Aug 31, 2024
@vmaerten
Copy link
Member

Hi!
Thanks for testing new features 🚀 and reporting this
I'll be fixed soon!

andreynering added a commit that referenced this issue Sep 6, 2024
@pd93 pd93 removed the type: bug Something not working as intended. label Dec 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants