gravitational / force

A new programming language for cloud native workflows
https://force.gravitational.co
Apache License 2.0
31 stars 7 forks source link

Reusing struct/parameter names causes a stack overflow #84

Open webvictim opened 5 years ago

webvictim commented 5 years ago

This code:

func(){
    TestFunctionTwo := func(f struct{StringParameter string}) {
        Infof(Sprintf("TestFunctionTwo StringParameter: %s", f.StringParameter))
    }

    TestFunctionOne := func(f struct{StringParameter string}) {
        Infof(Sprintf("TestFunctionOne StringParameter: %s", f.StringParameter))
        TestFunctionTwo(_{StringParameter: f.StringParameter})
    }

    TestFunctionOne(_{StringParameter: "test"})
}

Causes a stack overflow:

$ force -d test.force
DEBU             Add event source Oneshot(). runner/parser.go:177
DEBU             Started process Process antaeus-1. runner/run.go:304
DEBU             Runner(pid=31449) waiting for Process antaeus-1 runner/run.go:151
DEBU             Fan in events: Oneshot() runner/run.go:187
DEBU             Fan in received event Oneshot(time=2019-11-06 20:40:28.257592178 +0000 UTC). runner/run.go:202
INFO             Process antaeus-1 triggered by Oneshot(time=2019-11-06 20:40:28.257592178 +0000 UTC) runner/run.go:272
DEBU [ANTAEUS-1] Process antaeus-1 has received Oneshot(time=2019-11-06 20:40:28.257592178 +0000 UTC). proc:antaeus-1 runner/local.go:141
INFO [ANTAEUS-1] TestFunctionOne StringParameter: test id:f16f0445 proc:antaeus-1 log/log.go:275
runtime: goroutine stack exceeds 1000000000-byte limit
fatal error: stack overflow

runtime stack:
runtime.throw(0x2a2bc14, 0xe)
    /usr/local/go/src/runtime/panic.go:774 +0x72
runtime.newstack()
    /usr/local/go/src/runtime/stack.go:1046 +0x6e9
runtime.morestack()
    /usr/local/go/src/runtime/asm_amd64.s:449 +0x8f

goroutine 51 [running]:
reflect.(*structType).Field(0xc000401a40, 0x0, 0xf, 0x100000000000001, 0x0, 0x8, 0xc0005282a0, 0x0, 0x0, 0xc0005e6380, ...)
    /usr/local/go/src/reflect/type.go:1191 +0x1ef fp=0xc020862330 sp=0xc020862328 pc=0xeffa4f
reflect.(*structType).FieldByName(0xc000401a40, 0xc0003c8ae0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/reflect/type.go:1358 +0x19f fp=0xc020862478 sp=0xc020862330 pc=0xf008bf
reflect.(*rtype).FieldByName(0xc000401a40, 0xc0003c8ae0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
    /usr/local/go/src/reflect/type.go:944 +0x99 fp=0xc020862578 sp=0xc020862478 pc=0xefeae9
reflect.Value.FieldByName(0xc000401a40, 0xc0003faee0, 0x99, 0xc0003c8ae0, 0xf, 0x0, 0x0, 0x2e65220)
    /usr/local/go/src/reflect/value.go:891 +0x73 fp=0xc020862690 sp=0xc020862578 pc=0xf0f663
github.com/gravitational/force.GetField(0xc000401a40, 0xc0003faee0, 0x3d0ade6, 0x1, 0xc0003fae40, 0x1, 0x1, 0x99, 0x28675c0, 0xc0003faee0, ...)
    /home/gus/go/src/github.com/gravitational/force/vars.go:57 +0x2de fp=0xc020862778 sp=0xc020862690 pc=0x1249efe
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc0208628c8, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:81 +0xc7 fp=0xc020862840 sp=0xc020862778 pc=0x124a577
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020862888 sp=0xc020862840 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc0208628d8 sp=0xc020862888 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020862a28, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc0208629a0 sp=0xc0208628d8 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc0208629e8 sp=0xc0208629a0 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020862a38 sp=0xc0208629e8 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020862b88, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020862b00 sp=0xc020862a38 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020862b48 sp=0xc020862b00 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020862b98 sp=0xc020862b48 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020862ce8, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020862c60 sp=0xc020862b98 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020862ca8 sp=0xc020862c60 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020862cf8 sp=0xc020862ca8 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020862e48, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020862dc0 sp=0xc020862cf8 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020862e08 sp=0xc020862dc0 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020862e58 sp=0xc020862e08 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020862fa8, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020862f20 sp=0xc020862e58 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020862f68 sp=0xc020862f20 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020862fb8 sp=0xc020862f68 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020863108, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020863080 sp=0xc020862fb8 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc0208630c8 sp=0xc020863080 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020863118 sp=0xc0208630c8 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020863268, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc0208631e0 sp=0xc020863118 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020863228 sp=0xc0208631e0 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020863278 sp=0xc020863228 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc0208633c8, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020863340 sp=0xc020863278 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020863388 sp=0xc020863340 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc0208633d8 sp=0xc020863388 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020863528, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc0208634a0 sp=0xc0208633d8 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc0208634e8 sp=0xc0208634a0 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020863538 sp=0xc0208634e8 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020863688, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020863600 sp=0xc020863538 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020863648 sp=0xc020863600 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020863698 sp=0xc020863648 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc0208637e8, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020863760 sp=0xc020863698 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc0208637a8 sp=0xc020863760 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc0208637f8 sp=0xc0208637a8 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020863948, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc0208638c0 sp=0xc0208637f8 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020863908 sp=0xc0208638c0 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020863958 sp=0xc020863908 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020863aa8, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020863a20 sp=0xc020863958 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020863a68 sp=0xc020863a20 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020863ab8 sp=0xc020863a68 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020863c08, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020863b80 sp=0xc020863ab8 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020863bc8 sp=0xc020863b80 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020863c18 sp=0xc020863bc8 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020863d68, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020863ce0 sp=0xc020863c18 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020863d28 sp=0xc020863ce0 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020863d78 sp=0xc020863d28 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020863ec8, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020863e40 sp=0xc020863d78 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020863e88 sp=0xc020863e40 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020863ed8 sp=0xc020863e88 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020864028, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020863fa0 sp=0xc020863ed8 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020863fe8 sp=0xc020863fa0 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020864038 sp=0xc020863fe8 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020864188, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020864100 sp=0xc020864038 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020864148 sp=0xc020864100 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020864198 sp=0xc020864148 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc0208642e8, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020864260 sp=0xc020864198 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc0208642a8 sp=0xc020864260 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc0208642f8 sp=0xc0208642a8 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020864448, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc0208643c0 sp=0xc0208642f8 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020864408 sp=0xc0208643c0 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020864458 sp=0xc020864408 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc0208645a8, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020864520 sp=0xc020864458 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020864568 sp=0xc020864520 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc0208645b8 sp=0xc020864568 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020864708, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020864680 sp=0xc0208645b8 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc0208646c8 sp=0xc020864680 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020864718 sp=0xc0208646c8 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020864868, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc0208647e0 sp=0xc020864718 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020864828 sp=0xc0208647e0 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020864878 sp=0xc020864828 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc0208649c8, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020864940 sp=0xc020864878 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020864988 sp=0xc020864940 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc0208649d8 sp=0xc020864988 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020864b28, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020864aa0 sp=0xc0208649d8 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020864ae8 sp=0xc020864aa0 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020864b38 sp=0xc020864ae8 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020864c88, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020864c00 sp=0xc020864b38 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020864c48 sp=0xc020864c00 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020864c98 sp=0xc020864c48 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020864de8, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020864d60 sp=0xc020864c98 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020864da8 sp=0xc020864d60 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020864df8 sp=0xc020864da8 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020864f48, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020864ec0 sp=0xc020864df8 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020864f08 sp=0xc020864ec0 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020864f58 sp=0xc020864f08 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc0208650a8, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020865020 sp=0xc020864f58 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020865068 sp=0xc020865020 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc0208650b8 sp=0xc020865068 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020865208, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc020865180 sp=0xc0208650b8 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc0208651c8 sp=0xc020865180 pc=0x123632e
github.com/gravitational/force.(*StringVar).Eval(0xc0003faee0, 0x2e40ea0, 0xc0004ea360, 0x2d88720, 0x0, 0x0, 0x1)
    <autogenerated>:1 +0x5d fp=0xc020865218 sp=0xc0208651c8 pc=0x125249d
github.com/gravitational/force.(*VarRef).Eval(0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x0, 0xc020865368, 0x124bcf2, 0x2e65220)
    /home/gus/go/src/github.com/gravitational/force/vars.go:90 +0x60d fp=0xc0208652e0 sp=0xc020865218 pc=0x124aabd
github.com/gravitational/force.StringVar.Eval(0x7fc0643d4b10, 0xc00010ba40, 0x2e40ea0, 0xc0004ea360, 0x2632da0, 0x2d88720, 0x2632da0, 0x2d88720)
    /home/gus/go/src/github.com/gravitational/force/force.go:315 +0x4e fp=0xc020865328 sp=0xc0208652e0 pc=0x123632e
...additional frames elided...
created by github.com/gravitational/force/pkg/runner.(*LocalProcess).triggerActions
    /home/gus/go/src/github.com/gravitational/force/pkg/runner/local.go:148 +0x84

goroutine 1 [select]:
main.main()
    /home/gus/go/src/github.com/gravitational/force/tool/force/main.go:64 +0xd64

goroutine 19 [syscall]:
os/signal.signal_recv(0x0)
    /usr/local/go/src/runtime/sigqueue.go:147 +0x9c
os/signal.loop()
    /usr/local/go/src/os/signal/signal_unix.go:23 +0x22
created by os/signal.init.0
    /usr/local/go/src/os/signal/signal_unix.go:29 +0x41

goroutine 35 [chan receive]:
github.com/moby/buildkit/util/pull.newResolverCache.func1(0xc00045c500, 0xc00039c820)
    /home/gus/go/src/github.com/gravitational/force/vendor/github.com/moby/buildkit/util/pull/resolver.go:203 +0x49
created by github.com/moby/buildkit/util/pull.newResolverCache
    /home/gus/go/src/github.com/gravitational/force/vendor/github.com/moby/buildkit/util/pull/resolver.go:201 +0x95

goroutine 6 [chan receive]:
k8s.io/klog.(*loggingT).flushDaemon(0x3d6bfa0)
    /home/gus/go/src/github.com/gravitational/force/vendor/k8s.io/klog/klog.go:990 +0x8b
created by k8s.io/klog.init.0
    /home/gus/go/src/github.com/gravitational/force/vendor/k8s.io/klog/klog.go:404 +0x6c

goroutine 8 [select]:
go.opencensus.io/stats/view.(*worker).start(0xc0002f1220)
    /home/gus/go/src/github.com/gravitational/force/vendor/go.opencensus.io/stats/view/worker.go:154 +0x100
created by go.opencensus.io/stats/view.init.0
    /home/gus/go/src/github.com/gravitational/force/vendor/go.opencensus.io/stats/view/worker.go:32 +0x57

goroutine 9 [chan receive]:
main.setupSignalHandlers.func1(0xc000379e40, 0xc0000f56e0)
    /home/gus/go/src/github.com/gravitational/force/tool/force/main.go:102 +0x83
created by main.setupSignalHandlers
    /home/gus/go/src/github.com/gravitational/force/tool/force/main.go:100 +0xa5

goroutine 11 [select]:
github.com/gravitational/force/pkg/runner.(*Runner).fanInEvents(0xc00042e000, 0x2e246e0, 0xc000010468)
    /home/gus/go/src/github.com/gravitational/force/pkg/runner/run.go:193 +0x382
created by github.com/gravitational/force/pkg/runner.(*Runner).Start
    /home/gus/go/src/github.com/gravitational/force/pkg/runner/run.go:297 +0x107

goroutine 12 [select]:
github.com/gravitational/force/pkg/runner.(*Runner).fanOutEvents(0xc00042e000)
    /home/gus/go/src/github.com/gravitational/force/pkg/runner/run.go:232 +0x145
created by github.com/gravitational/force/pkg/runner.(*Runner).Start
    /home/gus/go/src/github.com/gravitational/force/pkg/runner/run.go:299 +0x153

goroutine 13 [select]:
github.com/gravitational/force/pkg/runner.(*LocalProcess).triggerActions(0xc000160780, 0x2e40ea0, 0xc00000e1e0)
    /home/gus/go/src/github.com/gravitational/force/pkg/runner/local.go:133 +0x17b
created by github.com/gravitational/force/pkg/runner.(*LocalProcess).Start
    /home/gus/go/src/github.com/gravitational/force/pkg/runner/local.go:104 +0x53

goroutine 14 [select]:
github.com/gravitational/force/pkg/runner.(*Runner).wait(0xc00042e000, 0x2e4e960, 0xc000160780)
    /home/gus/go/src/github.com/gravitational/force/pkg/runner/run.go:152 +0x1b7
created by github.com/gravitational/force/pkg/runner.(*Runner).Start
    /home/gus/go/src/github.com/gravitational/force/pkg/runner/run.go:305 +0x390

It seems possible to mitigate this issue in several ways: