GoogleContainerTools / GoogleContainerTools/skaffold

crash in docker.readCopyCommand when new file appears

Open
#4,577 5 comments 0 reactions 0 assignees View on GitHub
area/build kind/bug priority/p3
Dominant language
Go
Stars
15.9k
Forks
1.7k
Avg merge
3d 9h
Merged PRs (30d)
10

Description

skaffold dev (1.12.1) was running and refreshing on changes, and suddenly it crashed as follows. I think it was right when `ssh-keygen` had just created a new file, perhaps using an unconventional write pattern or making a file without 'read' perms.

Repro is awkward since I don't know a workaround for https://github.com/GoogleContainerTools/skaffold/issues/4576

```
panic: runtime error: slice bounds out of range [:-1]

goroutine 1 [running]:
github.com/GoogleContainerTools/skaffold/pkg/skaffold/docker.readCopyCommand(0xc000526620, 0xc000b9ecf8, 0x0, 0x0, 0xc000a13d74, 0x4, 0x2, 0x4, 0x0)
/skaffold/pkg/skaffold/docker/parse.go:258 +0x89c
github.com/GoogleContainerTools/skaffold/pkg/skaffold/docker.extractCopyCommands(0xc0005550e0, 0x12, 0x12, 0xc00053a400, 0xc00053a450, 0x12, 0x12, 0x0, 0x0, 0xc0003f86b8)
/skaffold/pkg/skaffold/docker/parse.go:219 +0x3e6
github.com/GoogleContainerTools/skaffold/pkg/skaffold/docker.readCopyCmdsFromDockerfile(0x0, 0xc0009d3320, 0x1c, 0x1d75b95, 0x1, 0x0, 0xc00053a450, 0x0, 0x0, 0x0, ...)
/skaffold/pkg/skaffold/docker/parse.go:89 +0x376
github.com/GoogleContainerTools/skaffold/pkg/skaffold/docker.GetDependencies(0x2131ee0, 0xc000130ec0, 0x1d75b95, 0x1, 0x1d7eb3c, 0xa, 0x0, 0xc00053a450, 0x8, 0x30, ...)
/skaffold/pkg/skaffold/docker/dependencies.go:61 +0x24c
github.com/GoogleContainerTools/skaffold/pkg/skaffold/build.DependenciesForArtifact(0x2131ee0, 0xc000130ec0, 0xc000598c60, 0xc00053a450, 0xc000c85c50, 0xc000b9f230, 0x40d77d, 0x1caa300, 0xc000c85c50)
/skaffold/pkg/skaffold/build/dependencies.go:42 +0x473
github.com/GoogleContainerTools/skaffold/pkg/skaffold/runner.(*SkaffoldRunner).Dev.func2(0xc000c85c50, 0x1871c76, 0x196ec40, 0x0, 0x0)
/skaffold/pkg/skaffold/runner/dev.go:151 +0x57
github.com/GoogleContainerTools/skaffold/pkg/skaffold/filemon.Stat(0xc0005ca510, 0x0, 0xc000b9f2b8, 0x0)
/skaffold/pkg/skaffold/filemon/changes.go:35 +0x4a
github.com/GoogleContainerTools/skaffold/pkg/skaffold/filemon.(*watchList).Run(0xc00094f3c0, 0x0, 0x0, 0x0)
/skaffold/pkg/skaffold/filemon/monitor.go:68 +0xa1
github.com/GoogleContainerTools/skaffold/pkg/skaffold/runner.(*SkaffoldListener).do(0xc0005ca480, 0xc0008d1780, 0x3, 0x2)
/skaffold/pkg/skaffold/runner/listen.go:80 +0x4e
github.com/GoogleContainerTools/skaffold/pkg/skaffold/runner.(*SkaffoldListener).WatchForChanges(0xc0005ca480, 0x2131ee0, 0xc000130ec0, 0x20ea760, 0xc00012c008, 0xc0008d1780, 0x0, 0x0)
/skaffold/pkg/skaffold/runner/listen.go:72 +0x35d
github.com/GoogleContainerTools/skaffold/pkg/skaffold/runner.(*SkaffoldRunner).Dev(0xc000434780, 0x2131ee0, 0xc000130ec0, 0x20ea760, 0xc00012c008, 0xc00051ea68, 0x1, 0x1, 0x0, 0x0)
/skaffold/pkg/skaffold/runner/dev.go:245 +0x14af
github.com/GoogleContainerTools/skaffold/cmd/skaffold/app/cmd.runDev.func5(0x2153960, 0xc000434780, 0xc0000f7200, 0x0, 0x1010100010001)
/skaffold/cmd/skaffold/app/cmd/dev.go:63 +0xad
github.com/GoogleContainerTools/skaffold/cmd/skaffold/app/cmd.withRunner(0x2131ee0, 0xc000130ec0, 0xc00093fc10, 0x1dd0cd6, 0x32)
/skaffold/cmd/skaffold/app/cmd/runner.go:49 +0x12b
github.com/GoogleContainerTools/skaffold/cmd/skaffold/app/cmd.runDev(0x2131ee0, 0xc000130ec0, 0x20ea760, 0xc00012c008, 0x0, 0x0)
/skaffold/cmd/skaffold/app/cmd/dev.go:62 +0x165
github.com/GoogleContainerTools/skaffold/cmd/skaffold/app/cmd.(*builder).NoArgs.func1(0xc000156b00, 0xc000658c50, 0x0, 0x1, 0x0, 0x0)
/skaffold/cmd/skaffold/app/cmd/commands.go:105 +0x98
github.com/spf13/cobra.(*Command).execute(0xc000156b00, 0xc000658c40, 0x1, 0x1, 0xc000156b00, 0xc000658c40)
/skaffold/vendor/github.com/spf13/cobra/command.go:842 +0x453
github.com/spf13/cobra.(*Command).ExecuteC(0xc000156000, 0xc00012c008, 0x20ea760, 0xc00012c010)
/skaffold/vendor/github.com/spf13/cobra/command.go:950 +0x349
github.com/spf13/cobra.(*Command).Execute(...)
/skaffold/vendor/github.com/spf13/cobra/command.go:887
github.com/spf13/cobra.(*Command).ExecuteContext(...)
/skaffold/vendor/github.com/spf13/cobra/command.go:880
github.com/GoogleContainerTools/skaffold/cmd/skaffold/app.Run(0x20ea760, 0xc00012c008, 0x20ea760, 0xc00012c010, 0x0, 0x0)
/skaffold/cmd/skaffold/app/skaffold.go:33 +0xde
main.main()
/skaffold/cmd/skaffold/skaffold.go:31 +0x4e
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.