GoogleContainerTools / GoogleContainerTools/skaffold
crash in docker.readCopyCommand when new file appears
- 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
Assessment
This issue has not been assessed yet.