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

internal/core/export: UpCount nil dereference panic #3489

Open
yujunz opened this issue Oct 10, 2024 · 10 comments
Open

internal/core/export: UpCount nil dereference panic #3489

yujunz opened this issue Oct 10, 2024 · 10 comments
Assignees
Labels
NeedsInfo More information or clarification needed from the user NeedsInvestigation panic

Comments

@yujunz
Copy link

yujunz commented Oct 10, 2024

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

cue version
cue version v0.10.0

go version go1.22.6
      -buildmode exe
       -compiler gc
       -trimpath true
     CGO_ENABLED 1
          GOARCH arm64
            GOOS darwin
cue.lang.version v0.10.0

Does this issue reproduce with the latest stable release?

Yes

What did you do?

cue eval

What did you expect to see?

eval output

What did you see instead?

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x0 pc=0x104873078]

goroutine 1 [running]:
cuelang.org/go/internal/core/export.(*exporter).resolve(0x14002af0c60, 0x14002f5b2c0, {0x10501e3e0?, 0x14000514dc0})
	cuelang.org/go/internal/core/export/adt.go:333 +0x908
cuelang.org/go/internal/core/export.(*exporter).adt(0x14002af0c60, 0x14002f5b2c0, {0x1059aa520?, 0x14000514dc0})
	cuelang.org/go/internal/core/export/adt.go:137 +0x658
cuelang.org/go/internal/core/export.(*exporter).expr(0x14002af0c60, 0x14002f5b2c0?, {0x1059aa520?, 0x14000514dc0})
	cuelang.org/go/internal/core/export/expr.go:100 +0x314
cuelang.org/go/internal/core/export.(*exporter).innerExpr(...)
	cuelang.org/go/internal/core/export/expr.go:62
cuelang.org/go/internal/core/export.(*exporter).resolve(0x14002af0c60, 0x14002f5b2c0, {0x10501e4d0?, 0x1400073f940})
	cuelang.org/go/internal/core/export/adt.go:418 +0x670
cuelang.org/go/internal/core/export.(*exporter).adt(0x14002af0c60, 0x14002f5b2c0, {0x1059aa908?, 0x1400073f940})
	cuelang.org/go/internal/core/export/adt.go:137 +0x658
cuelang.org/go/internal/core/export.(*exporter).expr(0x14002af0c60, 0x14002f5b2c0?, {0x1059aa908?, 0x1400073f940})
	cuelang.org/go/internal/core/export/expr.go:100 +0x314
cuelang.org/go/internal/core/export.(*exporter).innerExpr(...)
	cuelang.org/go/internal/core/export/expr.go:62
cuelang.org/go/internal/core/export.(*exporter).resolve(0x14002af0c60, 0x14002f5b2c0, {0x10501e4d0?, 0x1400073f960})
	cuelang.org/go/internal/core/export/adt.go:418 +0x670
cuelang.org/go/internal/core/export.(*exporter).adt(0x14002af0c60, 0x14002f5b2c0, {0x1059aa908?, 0x1400073f960})
	cuelang.org/go/internal/core/export/adt.go:137 +0x658
cuelang.org/go/internal/core/export.(*exporter).adt(0x14002af0c60, 0x140008e6dc0, {0x10501f158?, 0x1400147aa80})
	cuelang.org/go/internal/core/export/adt.go:297 +0x1ab8
cuelang.org/go/internal/core/export.(*exporter).expr(0x14002af0c60, 0x140008e6dc0?, {0x10501f158?, 0x1400147aa80})
	cuelang.org/go/internal/core/export/expr.go:100 +0x314
cuelang.org/go/internal/core/export.(*exporter).vertex.func2({0x140008e6dc0, {0x10501a1a0, 0x1400147aa80}, {0x140014c84c0, 0x0, 0x0, 0x0, 0x0, 0x0, {0x0, ...}}})
	cuelang.org/go/internal/core/export/value.go:106 +0x78
cuelang.org/go/internal/core/adt.visitConjuncts({0x140014c5c80?, 0x105023d88?, 0x140002c8d20?}, 0x1400289b180)
	cuelang.org/go/internal/core/adt/composite.go:613 +0xf8
cuelang.org/go/internal/core/adt.(*Vertex).VisitLeafConjuncts(...)
	cuelang.org/go/internal/core/adt/composite.go:602
cuelang.org/go/internal/core/export.(*exporter).vertex(0x14002af0c60, 0x140014ca280)
	cuelang.org/go/internal/core/export/value.go:105 +0x544
cuelang.org/go/internal/core/export.(*exporter).structComposite(0x14002af0c60, 0x140014c7cc0, {0x0, 0x0, 0x1400289b448?})
	cuelang.org/go/internal/core/export/value.go:449 +0x718
cuelang.org/go/internal/core/export.(*exporter).vertex(0x14002af0c60, 0x140014c7cc0)
	cuelang.org/go/internal/core/export/value.go:66 +0x4c0
cuelang.org/go/internal/core/export.(*exporter).structComposite(0x14002af0c60, 0x14001469900, {0x0, 0x0, 0x104fd84e0?})
	cuelang.org/go/internal/core/export/value.go:449 +0x718
cuelang.org/go/internal/core/export.(*exporter).vertex(0x14002af0c60, 0x14001469900)
	cuelang.org/go/internal/core/export/value.go:66 +0x4c0
cuelang.org/go/internal/core/export.(*exporter).structComposite(0x14002af0c60, 0x14001469720, {0x0, 0x0, 0x1400289c068?})
	cuelang.org/go/internal/core/export/value.go:449 +0x718
cuelang.org/go/internal/core/export.(*exporter).vertex(0x14002af0c60, 0x14001469720)
	cuelang.org/go/internal/core/export/value.go:66 +0x4c0
cuelang.org/go/internal/core/export.(*exporter).structComposite(0x14002af0c60, 0x14001469360, {0x0, 0x0, 0x1400289c678?})
	cuelang.org/go/internal/core/export/value.go:449 +0x718
cuelang.org/go/internal/core/export.(*exporter).vertex(0x14002af0c60, 0x14001469360)
	cuelang.org/go/internal/core/export/value.go:66 +0x4c0
cuelang.org/go/internal/core/export.(*exporter).structComposite(0x14002af0c60, 0x1400141a000, {0x0, 0x0, 0x1400289cc88?})
	cuelang.org/go/internal/core/export/value.go:449 +0x718
cuelang.org/go/internal/core/export.(*exporter).vertex(0x14002af0c60, 0x1400141a000)
	cuelang.org/go/internal/core/export/value.go:66 +0x4c0
cuelang.org/go/internal/core/export.(*exporter).structComposite(0x14002af0c60, 0x140012065a0, {0x0, 0x0, 0x1400289d298?})
	cuelang.org/go/internal/core/export/value.go:449 +0x718
cuelang.org/go/internal/core/export.(*exporter).vertex(0x14002af0c60, 0x140012065a0)
	cuelang.org/go/internal/core/export/value.go:66 +0x4c0
cuelang.org/go/internal/core/export.(*exporter).structComposite(0x14002af0c60, 0x140012061e0, {0x0, 0x0, 0x104fd84e0?})
	cuelang.org/go/internal/core/export/value.go:449 +0x718
cuelang.org/go/internal/core/export.(*exporter).vertex(0x14002af0c60, 0x140012061e0)
	cuelang.org/go/internal/core/export/value.go:66 +0x4c0
cuelang.org/go/internal/core/export.(*exporter).structComposite(0x14002af0c60, 0x14000e5da40, {0x0, 0x0, 0x9?})
	cuelang.org/go/internal/core/export/value.go:449 +0x718
cuelang.org/go/internal/core/export.(*exporter).vertex(0x14002af0c60, 0x14000e5da40)
	cuelang.org/go/internal/core/export/value.go:66 +0x4c0
cuelang.org/go/internal/core/export.(*exporter).structComposite(0x14002af0c60, 0x14000912d20, {0x0, 0x0, 0x104fd84e0?})
	cuelang.org/go/internal/core/export/value.go:449 +0x718
cuelang.org/go/internal/core/export.(*exporter).vertex(0x14002af0c60, 0x14000912d20)
	cuelang.org/go/internal/core/export/value.go:66 +0x4c0
cuelang.org/go/internal/core/export.(*exporter).structComposite(0x14002af0c60, 0x14000912780, {0x0, 0x0, 0x104fd84e0?})
	cuelang.org/go/internal/core/export/value.go:449 +0x718
cuelang.org/go/internal/core/export.(*exporter).vertex(0x14002af0c60, 0x14000912780)
	cuelang.org/go/internal/core/export/value.go:66 +0x4c0
cuelang.org/go/internal/core/export.(*exporter).structComposite(0x14002af0c60, 0x14000912500, {0x0, 0x0, 0x104fd84e0?})
	cuelang.org/go/internal/core/export/value.go:449 +0x718
cuelang.org/go/internal/core/export.(*exporter).vertex(0x14002af0c60, 0x14000912500)
	cuelang.org/go/internal/core/export/value.go:66 +0x4c0
cuelang.org/go/internal/core/export.(*exporter).value(0x14002af0c60, {0x105025140?, 0x14000912500?}, {0x1400001d200?, 0x8?, 0x8?})
	cuelang.org/go/internal/core/export/value.go:171 +0x394
cuelang.org/go/internal/core/export.(*Profile).Vertex(0x1400025b3c0?, {0x105025050?, 0x1400025b3c0?}, {0x140003aa880?, 0x104d1f452?}, 0x14000912500)
	cuelang.org/go/internal/core/export/export.go:241 +0x98
cuelang.org/go/cue.Value.Syntax({0x1400025b3c0?, 0x14000912500?, 0x0?}, {0x1400289f950, 0x5, 0x104fa8b80?})
	cuelang.org/go/cue/types.go:1010 +0x1f8
cuelang.org/go/cmd/cue/cmd.runEval(0x1400026c6f0, {0x1055f3560, 0x0, 0x0})
	cuelang.org/go/cmd/cue/cmd/eval.go:169 +0x794
cuelang.org/go/cmd/cue/cmd.newEvalCmd.mkRunE.func1(0x140001b6900?, {0x1055f3560, 0x0, 0x0})
	cuelang.org/go/cmd/cue/cmd/root.go:136 +0x218
github.com/spf13/cobra.(*Command).execute(0x14000035208, {0x1055f3560, 0x0, 0x0})
	github.com/spf13/[email protected]/command.go:985 +0x840
github.com/spf13/cobra.(*Command).ExecuteC(0x14000034908)
	github.com/spf13/[email protected]/command.go:1117 +0x344
github.com/spf13/cobra.(*Command).Execute(...)
	github.com/spf13/[email protected]/command.go:1041
cuelang.org/go/cmd/cue/cmd.(*Command).Run(0x1400026c6f0, {0x1055f3560?, 0x104f354a0?})
	cuelang.org/go/cmd/cue/cmd/root.go:401 +0x28
cuelang.org/go/cmd/cue/cmd.Main()
	cuelang.org/go/cmd/cue/cmd/root.go:309 +0x9c
main.main()
	cuelang.org/go/cmd/cue/main.go:24 +0x1c
@yujunz yujunz added NeedsInvestigation Triage Requires triage/attention labels Oct 10, 2024
@yujunz yujunz changed the title panic panic: runtime error: invalid memory address or nil pointer dereference Oct 10, 2024
@mvdan
Copy link
Member

mvdan commented Oct 10, 2024

@yujunz are you able to provide us with CUE code to reproduce this panic?

@yujunz
Copy link
Author

yujunz commented Oct 10, 2024

The CUE code it pretty complex with deep import chain. I can try to narrow down since cue eval -p path still works on specific paths.

Or shall I try evalv3 since it seems an evaluation error?

@mvdan
Copy link
Member

mvdan commented Oct 10, 2024

If you could try evalv3 that would also be helpful, yes. Although we would still like to fix any panics in evalv2.

@mvdan mvdan self-assigned this Oct 10, 2024
@yujunz
Copy link
Author

yujunz commented Oct 11, 2024

CUE_EXPERIMENT=evalv3 cue eval doesn't panic but throws a bunch of errors.

  • 64 field not allowed
  • 2 cyclic reference to field
  • 1 incompatible list lengths (0 and 5)

It may take some time to narrow down the error, but do you have any quick hint which could be the root cause of panic in current version?

@yujunz
Copy link
Author

yujunz commented Oct 11, 2024

Could this be the culprit?

#App.base.alpha.#var.volumes."vault-token".mount.mountPath: cyclic reference to field "vault-token":
    ../../../../_base/kubernetes.cue:293:3
#App.base.alpha.#var.volumes."vault-token".volume.projected.sources: cyclic reference to field "vault-token":
    ../../../../_base/kubernetes.cue:293:3

from

#var: volumes: "vault-token": {
	volume: projected: sources: [{
		serviceAccountToken: {
			path:              _local.vault.tokenPath
		}
	}]
	mount: mountPath: _local.vault.mountPath
}
_local: vault: {
	mountPath:  "/var/run/secrets/vault/serviceaccount"
	tokenPath:  "token"
}

while it is tested OK in https://cuelang.org/play/?id=VXxtPsG0DAO#w=function&i=cue&f=eval&o=cue

The full configurations includes much more in #var and _local though.

@mvdan
Copy link
Member

mvdan commented Oct 11, 2024

Is the code public? If so, could you share a link? If not, would you be able to share it with us privately so that we can reproduce the crash, as well as all the evalv3 issues to be fixed?

@yujunz
Copy link
Author

yujunz commented Oct 11, 2024

Unfortunately not. It's a huge private mono repo. I'll try to narrow down to a sharable subset to reproduce and share.

@yujunz
Copy link
Author

yujunz commented Oct 11, 2024

I'm able to narrow down it a bit to one type of error field not allowed with evalv3 and panic without evalv3 now. See screenshot of error context.

Screenshot 2024-10-11 at 22 45 42 Screenshot 2024-10-11 at 22 45 14

See also https://gist.github.com/yujunz/310b4e462432b63faf9c4ce1dca06534 for the related part of alpha.cue. It is a nested loop with if condition. I can't share app.cue for now but will try to tailer down to a reproducible set.

CUE_EXPERIMENT=evalv3 cue eval
#App.base.alpha.kubernetes.#resources.deployments."app-misc".spec.selector: field not allowed:
    ../../../pkg/spec/alpha.cue:74:12
    ./app.cue:213:6
#App.base.alpha.kubernetes.#resources.deployments."app-misc".spec.template: field not allowed:
    ../../../pkg/spec/alpha.cue:74:12
    ../_base/kubernetes.cue:347:6
    ./app.cue:162:6
    ./app.cue:214:6
#App.base.alpha.kubernetes.#resources.deployments."app-transfer".spec.selector: field not allowed:
    ../../../pkg/spec/alpha.cue:74:12
    ./app.cue:213:6
#App.base.alpha.kubernetes.#resources.deployments."app-transfer".spec.template: field not allowed:
    ../../../pkg/spec/alpha.cue:74:12
    ../_base/kubernetes.cue:347:6
    ./app.cue:162:6
    ./app.cue:214:6
#App.base.alpha.kubernetes.#resources.pods."app-diag".spec.containers: field not allowed:
    ../../../pkg/spec/alpha.cue:74:12
    ../_base/kubernetes.cue:124:12
#App.base.alpha.kubernetes.#resources.pods."app-diag".spec.volumes: field not allowed:
    ../../../pkg/spec/alpha.cue:74:12
    ../_base/kubernetes.cue:105:15
#App.base.alpha.kubernetes.#resources.servicemonitors.app.spec.endpoints: field not allowed:
    ../../../pkg/spec/alpha.cue:74:12
    ../_base/kubernetes.cue:267:6
    ./app.cue:252:5
#App.base.alpha.kubernetes.#resources.servicemonitors.app.spec.namespaceSelector: field not allowed:
    ../../../pkg/spec/alpha.cue:74:12
    ../_base/kubernetes.cue:272:6
    ./app.cue:257:5
#App.base.alpha.kubernetes.#resources.servicemonitors.app.spec.selector: field not allowed:
    ../../../pkg/spec/alpha.cue:74:12
    ../_base/kubernetes.cue:273:6
    ./app.cue:258:5
#App.base.alpha.kubernetes.#resources.services.app.spec.ports: field not allowed:
    ../../../pkg/spec/alpha.cue:74:12
    ../_base/kubernetes.cue:228:6
    ./app.cue:202:5
#App.base.alpha.kubernetes.#resources.services.app.spec.selector: field not allowed:
    ../../../pkg/spec/alpha.cue:74:12
    ../_base/kubernetes.cue:234:6
    ./app.cue:208:5

@mvdan
Copy link
Member

mvdan commented Oct 16, 2024

I can't share app.cue for now but will try to tailer down to a reproducible set.

Please let us know when you do find a smaller reproducer you can share with us. Because ideally we want bug fixes to be paired with a regression test. Plus, a reproducer is also useful to debug what's going wrong.

@yujunz
Copy link
Author

yujunz commented Oct 16, 2024

Trying to fix it blindly

diff --git a/devops/deploy/pkg/spec/alpha.cue b/devops/deploy/pkg/spec/alpha.cue
index 922acc0bfb5..f9f5a66b430 100644
--- a/devops/deploy/pkg/spec/alpha.cue
+++ b/devops/deploy/pkg/spec/alpha.cue
@@ -70,6 +70,8 @@ import (
                        R=(kv.name): {
                                kind:       k
                                apiVersion: v
+                               metadata?:  _
+                               spec?:      _
                                if kv.spec != _|_ {
                                        spec: kv.spec
                                }
diff --git a/devops/deploy/v1/app/_base/kubernetes.cue b/devops/deploy/v1/app/_base/kubernetes.cue
index 82253b1f690..fb18666f730 100644
--- a/devops/deploy/v1/app/_base/kubernetes.cue
+++ b/devops/deploy/v1/app/_base/kubernetes.cue
@@ -102,7 +102,10 @@ import (
                                        }
                                },
                        ]
-                       pod: spec: volumes: _local.volumes
+                       pod: spec: {
+                               volumes: _local.volumes
+                               ...
+                       }
                }

Reduces error to one.

#App.base.alpha.kubernetes.4.metadata: field not allowed:
    ../_base/kubernetes.cue:125:26
    ../../../pkg/spec/alpha.cue:58:3
    ../_base/kubernetes.cue:114:16
    ../_base/kubernetes.cue:126:6

But after removing metadata

-                                       metadata: annotations: "vault.hashicorp.com/agent-inject": "false"
+                                       // metadata: annotations: "vault.hashicorp.com/agent-inject": "false"

evalv3 crashed 🫠

CUE_EXPERIMENT=evalv3 cue eval
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x10e22880]

goroutine 1 [running]:
cuelang.org/go/internal/core/export.(*exporter).resolve(0xc000130210, 0xc001bfea00, {0x116616c0?, 0xc00065a6c0})
	cuelang.org/go/internal/core/export/adt.go:333 +0xa40
cuelang.org/go/internal/core/export.(*exporter).adt(0xc000130210, 0xc001bfea00, {0x5896aaa0?, 0xc00065a6c0})
	cuelang.org/go/internal/core/export/adt.go:137 +0x6a7
cuelang.org/go/internal/core/export.(*exporter).expr(0xc000130210, 0xc001bfea00?, {0x5896aaa0?, 0xc00065a6c0})
	cuelang.org/go/internal/core/export/expr.go:100 +0x3c5
cuelang.org/go/internal/core/export.(*exporter).innerExpr(...)
	cuelang.org/go/internal/core/export/expr.go:62
cuelang.org/go/internal/core/export.(*exporter).resolve(0xc000130210, 0xc001bfea00, {0x116617b0?, 0xc000660be0})
	cuelang.org/go/internal/core/export/adt.go:418 +0x72c
cuelang.org/go/internal/core/export.(*exporter).adt(0xc000130210, 0xc001bfea00, {0x5896ae88?, 0xc000660be0})
	cuelang.org/go/internal/core/export/adt.go:137 +0x6a7
cuelang.org/go/internal/core/export.(*exporter).expr(0xc000130210, 0xc001bfea00?, {0x5896ae88?, 0xc000660be0})
	cuelang.org/go/internal/core/export/expr.go:100 +0x3c5
cuelang.org/go/internal/core/export.(*exporter).innerExpr(...)
	cuelang.org/go/internal/core/export/expr.go:62
cuelang.org/go/internal/core/export.(*exporter).resolve(0xc000130210, 0xc001bfea00, {0x116617b0?, 0xc000660c00})
	cuelang.org/go/internal/core/export/adt.go:418 +0x72c
cuelang.org/go/internal/core/export.(*exporter).adt(0xc000130210, 0xc001bfea00, {0x5896ae88?, 0xc000660c00})
	cuelang.org/go/internal/core/export/adt.go:137 +0x6a7
cuelang.org/go/internal/core/export.(*exporter).adt(0xc000130210, 0xc000857da0, {0x11662438?, 0xc000cfe930})
	cuelang.org/go/internal/core/export/adt.go:297 +0x1d6a
cuelang.org/go/internal/core/export.(*exporter).expr(0xc000130210, 0xc000857da0?, {0x11662438?, 0xc000cfe930})
	cuelang.org/go/internal/core/export/expr.go:100 +0x3c5
cuelang.org/go/internal/core/export.(*exporter).vertex.func2({0xc000857da0, {0x1165d480, 0xc000cfe930}, {0x0, 0xc000eb05a0, 0x0, 0x0, 0x0, 0x0, {0x0, ...}}})
	cuelang.org/go/internal/core/export/value.go:106 +0x46
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea6c00?, 0x10b123f8?, 0x58d260d0?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:613 +0x102
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea6bc0?, 0x11cee108?, 0x40?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea6b80?, 0xc002746c76?, 0x0?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea6b40?, 0x113605f3?, 0x3?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea6b00?, 0xc000610c80?, 0x0?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea6ac0?, 0x58d25db0?, 0x0?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea6a80?, 0x10e34f8e?, 0xc000130210?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea6a40?, 0x10b06fb2?, 0x1158fd80?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea6a00?, 0xc00010afc0?, 0x39?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea69c0?, 0x1?, 0x231a4c97?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea6980?, 0xc00276fa80?, 0x10c06358?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea6940?, 0xc000680008?, 0xc00276fa80?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea6900?, 0xf?, 0xc00037a0d1?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea68c0?, 0xc0009c2f20?, 0x10e357e9?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea6840?, 0x11c54380?, 0xc0009c2ed8?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea6800?, 0xc0009c2ed8?, 0x10b06b7f?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.visitConjuncts({0xc000ea67c0?, 0x11667068?, 0xc0006144e0?}, 0xc0009c32d0)
	cuelang.org/go/internal/core/adt/composite.go:609 +0xba
cuelang.org/go/internal/core/adt.(*Vertex).VisitLeafConjuncts(...)
	cuelang.org/go/internal/core/adt/composite.go:602
cuelang.org/go/internal/core/export.(*exporter).vertex(0xc000130210, 0xc000e73680)
	cuelang.org/go/internal/core/export/value.go:105 +0x65a
cuelang.org/go/internal/core/export.(*exporter).structComposite(0xc000130210, 0xc000e730e0, {0x0, 0x0, 0x11cee108?})
	cuelang.org/go/internal/core/export/value.go:449 +0x7f3
cuelang.org/go/internal/core/export.(*exporter).vertex(0xc000130210, 0xc000e730e0)
	cuelang.org/go/internal/core/export/value.go:66 +0x595
cuelang.org/go/internal/core/export.(*exporter).structComposite(0xc000130210, 0xc000cee0a0, {0x0, 0x0, 0x1161b7c0?})
	cuelang.org/go/internal/core/export/value.go:449 +0x7f3
cuelang.org/go/internal/core/export.(*exporter).vertex(0xc000130210, 0xc000cee0a0)
	cuelang.org/go/internal/core/export/value.go:66 +0x595
cuelang.org/go/internal/core/export.(*exporter).structComposite(0xc000130210, 0xc000cb5c20, {0x0, 0x0, 0x11cee108?})
	cuelang.org/go/internal/core/export/value.go:449 +0x7f3
cuelang.org/go/internal/core/export.(*exporter).vertex(0xc000130210, 0xc000cb5c20)
	cuelang.org/go/internal/core/export/value.go:66 +0x595
cuelang.org/go/internal/core/export.(*exporter).structComposite(0xc000130210, 0xc000cb57c0, {0x0, 0x0, 0x1?})
	cuelang.org/go/internal/core/export/value.go:449 +0x7f3
cuelang.org/go/internal/core/export.(*exporter).vertex(0xc000130210, 0xc000cb57c0)
	cuelang.org/go/internal/core/export/value.go:66 +0x595
cuelang.org/go/internal/core/export.(*exporter).structComposite(0xc000130210, 0xc000a5bc20, {0x0, 0x0, 0x11cee108?})
	cuelang.org/go/internal/core/export/value.go:449 +0x7f3
cuelang.org/go/internal/core/export.(*exporter).vertex(0xc000130210, 0xc000a5bc20)
	cuelang.org/go/internal/core/export/value.go:66 +0x595
cuelang.org/go/internal/core/export.(*exporter).structComposite(0xc000130210, 0xc0009a3ea0, {0x0, 0x0, 0x11cee108?})
	cuelang.org/go/internal/core/export/value.go:449 +0x7f3
cuelang.org/go/internal/core/export.(*exporter).vertex(0xc000130210, 0xc0009a3ea0)
	cuelang.org/go/internal/core/export/value.go:66 +0x595
cuelang.org/go/internal/core/export.(*exporter).structComposite(0xc000130210, 0xc0009a35e0, {0x0, 0x0, 0x1161b7c0?})
	cuelang.org/go/internal/core/export/value.go:449 +0x7f3
cuelang.org/go/internal/core/export.(*exporter).vertex(0xc000130210, 0xc0009a35e0)
	cuelang.org/go/internal/core/export/value.go:66 +0x595
cuelang.org/go/internal/core/export.(*exporter).structComposite(0xc000130210, 0xc0008746e0, {0x0, 0x0, 0x1?})
	cuelang.org/go/internal/core/export/value.go:449 +0x7f3
cuelang.org/go/internal/core/export.(*exporter).vertex(0xc000130210, 0xc0008746e0)
	cuelang.org/go/internal/core/export/value.go:66 +0x595
cuelang.org/go/internal/core/export.(*exporter).structComposite(0xc000130210, 0xc0006686e0, {0x0, 0x0, 0x1161b7c0?})
	cuelang.org/go/internal/core/export/value.go:449 +0x7f3
cuelang.org/go/internal/core/export.(*exporter).vertex(0xc000130210, 0xc0006686e0)
	cuelang.org/go/internal/core/export/value.go:66 +0x595
cuelang.org/go/internal/core/export.(*exporter).structComposite(0xc000130210, 0xc0006681e0, {0x0, 0x0, 0x1161b7c0?})
	cuelang.org/go/internal/core/export/value.go:449 +0x7f3
cuelang.org/go/internal/core/export.(*exporter).vertex(0xc000130210, 0xc0006681e0)
	cuelang.org/go/internal/core/export/value.go:66 +0x595
cuelang.org/go/internal/core/export.(*exporter).structComposite(0xc000130210, 0xc000668000, {0x0, 0x0, 0x1161b7c0?})
	cuelang.org/go/internal/core/export/value.go:449 +0x7f3
cuelang.org/go/internal/core/export.(*exporter).vertex(0xc000130210, 0xc000668000)
	cuelang.org/go/internal/core/export/value.go:66 +0x595
cuelang.org/go/internal/core/export.(*exporter).value(0xc000130210, {0x11668420?, 0xc000668000?}, {0xc000694500?, 0x3?, 0x4?})
	cuelang.org/go/internal/core/export/value.go:171 +0x3c5
cuelang.org/go/internal/core/export.(*Profile).Vertex(0xc00024d3c0?, {0x11668330?, 0xc00024d3c0?}, {0xc00010afc0?, 0x11364f1b?}, 0xc000668000)
	cuelang.org/go/internal/core/export/export.go:241 +0x8f
cuelang.org/go/cue.Value.Syntax({0xc00024d3c0?, 0xc000668000?, 0x0?}, {0xc0009c7980, 0x5, 0x11c54bc0?})
	cuelang.org/go/cue/types.go:1010 +0x247
cuelang.org/go/cmd/cue/cmd.runEval(0xc00025c6f0, {0x11c54380, 0x0, 0x0})
	cuelang.org/go/cmd/cue/cmd/eval.go:169 +0x989
cuelang.org/go/cmd/cue/cmd.newEvalCmd.mkRunE.func1(0xc000194900?, {0x11c54380, 0x0, 0x0})
	cuelang.org/go/cmd/cue/cmd/root.go:136 +0x2cc
github.com/spf13/cobra.(*Command).execute(0xc000258c08, {0x11c54380, 0x0, 0x0})
	github.com/spf13/[email protected]/command.go:985 +0xaca
github.com/spf13/cobra.(*Command).ExecuteC(0xc000258308)
	github.com/spf13/[email protected]/command.go:1117 +0x3ff
github.com/spf13/cobra.(*Command).Execute(...)
	github.com/spf13/[email protected]/command.go:1041
cuelang.org/go/cmd/cue/cmd.(*Command).Run(0xc00025c6f0, {0x11c54380?, 0x115786a0?})
	cuelang.org/go/cmd/cue/cmd/root.go:401 +0x1f
cuelang.org/go/cmd/cue/cmd.Main()
	cuelang.org/go/cmd/cue/cmd/root.go:309 +0x95
main.main()
	cuelang.org/go/cmd/cue/main.go:24 +0x13

@mvdan mvdan changed the title panic: runtime error: invalid memory address or nil pointer dereference internal/core/export: UpCount nil dereference panic Oct 17, 2024
@mvdan mvdan added NeedsInfo More information or clarification needed from the user panic and removed Triage Requires triage/attention labels Oct 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
NeedsInfo More information or clarification needed from the user NeedsInvestigation panic
Projects
None yet
Development

No branches or pull requests

2 participants