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

cue/interpreter/embed: panic on empty YAML file #3337

Closed
rogpeppe opened this issue Jul 29, 2024 · 0 comments
Closed

cue/interpreter/embed: panic on empty YAML file #3337

rogpeppe opened this issue Jul 29, 2024 · 0 comments
Assignees

Comments

@rogpeppe
Copy link
Member

What version of CUE are you using (cue version)?

$ cue version
f7b7aaf1592f9d324ee2e7db95fe50acd45bf09c

Does this issue reproduce with the latest stable release?

N/A (file embedding wasn't implemented in any stable release). It does reproduce with v0.10.0-alpha.2

What did you do?

env CUE_EXPERIMENT=embed
exec cue mod init
exec cue export x.cue

-- x.cue --
@extern(embed)

package x

x: _ @embed(file="x.yaml")

-- x.yaml --

What did you expect to see?

A passing test

What did you see instead?

> env CUE_EXPERIMENT=embed
> exec cue mod init
> exec cue export x.cue
[stderr]
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x7759f2]

goroutine 1 gp=0xc0000061c0 m=3 mp=0xc000079008 [running]:
panic({0xd06180?, 0x14d1ec0?})
	/home/rogpeppe/go/src/runtime/panic.go:799 +0x168 fp=0xc000254ba0 sp=0xc000254af0 pc=0x474b28
runtime.panicmem(...)
	/home/rogpeppe/go/src/runtime/panic.go:262
runtime.sigpanic()
	/home/rogpeppe/go/src/runtime/signal_unix.go:900 +0x359 fp=0xc000254c00 sp=0xc000254ba0 pc=0x476f39
cuelang.org/go/internal/core/runtime.(*Runtime).CompileFile(0xc0002b7800, 0xc000254c68, 0x0)
	/home/rogpeppe/src/cuelabs/cue3/internal/core/runtime/build.go:112 +0x32 fp=0xc000254c48 sp=0xc000254c00 pc=0x7759f2
cuelang.org/go/cue.(*Context).BuildFile(0xc0002b7800, 0x0, {0x0, 0x0, 0x2?})
	/home/rogpeppe/src/cuelabs/cue3/cue/context.go:160 +0xee fp=0xc000254cd8 sp=0xc000254c48 pc=0x91f98e
cuelang.org/go/cue/interpreter/embed.(*compiler).decodeFile(0xc0003477c0, {0xc00003e5f5, 0x6}, {0x0?, 0x4d5740?}, {0xc6387d?, 0xc0000061c0?})
	/home/rogpeppe/src/cuelabs/cue3/cue/interpreter/embed/embed.go:363 +0xbb9 fp=0xc000254e88 sp=0xc000254cd8 pc=0xc01a79
cuelang.org/go/cue/interpreter/embed.(*compiler).processFile(0xc0003477c0, {0xc00003e5f5?, 0xde60e0?}, {0x0, 0x0}, {0xf5ef40, 0xc000318f00})
	/home/rogpeppe/src/cuelabs/cue3/cue/interpreter/embed/embed.go:212 +0x28f fp=0xc000254f58 sp=0xc000254e88 pc=0xbffc6f
cuelang.org/go/cue/interpreter/embed.(*compiler).Compile(0xc0003477c0, {0x1?, 0xde5fa0?}, {0xf5ef40, 0xc000318f00}, 0xc0000a0c00)
	/home/rogpeppe/src/cuelabs/cue3/cue/interpreter/embed/embed.go:194 +0x406 fp=0xc000255068 sp=0xc000254f58 pc=0xbff3a6
cuelang.org/go/internal/core/runtime.(*externDecorator).processADTNode(0xc0002555e8, {0xf53678?, 0xc00031a320}, 0xc000318f00)
	/home/rogpeppe/src/cuelabs/cue3/internal/core/runtime/extern.go:333 +0x26a fp=0xc000255218 sp=0xc000255068 pc=0x7783aa
cuelang.org/go/internal/core/runtime.(*externDets: exit 1
corator).decorateConjunct.func1({0xf53678?, 0xc00031a320?})
	/home/rogpeppe/src/cuelabs/cue3/internal/core/runtime/extern.go:298 +0x2e fp=0xc000255248 sp=0xc000255218 pc=0x77810e
cuelang.org/go/internal/core/walk.(*Visitor).node(0xc000255480, {0xf53678, 0xc00031a320})
	/home/rogpeppe/src/cuelabs/cue3/internal/core/walk/walk.go:55 +0x49 fp=0xc000255358 sp=0xc000255248 pc=0x73a7a9
cuelang.org/go/internal/core/walk.(*Visitor).node(0xc000255480, {0xf534f8, 0xc0002c6900})
	/home/rogpeppe/src/cuelabs/cue3/internal/core/walk/walk.go:77 +0x143d fp=0xc000255468 sp=0xc000255358 pc=0x73bb9d
cuelang.org/go/internal/core/walk.(*Visitor).Elem(...)
	/home/rogpeppe/src/cuelabs/cue3/internal/core/walk/walk.go:45
cuelang.org/go/internal/core/runtime.(*externDecorator).decorateConjunct(0xc00059d0d0?, {0xf59060?, 0xc0002c6900?}, 0x0?)
	/home/rogpeppe/src/cuelabs/cue3/internal/core/runtime/extern.go:300 +0x69 fp=0xc0002554b8 sp=0xc000255468 pc=0x778049
cuelang.org/go/internal/core/runtime.(*Runtime).injectImplementations.func1({0xc00031a300, {0xf534f8, 0xc0002c6900}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, {0x0, ...}}})
	/home/rogpeppe/src/cuelabs/cue3/internal/core/runtime/extern.go:78 +0x3f fp=0xc0002554f8 sp=0xc0002554b8 pc=0x7766bf
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000320400?, 0x0?, 0x0?}, 0xc0002555d0)
	/home/rogpeppe/src/cuelabs/cue3/internal/core/adt/composite.go:606 +0x102 fp=0xc000255598 sp=0xc0002554f8 pc=0x6d96c2
cuelang.org/go/internal/core/adt.(*Vertex).VisitLeafConjuncts(...)
	/home/rogpeppe/src/cuelabs/cue3/internal/core/adt/composite.go:595
cuelang.org/go/internal/core/runtime.(*Runtime).injectImplementations(0x0?, 0x0?, 0xc000318f00)
	/home/rogpeppe/src/cuelabs/cue3/internal/core/runtime/extern.go:77 +0xf9 fp=0xc000255628 sp=0xc000255598 pc=0x776639
cuelang.org/go/internal/core/runtime.(*Runtime).Build(0xc0002b7800, 0x0, 0xc00033eb40)
	/home/rogpeppe/src/cuelabs/cue3/internal/core/runtime/build.go:82 +0x2ee fp=0xc0002556d8 sp=0xc000255628 pc=0x77560e
cuelang.org/go/cue.(*Context).BuildInstances(0xc0002b7800, {0xc000255980, 0x1, 0x1e0?})
	/home/rogpeppe/src/cuelabs/cue3/cue/context.go:143 +0xbd fp=0xc000255788 sp=0xc0002556d8 pc=0x91f5dd
cuelang.org/go/cmd/cue/cmd.buildInstances(0xc0002c3b60, {0xc000255980, 0x1, 0xc0001444d8?}, 0x1)
	/home/rogpeppe/src/cuelabs/cue3/cmd/cue/cmd/common.go:710 +0x46 fp=0xc000255830 sp=0xc000255788 pc=0xc11526
cuelang.org/go/cmd/cue/cmd.parseArgs(0xc0002c3b60, {0xc0002c96f0, 0x1, 0x1}, 0xc0002b50e0)
	/home/rogpeppe/src/cuelabs/cue3/cmd/cue/cmd/common.go:599 +0xc3f fp=0xc000255998 sp=0xc000255830 pc=0xc1037f
cuelang.org/go/cmd/cue/cmd.runExport(0xc0002c3b60, {0xc0002c96f0, 0x1, 0x1})
	/home/rogpeppe/src/cuelabs/cue3/cmd/cue/cmd/export.go:113 +0x8a fp=0xc000255a60 sp=0xc000255998 pc=0xc181aa
cuelang.org/go/cmd/cue/cmd.newExportCmd.mkRunE.func1(0xc0001bce00?, {0xc0002c96f0, 0x1, 0x1})
	/home/rogpeppe/src/cuelabs/cue3/cmd/cue/cmd/root.go:136 +0x2c2 fp=0xc000255c48 sp=0xc000255a60 pc=0xc17ae2
github.com/spf13/cobra.(*Command).execute(0xc0002c5508, {0xc0002c96b0, 0x1, 0x1})
	/home/rogpeppe/src/go/pkg/mod/github.com/spf13/[email protected]/command.go:985 +0xaaa fp=0xc000255dd0 sp=0xc000255c48 pc=0x5f6c0a
github.com/spf13/cobra.(*Command).ExecuteC(0xc0002c4608)
	/home/rogpeppe/src/go/pkg/mod/github.com/spf13/[email protected]/command.go:1117 +0x3ff fp=0xc000255ea8 sp=0xc000255dd0 pc=0x5f74df
github.com/spf13/cobra.(*Command).Execute(...)
	/home/rogpeppe/src/go/pkg/mod/github.com/spf13/[email protected]/command.go:1041
cuelang.org/go/cmd/cue/cmd.(*Command).Run(0xc0002c3b60, {0x152ea60?, 0xd07140?})
	/home/rogpeppe/src/cuelabs/cue3/cmd/cue/cmd/root.go:401 +0x1f fp=0xc000255ec0 sp=0xc000255ea8 pc=0xc3e4bf
cuelang.org/go/cmd/cue/cmd.Main()
	/home/rogpeppe/src/cuelabs/cue3/cmd/cue/cmd/root.go:309 +0x95 fp=0xc000255f38 sp=0xc000255ec0 pc=0xc3e015
main.main()
	/home/rogpeppe/src/cuelabs/cue3/cmd/cue/main.go:24 +0x13 fp=0xc000255f50 sp=0xc000255f38 pc=0xc61e73
runtime.main()
	/home/rogpeppe/go/src/runtime/proc.go:271 +0x28b fp=0xc000255fe0 sp=0xc000255f50 pc=0x44136b
runtime.goexit({})
	/home/rogpeppe/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc000255fe8 sp=0xc000255fe0 pc=0x47b461
[exit status 2]
FAIL: /tmp/testscript2000773209/x.txtar/script.txtar:3: unexpected command failure
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: v0.10.0-rc.1
Development

No branches or pull requests

2 participants