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

evalv3: stack overflow with matchN #3443

Open
rogpeppe opened this issue Sep 10, 2024 · 1 comment
Open

evalv3: stack overflow with matchN #3443

rogpeppe opened this issue Sep 10, 2024 · 1 comment

Comments

@rogpeppe
Copy link
Member

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

$ cue version
v0.11.0-alpha.1.0.20240910154854-15fbf7f75d7d

Does this issue reproduce with the latest stable release?

N/A

What did you do?

env CUE_EXPERIMENT=evalv3
exec cue vet x.cue
-- x.cue --
#S: matchN(1, [{n?: #S & (int | {})}])

What did you expect to see?

Passing test.

What did you see instead?

> env CUE_EXPERIMENT=evalv3
> exec cue vet x.cue
[stderr]
runtime: goroutine stack exceeds 1000000000-byte limit
runtime: sp=0xc050000330 stack=[0xc050000000, 0xc070000000]
fatal error: stack overflow

runtime stack:
runtime.throw({0xe104af?, 0x42c47c?})
	/home/rogpeppe/go/src/runtime/panic.go:1067 +0x48 fp=0x7aaf0bdffc98 sp=0x7aaf0bdffc68 pc=0x473048
runtime.newstack()
	/home/rogpeppe/go/src/runtime/stack.go:1117 +0x5bb fp=0x7aaf0bdffdd0 sp=0x7aaf0bdffc98 pc=0x4572fb
runtime.morestack()
	/home/rogpeppe/go/src/runtime/asm_amd64.s:621 +0x7a fp=0x7aaf0bdffdd8 sp=0x7aaf0bdffdd0 pc=0x4794fa

goroutine 1 gp=0xc000002380 m=8 mp=0xc000580008 [running]:
runtime.deductAssistCredit(0x40?)
	/home/rogpeppe/go/src/runtime/malloc.go:1333 +0x70 fp=0xc050000340 sp=0xc050000338 pc=0x4123b0
runtime.mallocgc(0x40, 0xd93460, 0x1)
	/home/rogpeppe/go/src/runtime/malloc.go:1037 +0xde fp=0xc0500003e0 sp=0xc050000340 pc=0x46d97e
runtime.growslice(0x0, 0x0?, 0x0?, 0x0?, 0xd93460)
	/home/rogpeppe/go/src/runtime/slice.go:272 +0x55d fp=0ts: exit 1
xc050000450 sp=0xc0500003e0 pc=0x47585d
cuelang.org/go/internal/core/adt.(*Vertex).addConjunctUnchecked(0xc09f80caa0, {0x0, {0xf78ed0, 0xc09f80e108}, {0x0, 0xc09f807e00, 0x0, 0x0, 0x0, 0x0, ...}})
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/composite.go:1252 +0x4e fp=0xc0500004d8 sp=0xc050000450 pc=0x6e274e
cuelang.org/go/internal/core/adt.(*Vertex).assignConjunct(0x1000000000000?, 0x7aaf0379a6a8?, 0xc09f807e00, {0x0, {0xf78ed0, 0xc09f80e108}, {0x0, 0xc09f807e00, 0x0, 0x0, ...}}, ...)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/fields.go:365 +0xe5 fp=0xc050000548 sp=0xc0500004d8 pc=0x720b25
cuelang.org/go/internal/core/adt.(*closeContext).getKeyedCC(0xc09f807d10, 0xc0000e8a80, 0xc09f807e00, {0x80?, 0x7f?, 0xc09f814120?}, 0x0, 0x1)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/fields.go:385 +0x1df fp=0xc050000628 sp=0xc050000548 pc=0x720d7f
cuelang.org/go/internal/core/adt.(*closeContext).assignConjunct(0x0?, 0xc0500007b0?, 0x6de79a?, {0xc09f8045a0, {0xf78d78, 0xc000350bd0}, {0x0, 0xc09f807d10, 0x0, 0x0, ...}}, ...)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/fields.go:445 +0x4d fp=0xc050000738 sp=0xc050000628 pc=0x72110d
cuelang.org/go/internal/core/adt.(*closeContext).insertConjunct(0xc09f807d10, 0xc0000e8a80, 0xc09f807e00, {0xc09f8045a0, {0xf78d78, 0xc000350bd0}, {0x0, 0xc09f807d10, 0x0, 0x0, ...}}, ...)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/fields.go:744 +0x85 fp=0xc0500007f0 sp=0xc050000738 pc=0x722365
cuelang.org/go/internal/core/adt.(*nodeContext).insertArcCC(0xc09f813808, 0x2, 0x0, {0xc09f8045a0, {0xf78d78, 0xc000350bd0}, {0x0, 0xc09f807d10, 0x0, 0x0, ...}}, ...)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/fields.go:819 +0x225 fp=0xc050000940 sp=0xc0500007f0 pc=0x722865
cuelang.org/go/internal/core/adt.(*nodeContext).insertArc(...)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/fields.go:779
cuelang.org/go/internal/core/adt.processListLit(0xc0000e8a80, 0xc09f80ca00, 0x0?)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/tasks.go:252 +0x4fa fp=0xc050000ad0 sp=0xc050000940 pc=0x72c59a
cuelang.org/go/internal/core/adt.runTask(0xc09f80ca00, 0x2)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:715 +0x545 fp=0xc050000ce8 sp=0xc050000ad0 pc=0x7291c5
cuelang.org/go/internal/core/adt.(*scheduler).signal(0xc09f8139d8, 0x0?)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:532 +0xdd fp=0xc050000d28 sp=0xc050000ce8 pc=0x72899d
cuelang.org/go/internal/core/adt.(*Vertex).unify(0xc09f80c960, 0xc0000e8a80, 0x7fff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:156 +0x285 fp=0xc050000f70 sp=0xc050000d28 pc=0x72dea5
cuelang.org/go/internal/core/adt.(*OpContext).unify(0xa0?, 0xdeec80?, 0x3ef401?)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/eval.go:162 +0x339 fp=0xc0500011c0 sp=0xc050000f70 pc=0x705dd9
cuelang.org/go/internal/core/adt.(*Vertex).CompleteArcs(0x10?, 0xc0000e8a80?)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/composite.go:831 +0x25 fp=0xc0500011e8 sp=0xc0500011c0 pc=0x6e0705
cuelang.org/go/internal/core/adt.(*ListLit).evaluate(0xc00011d800, 0xc0000e8a80, 0x9f7c1c30?)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/expr.go:298 +0x149 fp=0xc050001230 sp=0xc0500011e8 pc=0x715209
cuelang.org/go/internal/core/adt.(*OpContext).evalState(0xc0000e8a80, {0xf80b20, 0xc00011d800}, 0x90200)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/context.go:716 +0x932 fp=0xc0500013a0 sp=0xc050001230 pc=0x6f1732
cuelang.org/go/internal/core/adt.(*CallExpr).evaluate(0xc00011d7d0, 0xc0000e8a80, 0x80200)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/expr.go:1521 +0x4a5 fp=0xc0500014a0 sp=0xc0500013a0 pc=0x71b265
cuelang.org/go/internal/core/adt.(*OpContext).evalState(0xc0000e8a80, {0xf80960, 0xc00011d7d0}, 0x80200)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/context.go:716 +0x932 fp=0xc050001610 sp=0xc0500014a0 pc=0x6f1732
cuelang.org/go/internal/core/adt.processExpr(0xc0002f79c0?, 0xc09f80c8c0, 0xd0?)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/tasks.go:88 +0xbc fp=0xc050001698 sp=0xc050001610 pc=0x72b25c
cuelang.org/go/internal/core/adt.runTask(0xc09f80c8c0, 0x2)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:715 +0x545 fp=0xc0500018b0 sp=0xc050001698 pc=0x7291c5
cuelang.org/go/internal/core/adt.(*scheduler).process(0xc09f8133d8, 0x24, 0x2)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:408 +0x21f fp=0xc050001980 sp=0xc0500018b0 pc=0x72849f
cuelang.org/go/internal/core/adt.(*nodeContext).completeNodeTasks(0xc09f813208, 0x2)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:391 +0x165 fp=0xc050001a00 sp=0xc050001980 pc=0x72f025
cuelang.org/go/internal/core/adt.runTask.func1()
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:681 +0x30 fp=0xc050001a28 sp=0xc050001a00 pc=0x729610
cuelang.org/go/internal/core/adt.runTask(0xc09f80c780, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:737 +0x6ff fp=0xc050001c40 sp=0xc050001a28 pc=0x72937f
cuelang.org/go/internal/core/adt.(*scheduler).process(0xc09f8133d8, 0x7eff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:408 +0x21f fp=0xc050001d10 sp=0xc050001c40 pc=0x72849f
cuelang.org/go/internal/core/adt.(*Vertex).unify(0xc09f80c6e0, 0xc0000e8a80, 0x7fff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:160 +0x2bf fp=0xc050001f58 sp=0xc050001d10 pc=0x72dedf
cuelang.org/go/internal/core/adt.(*nodeContext).completeAllArcs(0xc09f812c08, 0x7fff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:504 +0x235 fp=0xc050002000 sp=0xc050001f58 pc=0x72f675
cuelang.org/go/internal/core/adt.(*Vertex).unify(0xc09f80c640, 0xc0000e8a80, 0x7fff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:227 +0x8a6 fp=0xc050002248 sp=0xc050002000 pc=0x72e4c6
cuelang.org/go/internal/core/adt.(*OpContext).unify(0x412485?, 0xa0?, 0xdeec80?)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/eval.go:162 +0x339 fp=0xc050002498 sp=0xc050002248 pc=0x705dd9
cuelang.org/go/internal/core/adt.(*Vertex).Finalize(0xc09f8044e0?, 0xc0000e8a80)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/composite.go:825 +0x59 fp=0xc0500024c8 sp=0xc050002498 pc=0x6e0679
cuelang.org/go/internal/core/compile.unifyValidator(0xc0000e8a80, {0xf84160, 0xc09f80c5a0}, {0xf84160, 0xc09f80c0a0})
	/home/rogpeppe/src/cuelabs/cue/internal/core/compile/validator.go:125 +0x27a fp=0xc0500025c8 sp=0xc0500024c8 pc=0x77f19a
cuelang.org/go/internal/core/compile.init.func9(0xc0000e8a80, {0xc09f814090, 0x3, 0x10?})
	/home/rogpeppe/src/cuelabs/cue/internal/core/compile/validator.go:47 +0x24e fp=0xc050002648 sp=0xc0500025c8 pc=0x773ece
cuelang.org/go/internal/core/adt.(*Builtin).call(0x1531d40, 0xc0000e8a80, {0xc00015d420?, 0xc000580008?}, 0x1, {0xc09f814090?, 0xc050002820?, 0x46d97e?})
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/expr.go:1682 +0x89d fp=0xc050002750 sp=0xc050002648 pc=0x71c45d
cuelang.org/go/internal/core/adt.validateWithBuiltin(0xc0000e8a80, {0xc00015d420?, 0xc050002908?}, 0x1531d40, {0xc09f814090, 0x3, 0xdceba0?})
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/expr.go:1730 +0x7d fp=0xc050002878 sp=0xc050002750 pc=0x71ccbd
cuelang.org/go/internal/core/adt.(*BuiltinValidator).validate(0xc09f7a9f50, 0xc0000e8a80, {0xf84160, 0xc09f80c500})
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/expr.go:1723 +0xdb fp=0xc0500028d8 sp=0xc050002878 pc=0x71cbfb
cuelang.org/go/internal/core/adt.(*OpContext).Validate(0xc0000e8a80, {0xf85998, 0xc09f7a9f50}, {0xf84160, 0xc09f80c500})
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/context.go:544 +0x99 fp=0xc050002918 sp=0xc0500028d8 pc=0x6efd99
cuelang.org/go/internal/core/adt.(*Vertex).unify(0xc09f80c500, 0xc0000e8a80, 0x7fff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:248 +0xde7 fp=0xc050002b60 sp=0xc050002918 pc=0x72ea07
cuelang.org/go/internal/core/adt.(*nodeContext).doDisjunct(0xc09f809808, {0xc09f804220, {0xf78d78, 0xc000350c60}, {0x0, 0xc09f807770, 0x0, 0x0, 0x0, 0x0, ...}}, ...)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/disjunct2.go:439 +0x585 fp=0xc050002d70 sp=0xc050002b60 pc=0x700b45
cuelang.org/go/internal/core/adt.(*nodeContext).crossProduct(0xc09f809808, {0xc050002fe0?, 0x8?, 0xc09f805f80?}, {0xc050003078, 0x1, 0xc09f7c1f80?}, 0xc09f7e67e0, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/disjunct2.go:345 +0x3c5 fp=0xc050002f28 sp=0xc050002d70 pc=0x700205
cuelang.org/go/internal/core/adt.(*nodeContext).processDisjunctions(0xc09f809808)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/disjunct2.go:279 +0x165 fp=0xc050003098 sp=0xc050002f28 pc=0x6ffaa5
cuelang.org/go/internal/core/adt.processDisjunctions(0xe0eaf7?, 0xc09f7f9d60, 0x66?)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/tasks.go:190 +0x1c fp=0xc0500030d8 sp=0xc050003098 pc=0x72c01c
cuelang.org/go/internal/core/adt.runTask(0xc09f7f9d60, 0x2)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:715 +0x545 fp=0xc0500032f0 sp=0xc0500030d8 pc=0x7291c5
cuelang.org/go/internal/core/adt.(*scheduler).process(0xc09f8099d8, 0x24, 0x2)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:408 +0x21f fp=0xc0500033c0 sp=0xc0500032f0 pc=0x72849f
cuelang.org/go/internal/core/adt.(*nodeContext).completeNodeTasks(0xc09f809808, 0x2)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:391 +0x165 fp=0xc050003440 sp=0xc0500033c0 pc=0x72f025
cuelang.org/go/internal/core/adt.runTask.func1()
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:681 +0x30 fp=0xc050003468 sp=0xc050003440 pc=0x729610
cuelang.org/go/internal/core/adt.runTask(0xc09f7f9cc0, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:737 +0x6ff fp=0xc050003680 sp=0xc050003468 pc=0x72937f
cuelang.org/go/internal/core/adt.(*scheduler).process(0xc09f8099d8, 0x7eff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:408 +0x21f fp=0xc050003750 sp=0xc050003680 pc=0x72849f
cuelang.org/go/internal/core/adt.(*Vertex).unify(0xc09f7f9c20, 0xc0000e8a80, 0x7fff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:160 +0x2bf fp=0xc050003998 sp=0xc050003750 pc=0x72dedf
...1757520 frames elided...
cuelang.org/go/internal/core/adt.(*Builtin).call(0x1531d40, 0xc0000e8a80, {0xc00015d420?, 0xc000076e08?}, 0x1, {0xc000266660?, 0xc00038ec20?, 0x46d97e?})
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/expr.go:1682 +0x89d fp=0xc06fffcb50 sp=0xc06fffca48 pc=0x71c45d
cuelang.org/go/internal/core/adt.validateWithBuiltin(0xc0000e8a80, {0xc00015d420?, 0xc00038ed08?}, 0x1531d40, {0xc000266660, 0x3, 0xdceba0?})
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/expr.go:1730 +0x7d fp=0xc06fffcc78 sp=0xc06fffcb50 pc=0x71ccbd
cuelang.org/go/internal/core/adt.(*BuiltinValidator).validate(0xc0002664b0, 0xc0000e8a80, {0xf84160, 0xc0000f40a0})
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/expr.go:1723 +0xdb fp=0xc06fffccd8 sp=0xc06fffcc78 pc=0x71cbfb
cuelang.org/go/internal/core/adt.(*OpContext).Validate(0xc0000e8a80, {0xf85998, 0xc0002664b0}, {0xf84160, 0xc0000f40a0})
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/context.go:544 +0x99 fp=0xc06fffcd18 sp=0xc06fffccd8 pc=0x6efd99
cuelang.org/go/internal/core/adt.(*Vertex).unify(0xc0000f40a0, 0xc0000e8a80, 0x7fff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:248 +0xde7 fp=0xc06fffcf60 sp=0xc06fffcd18 pc=0x72ea07
cuelang.org/go/internal/core/adt.(*nodeContext).doDisjunct(0xc0000f1208, {0xc0002f7a80, {0xf78d78, 0xc000350c60}, {0x0, 0xc0000ef770, 0x0, 0x0, 0x0, 0x0, ...}}, ...)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/disjunct2.go:439 +0x585 fp=0xc06fffd170 sp=0xc06fffcf60 pc=0x700b45
cuelang.org/go/internal/core/adt.(*nodeContext).crossProduct(0xc0000f1208, {0xc00038f3e0?, 0x6e364f?, 0x1519570?}, {0xc06fffd478, 0x1, 0xc000043f80?}, 0xc00015d490, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/disjunct2.go:345 +0x3c5 fp=0xc06fffd328 sp=0xc06fffd170 pc=0x700205
cuelang.org/go/internal/core/adt.(*nodeContext).processDisjunctions(0xc0000f1208)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/disjunct2.go:279 +0x165 fp=0xc06fffd498 sp=0xc06fffd328 pc=0x6ffaa5
cuelang.org/go/internal/core/adt.processDisjunctions(0xe0eaf7?, 0xc0000d7900, 0x66?)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/tasks.go:190 +0x1c fp=0xc06fffd4d8 sp=0xc06fffd498 pc=0x72c01c
cuelang.org/go/internal/core/adt.runTask(0xc0000d7900, 0x2)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:715 +0x545 fp=0xc06fffd6f0 sp=0xc06fffd4d8 pc=0x7291c5
cuelang.org/go/internal/core/adt.(*scheduler).process(0xc0000f13d8, 0x24, 0x2)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:408 +0x21f fp=0xc06fffd7c0 sp=0xc06fffd6f0 pc=0x72849f
cuelang.org/go/internal/core/adt.(*nodeContext).completeNodeTasks(0xc0000f1208, 0x2)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:391 +0x165 fp=0xc06fffd840 sp=0xc06fffd7c0 pc=0x72f025
cuelang.org/go/internal/core/adt.runTask.func1()
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:681 +0x30 fp=0xc06fffd868 sp=0xc06fffd840 pc=0x729610
cuelang.org/go/internal/core/adt.runTask(0xc0000d7860, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:737 +0x6ff fp=0xc06fffda80 sp=0xc06fffd868 pc=0x72937f
cuelang.org/go/internal/core/adt.(*scheduler).process(0xc0000f13d8, 0x7eff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:408 +0x21f fp=0xc06fffdb50 sp=0xc06fffda80 pc=0x72849f
cuelang.org/go/internal/core/adt.(*Vertex).unify(0xc0000d77c0, 0xc0000e8a80, 0x7fff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:160 +0x2bf fp=0xc06fffdd98 sp=0xc06fffdb50 pc=0x72dedf
cuelang.org/go/internal/core/adt.(*nodeContext).completeAllArcs(0xc0000f0c08, 0x7fff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:504 +0x235 fp=0xc06fffde40 sp=0xc06fffdd98 pc=0x72f675
cuelang.org/go/internal/core/adt.(*Vertex).unify(0xc0000d7720, 0xc0000e8a80, 0x7fff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:227 +0x8a6 fp=0xc06fffe088 sp=0xc06fffde40 pc=0x72e4c6
cuelang.org/go/internal/core/adt.(*nodeContext).completeAllArcs(0xc0000f0608, 0x7fff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:504 +0x235 fp=0xc06fffe130 sp=0xc06fffe088 pc=0x72f675
cuelang.org/go/internal/core/adt.(*Vertex).unify(0xc0000d75e0, 0xc0000e8a80, 0x7fff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:227 +0x8a6 fp=0xc06fffe378 sp=0xc06fffe130 pc=0x72e4c6
cuelang.org/go/internal/core/adt.(*OpContext).unify(0xa0?, 0xdeec80?, 0xd3e401?)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/eval.go:162 +0x339 fp=0xc06fffe5c8 sp=0xc06fffe378 pc=0x705dd9
cuelang.org/go/internal/core/adt.(*Vertex).CompleteArcs(0x41019f?, 0xc0000e8a80?)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/composite.go:831 +0x25 fp=0xc06fffe5f0 sp=0xc06fffe5c8 pc=0x6e0705
cuelang.org/go/internal/core/adt.(*ListLit).evaluate(0xc00011d800, 0xc0000e8a80, 0x42ac0?)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/expr.go:298 +0x149 fp=0xc06fffe638 sp=0xc06fffe5f0 pc=0x715209
cuelang.org/go/internal/core/adt.(*OpContext).evalState(0xc0000e8a80, {0xf80b20, 0xc00011d800}, 0x90400)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/context.go:716 +0x932 fp=0xc06fffe7a8 sp=0xc06fffe638 pc=0x6f1732
cuelang.org/go/internal/core/adt.(*CallExpr).evaluate(0xc00011d7d0, 0xc0000e8a80, 0x80400)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/expr.go:1521 +0x4a5 fp=0xc06fffe8a8 sp=0xc06fffe7a8 pc=0x71b265
cuelang.org/go/internal/core/adt.(*OpContext).evalState(0xc0000e8a80, {0xf80960, 0xc00011d7d0}, 0x80400)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/context.go:716 +0x932 fp=0xc06fffea18 sp=0xc06fffe8a8 pc=0x6f1732
cuelang.org/go/internal/core/adt.processExpr(0xc0000e8a80?, 0xc0000d7540, 0x4?)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/tasks.go:88 +0xbc fp=0xc06fffeaa0 sp=0xc06fffea18 pc=0x72b25c
cuelang.org/go/internal/core/adt.runTask(0xc0000d7540, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:715 +0x545 fp=0xc06fffecb8 sp=0xc06fffeaa0 pc=0x7291c5
cuelang.org/go/internal/core/adt.(*scheduler).process(0xc0000f01d8, 0x7eff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/sched.go:408 +0x21f fp=0xc06fffed88 sp=0xc06fffecb8 pc=0x72849f
cuelang.org/go/internal/core/adt.(*Vertex).unify(0xc0000d74a0, 0xc0000e8a80, 0x7fff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:160 +0x2bf fp=0xc06fffefd0 sp=0xc06fffed88 pc=0x72dedf
cuelang.org/go/internal/core/adt.(*nodeContext).completeAllArcs(0xc000381808, 0x7fff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:504 +0x235 fp=0xc06ffff078 sp=0xc06fffefd0 pc=0x72f675
cuelang.org/go/internal/core/adt.(*Vertex).unify(0xc0000d7400, 0xc0000e8a80, 0x7fff, 0x4)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/unify.go:227 +0x8a6 fp=0xc06ffff2c0 sp=0xc06ffff078 pc=0x72e4c6
cuelang.org/go/internal/core/adt.(*OpContext).unify(0x90?, 0xf78d78?, 0x3915c0?)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/eval.go:162 +0x339 fp=0xc06ffff510 sp=0xc06ffff2c0 pc=0x705dd9
cuelang.org/go/internal/core/adt.(*Vertex).Finalize(0x0?, 0xc0000e8a80)
	/home/rogpeppe/src/cuelabs/cue/internal/core/adt/composite.go:825 +0x59 fp=0xc06ffff540 sp=0xc06ffff510 pc=0x6e0679
cuelang.org/go/cue.newVertexRoot(0xc00026b400, 0x1?, 0xc0000d7400)
	/home/rogpeppe/src/cuelabs/cue/cue/types.go:602 +0x25 fp=0xc06ffff568 sp=0xc06ffff540 pc=0x94e585
cuelang.org/go/cue.newValueRoot(0x0?, 0xc000391680?, {0xf80620?, 0xc0000d7400?})
	/home/rogpeppe/src/cuelabs/cue/cue/types.go:611 +0x3e fp=0xc06ffff640 sp=0xc06ffff568 pc=0x94e61e
cuelang.org/go/cue.(*Context).make(0xc00026b400, 0xc0000d7400)
	/home/rogpeppe/src/cuelabs/cue/cue/context.go:252 +0x79 fp=0xc06ffff6a8 sp=0xc06ffff640 pc=0x93d8f9
cuelang.org/go/cue.(*Context).BuildInstances(0xc00026b400, {0xc06ffff950, 0x1, 0x1e0?})
	/home/rogpeppe/src/cuelabs/cue/cue/context.go:150 +0x1e5 fp=0xc06ffff758 sp=0xc06ffff6a8 pc=0x93cc05
cuelang.org/go/cmd/cue/cmd.buildInstances(0xc000282e10, {0xc06ffff950, 0x1, 0xc000157738?}, 0x1)
	/home/rogpeppe/src/cuelabs/cue/cmd/cue/cmd/common.go:718 +0x45 fp=0xc06ffff800 sp=0xc06ffff758 pc=0xc2dc45
cuelang.org/go/cmd/cue/cmd.parseArgs(0xc000282e10, {0xc0002b2180, 0x1, 0x1}, 0xc00026ec80)
	/home/rogpeppe/src/cuelabs/cue/cmd/cue/cmd/common.go:597 +0xc3c fp=0xc06ffff968 sp=0xc06ffff800 pc=0xc2ca7c
cuelang.org/go/cmd/cue/cmd.doVet(0xc000282e10, {0xc0002b2180, 0x1, 0x1})
	/home/rogpeppe/src/cuelabs/cue/cmd/cue/cmd/vet.go:92 +0x87 fp=0xc06ffffa60 sp=0xc06ffff968 pc=0xc5d207
cuelang.org/go/cmd/cue/cmd.newVetCmd.mkRunE.func1(0xc0001bba00?, {0xc0002b2180, 0x1, 0x1})
	/home/rogpeppe/src/cuelabs/cue/cmd/cue/cmd/root.go:136 +0x2c2 fp=0xc06ffffc48 sp=0xc06ffffa60 pc=0xc5cb42
github.com/spf13/cobra.(*Command).execute(0xc0002b0c08, {0xc0002b2140, 0x1, 0x1})
	/home/rogpeppe/src/go/pkg/mod/github.com/spf13/cobra@v1.8.1/command.go:985 +0xaaa fp=0xc06ffffdd0 sp=0xc06ffffc48 pc=0x5fd30a
github.com/spf13/cobra.(*Command).ExecuteC(0xc00027e308)
	/home/rogpeppe/src/go/pkg/mod/github.com/spf13/cobra@v1.8.1/command.go:1117 +0x3ff fp=0xc06ffffea8 sp=0xc06ffffdd0 pc=0x5fdbdf
github.com/spf13/cobra.(*Command).Execute(...)
	/home/rogpeppe/src/go/pkg/mod/github.com/spf13/cobra@v1.8.1/command.go:1041
cuelang.org/go/cmd/cue/cmd.(*Command).Run(0xc000282e10, {0x1571060?, 0xd26180?})
	/home/rogpeppe/src/cuelabs/cue/cmd/cue/cmd/root.go:368 +0x1c fp=0xc06ffffec0 sp=0xc06ffffea8 pc=0xc5acfc
cuelang.org/go/cmd/cue/cmd.Main()
	/home/rogpeppe/src/cuelabs/cue/cmd/cue/cmd/root.go:276 +0x95 fp=0xc06fffff38 sp=0xc06ffffec0 pc=0xc5a855
main.main()
	/home/rogpeppe/src/cuelabs/cue/cmd/cue/main.go:24 +0x13 fp=0xc06fffff50 sp=0xc06fffff38 pc=0xc7e0f3
runtime.main()
	/home/rogpeppe/go/src/runtime/proc.go:283 +0x28b fp=0xc06fffffe0 sp=0xc06fffff50 pc=0x43e46b
runtime.goexit({})
	/home/rogpeppe/go/src/runtime/asm_amd64.s:1700 +0x1 fp=0xc06fffffe8 sp=0xc06fffffe0 pc=0x47b3a1
[exit status 2]
FAIL: /tmp/y.txtar:2: unexpected command failure
@rogpeppe
Copy link
Member Author

Note: this issue also applies to matchIf:

#S: matchIf({x?: "b"}, {n?: #S & (int | {})}, _)

@mvdan mvdan changed the title eval: stack overflow with matchN evalv3: stack overflow with matchN Sep 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant