kpt icon indicating copy to clipboard operation
kpt copied to clipboard

kpt panics when --as-current-user option is enabled

Open mgoltzsche opened this issue 2 years ago • 1 comments

Expected behavior

kpt fn eval should not panic when the --as-current-user option is provided.

Actual behavior

When kpt fn evalis run with the --as-current-user option enabled, it panics:

fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0xe5 pc=0x7fc34c554ef4]

runtime stack:
runtime.throw({0x294a34f?, 0x0?})
	/usr/local/go/src/runtime/panic.go:1047 +0x5d fp=0x7ffd997a9100 sp=0x7ffd997a90d0 pc=0x48347d
runtime.sigpanic()
	/usr/local/go/src/runtime/signal_unix.go:819 +0x369 fp=0x7ffd997a9150 sp=0x7ffd997a9100 pc=0x499a29

goroutine 1 [syscall]:
runtime.cgocall(0x1a0e5f0, 0xc0023dec10)
	/usr/local/go/src/runtime/cgocall.go:158 +0x5c fp=0xc0023debe8 sp=0xc0023debb0 pc=0x44f7bc
os/user._Cfunc_mygetpwuid_r(0x3e8, 0xc001cfc270, 0x59394e0, 0x400, 0xc0022c81c0)
	_cgo_gotypes.go:176 +0x4c fp=0xc0023dec10 sp=0xc0023debe8 pc=0xad5e4c
os/user.lookupUnixUid.func1.1(0x3e8, 0x3f71800?, 0xc0023deca8?, 0x459667?)
	/usr/local/go/src/os/user/cgo_lookup_unix.go:102 +0xa6 fp=0xc0023dec70 sp=0xc0023dec10 pc=0xad69c6
...

Information

The behaviour appeared on Linux/Ubuntu 22.04 hosts in kpt version v1.0.0-beta.21 and still exists in version v1.0.0-beta.29. It affects the kpt linux amd64 binaries published with the GitHub releases.

Steps to reproduce the behavior

(On an Ubuntu 22.04 host)

  1. Install the kpt v1.0.0-beta.21 linux amd64 binary (or any newer version up to v1.0.0-beta.29) from the GitHub release.
  2. Create a new empty directory and change into it: mkdir testdir && cd testdir
  3. Within the new directory, create a function config file ./fn-config.yaml:
cat - >./fn-config.yaml <<-EOF
apiVersion: khelm.mgoltzsche.github.com/v2
kind: ChartRenderer
metadata:
  name: remote-chart
  annotations:
    config.kubernetes.io/local-config: "true"
repository: https://charts.jetstack.io
chart: cert-manager
version: 0.9.1
name: myrelease
outputPath: output-remote.yaml
EOF
  1. Run kpt fn eval with the --as-current-user option:
$ kpt fn eval --as-current-user --network --image=mgoltzsche/khelm:2.3.0 --fn-config=./fn-config.yaml .
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0xe5 pc=0x7fc34c554ef4]

runtime stack:
runtime.throw({0x294a34f?, 0x0?})
	/usr/local/go/src/runtime/panic.go:1047 +0x5d fp=0x7ffd997a9100 sp=0x7ffd997a90d0 pc=0x48347d
runtime.sigpanic()
	/usr/local/go/src/runtime/signal_unix.go:819 +0x369 fp=0x7ffd997a9150 sp=0x7ffd997a9100 pc=0x499a29

goroutine 1 [syscall]:
runtime.cgocall(0x1a0e5f0, 0xc0023dec10)
	/usr/local/go/src/runtime/cgocall.go:158 +0x5c fp=0xc0023debe8 sp=0xc0023debb0 pc=0x44f7bc
os/user._Cfunc_mygetpwuid_r(0x3e8, 0xc001cfc270, 0x59394e0, 0x400, 0xc0022c81c0)
	_cgo_gotypes.go:176 +0x4c fp=0xc0023dec10 sp=0xc0023debe8 pc=0xad5e4c
os/user.lookupUnixUid.func1.1(0x3e8, 0x3f71800?, 0xc0023deca8?, 0x459667?)
	/usr/local/go/src/os/user/cgo_lookup_unix.go:102 +0xa6 fp=0xc0023dec70 sp=0xc0023dec10 pc=0xad69c6
os/user.lookupUnixUid.func1()
	/usr/local/go/src/os/user/cgo_lookup_unix.go:102 +0x29 fp=0xc0023deca0 sp=0xc0023dec70 pc=0xad6909
os/user.retryWithBuffer(0xc0022ed810, 0xc0023ded80)
	/usr/local/go/src/os/user/cgo_lookup_unix.go:244 +0x39 fp=0xc0023dece8 sp=0xc0023deca0 pc=0xad75b9
os/user.lookupUnixUid(0x3e8)
	/usr/local/go/src/os/user/cgo_lookup_unix.go:95 +0x10f fp=0xc0023dedc0 sp=0xc0023dece8 pc=0xad670f
os/user.current()
	/usr/local/go/src/os/user/cgo_lookup_unix.go:48 +0x47 fp=0xc0023dee00 sp=0xc0023dedc0 pc=0xad6587
os/user.Current.func1()
	/usr/local/go/src/os/user/lookup.go:15 +0x17 fp=0xc0023dee10 sp=0xc0023dee00 pc=0xad5817
sync.(*Once).doSlow(0x0?, 0x0?)
	/usr/local/go/src/sync/once.go:74 +0xc2 fp=0xc0023dee70 sp=0xc0023dee10 pc=0x4c27c2
sync.(*Once).Do(...)
	/usr/local/go/src/sync/once.go:65
os/user.Current()
	/usr/local/go/src/os/user/lookup.go:15 +0x37 fp=0xc0023deea0 sp=0xc0023dee70 pc=0xad58b7
github.com/GoogleContainerTools/kpt/thirdparty/kyaml/runfn.getUIDGID(0xa0?, 0xc0022ed1e0?)
	/go/src/github.com/GoogleContainerTools/kpt/thirdparty/kyaml/runfn/runfn.go:319 +0x30 fp=0xc0023def00 sp=0xc0023deea0 pc=0x19bb110
github.com/GoogleContainerTools/kpt/thirdparty/kyaml/runfn.(*RunFns).defaultFnFilterProvider(0xc00217e8c0, {0x0, {{0x7ffd997aa373, 0x16}, 0x0, {0x0, 0x0, 0x0}, {0x0, 0x0, ...}}, ...}, ...)
	/go/src/github.com/GoogleContainerTools/kpt/thirdparty/kyaml/runfn/runfn.go:372 +0x35b fp=0xc0023df0f0 sp=0xc0023def00 pc=0x19bb5db
github.com/GoogleContainerTools/kpt/thirdparty/kyaml/runfn.(*RunFns).defaultFnFilterProvider-fm({0x0, {{0x7ffd997aa373, 0x16}, 0x0, {0x0, 0x0, 0x0}, {0x0, 0x0, 0x0}}, ...}, ...)
	<autogenerated>:1 +0x65 fp=0xc0023df1a8 sp=0xc0023df0f0 pc=0x19bbe05
github.com/GoogleContainerTools/kpt/thirdparty/kyaml/runfn.RunFns.getFilters({{0x2cd4fe8, 0xc001c5b2f0}, {0x0, 0x0, 0x0}, {0x28fc870, 0x1}, {0xc0022e43c0, 0x25}, {0xc002163840, ...}, ...})
	/go/src/github.com/GoogleContainerTools/kpt/thirdparty/kyaml/runfn/runfn.go:159 +0x11c fp=0xc0023df438 sp=0xc0023df1a8 pc=0x19b9b7c
github.com/GoogleContainerTools/kpt/thirdparty/kyaml/runfn.RunFns.getNodesAndFilters({{0x2cd4fe8, 0xc001c5b2f0}, {0x0, 0x0, 0x0}, {0x28fc870, 0x1}, {0xc0022e43c0, 0x25}, {0xc002163840, ...}, ...})
	/go/src/github.com/GoogleContainerTools/kpt/thirdparty/kyaml/runfn/runfn.go:144 +0x2b8 fp=0xc0023df698 sp=0xc0023df438 pc=0x19b99b8
github.com/GoogleContainerTools/kpt/thirdparty/kyaml/runfn.RunFns.Execute({{0x2cd4fe8, 0xc001c5b2f0}, {0x0, 0x0, 0x0}, {0x28fc870, 0x1}, {0x0, 0x0}, {0x7ffd997aa396, ...}, ...})
	/go/src/github.com/GoogleContainerTools/kpt/thirdparty/kyaml/runfn/runfn.go:108 +0xd8 fp=0xc0023df8a8 sp=0xc0023df698 pc=0x19b9658
github.com/GoogleContainerTools/kpt/thirdparty/cmdconfig/commands/cmdeval.(*EvalFnRunner).runE(0xc0016c5400, 0x0?, {0x0?, 0x0?, 0x0?})
	/go/src/github.com/GoogleContainerTools/kpt/thirdparty/cmdconfig/commands/cmdeval/cmdeval.go:176 +0x78 fp=0xc0023dfc48 sp=0xc0023df8a8 pc=0x19bd3f8
github.com/GoogleContainerTools/kpt/thirdparty/cmdconfig/commands/cmdeval.(*EvalFnRunner).runE-fm(0xc00217b200?, {0xc0000cde50?, 0x5?, 0x5?})
	<autogenerated>:1 +0x3a fp=0xc0023dfc80 sp=0xc0023dfc48 pc=0x19c08da
github.com/spf13/cobra.(*Command).execute(0xc00217b200, {0xc0000cde00, 0x5, 0x5})
	/root/go/pkg/mod/github.com/spf13/[email protected]/command.go:916 +0x862 fp=0xc0023dfdb8 sp=0xc0023dfc80 pc=0x1482da2
github.com/spf13/cobra.(*Command).ExecuteC(0xc00217ac00)
	/root/go/pkg/mod/github.com/spf13/[email protected]/command.go:1044 +0x3bd fp=0xc0023dfe70 sp=0xc0023dfdb8 pc=0x148369d
github.com/spf13/cobra.(*Command).Execute(...)
	/root/go/pkg/mod/github.com/spf13/[email protected]/command.go:968
k8s.io/component-base/cli.run(0xc00217ac00)
	/root/go/pkg/mod/k8s.io/[email protected]/cli/run.go:146 +0x317 fp=0xc0023dff30 sp=0xc0023dfe70 pc=0x1a0de37
k8s.io/component-base/cli.RunNoErrOutput(...)
	/root/go/pkg/mod/k8s.io/[email protected]/cli/run.go:84
main.runMain()
	/go/src/github.com/GoogleContainerTools/kpt/main.go:62 +0x45 fp=0xc0023dff68 sp=0xc0023dff30 pc=0x1a0e105
main.main()
	/go/src/github.com/GoogleContainerTools/kpt/main.go:46 +0x19 fp=0xc0023dff80 sp=0xc0023dff68 pc=0x1a0e099
runtime.main()
	/usr/local/go/src/runtime/proc.go:250 +0x212 fp=0xc0023dffe0 sp=0xc0023dff80 pc=0x485ff2
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0023dffe8 sp=0xc0023dffe0 pc=0x4b5a01

goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000094fb0 sp=0xc000094f90 pc=0x4863b6
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:369
runtime.forcegchelper()
	/usr/local/go/src/runtime/proc.go:302 +0xad fp=0xc000094fe0 sp=0xc000094fb0 pc=0x48624d
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000094fe8 sp=0xc000094fe0 pc=0x4b5a01
created by runtime.init.6
	/usr/local/go/src/runtime/proc.go:290 +0x25

goroutine 3 [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000095790 sp=0xc000095770 pc=0x4863b6
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:369
runtime.bgsweep(0x0?)
	/usr/local/go/src/runtime/mgcsweep.go:297 +0xd7 fp=0xc0000957c8 sp=0xc000095790 pc=0x4711f7
runtime.gcenable.func1()
	/usr/local/go/src/runtime/mgc.go:178 +0x26 fp=0xc0000957e0 sp=0xc0000957c8 pc=0x465d86
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000957e8 sp=0xc0000957e0 pc=0x4b5a01
created by runtime.gcenable
	/usr/local/go/src/runtime/mgc.go:178 +0x6b

goroutine 4 [GC scavenge wait]:
runtime.gopark(0xc0000be000?, 0x2caf9a0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000095f70 sp=0xc000095f50 pc=0x4863b6
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:369
runtime.(*scavengerState).park(0x3f70340)
	/usr/local/go/src/runtime/mgcscavenge.go:389 +0x53 fp=0xc000095fa0 sp=0xc000095f70 pc=0x46f1d3
runtime.bgscavenge(0x0?)
	/usr/local/go/src/runtime/mgcscavenge.go:622 +0x65 fp=0xc000095fc8 sp=0xc000095fa0 pc=0x46f7e5
runtime.gcenable.func2()
	/usr/local/go/src/runtime/mgc.go:179 +0x26 fp=0xc000095fe0 sp=0xc000095fc8 pc=0x465d26
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000095fe8 sp=0xc000095fe0 pc=0x4b5a01
created by runtime.gcenable
	/usr/local/go/src/runtime/mgc.go:179 +0xaa

goroutine 5 [finalizer wait]:
runtime.gopark(0x3f71800?, 0xc000007860?, 0x0?, 0x0?, 0xc000094770?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000094628 sp=0xc000094608 pc=0x4863b6
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:369
runtime.runfinq()
	/usr/local/go/src/runtime/mfinal.go:180 +0x10f fp=0xc0000947e0 sp=0xc000094628 pc=0x464e8f
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000947e8 sp=0xc0000947e0 pc=0x4b5a01
created by runtime.createfing
	/usr/local/go/src/runtime/mfinal.go:157 +0x45

goroutine 6 [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000096750 sp=0xc000096730 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0000967e0 sp=0xc000096750 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000967e8 sp=0xc0000967e0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 7 [GC worker (idle)]:
runtime.gopark(0xb8d642604bc?, 0x3?, 0x7e?, 0xf3?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000096f50 sp=0xc000096f30 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc000096fe0 sp=0xc000096f50 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000096fe8 sp=0xc000096fe0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 8 [GC worker (idle)]:
runtime.gopark(0xb8d6425d3f2?, 0x1?, 0xed?, 0x5d?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000097750 sp=0xc000097730 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0000977e0 sp=0xc000097750 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000977e8 sp=0xc0000977e0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 9 [GC worker (idle)]:
runtime.gopark(0xb8d64265463?, 0x1?, 0xa?, 0x37?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000097f50 sp=0xc000097f30 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc000097fe0 sp=0xc000097f50 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000097fe8 sp=0xc000097fe0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 10 [GC worker (idle)]:
runtime.gopark(0xb8d6425eeb4?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000090750 sp=0xc000090730 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0000907e0 sp=0xc000090750 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000907e8 sp=0xc0000907e0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 11 [GC worker (idle)]:
runtime.gopark(0xb8d6425d8d4?, 0x1?, 0x1a?, 0x3b?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000090f50 sp=0xc000090f30 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc000090fe0 sp=0xc000090f50 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000090fe8 sp=0xc000090fe0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 12 [GC worker (idle)]:
runtime.gopark(0xb8d64265373?, 0x3?, 0xd8?, 0xa?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000091750 sp=0xc000091730 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0000917e0 sp=0xc000091750 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000917e8 sp=0xc0000917e0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 13 [GC worker (idle)]:
runtime.gopark(0xb8d6425f15c?, 0x3?, 0x2f?, 0x64?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000091f50 sp=0xc000091f30 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc000091fe0 sp=0xc000091f50 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000091fe8 sp=0xc000091fe0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 14 [GC worker (idle)]:
runtime.gopark(0xb8d6425f922?, 0x3?, 0x82?, 0x1e?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000092750 sp=0xc000092730 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0000927e0 sp=0xc000092750 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000927e8 sp=0xc0000927e0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 15 [GC worker (idle)]:
runtime.gopark(0xb8d6425deba?, 0x1?, 0x10?, 0x18?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000092f50 sp=0xc000092f30 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc000092fe0 sp=0xc000092f50 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000092fe8 sp=0xc000092fe0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 16 [GC worker (idle)]:
runtime.gopark(0xb8d6425e7d4?, 0x3?, 0xbe?, 0x19?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000093750 sp=0xc000093730 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0000937e0 sp=0xc000093750 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000937e8 sp=0xc0000937e0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 18 [GC worker (idle)]:
runtime.gopark(0xb8d6425cf60?, 0x1?, 0xb4?, 0x13?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000093f50 sp=0xc000093f30 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc000093fe0 sp=0xc000093f50 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000093fe8 sp=0xc000093fe0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 34 [GC worker (idle)]:
runtime.gopark(0xb8d6425f9d6?, 0x3?, 0x4b?, 0x84?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000114750 sp=0xc000114730 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0001147e0 sp=0xc000114750 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0001147e8 sp=0xc0001147e0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 35 [GC worker (idle)]:
runtime.gopark(0xb8d6425d140?, 0x3?, 0xee?, 0xcf?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000114f50 sp=0xc000114f30 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc000114fe0 sp=0xc000114f50 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000114fe8 sp=0xc000114fe0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 36 [GC worker (idle)]:
runtime.gopark(0x3fab160?, 0x1?, 0x45?, 0xdf?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000115750 sp=0xc000115730 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0001157e0 sp=0xc000115750 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0001157e8 sp=0xc0001157e0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 37 [GC worker (idle)]:
runtime.gopark(0x3fab160?, 0x3?, 0x60?, 0x28?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000115f50 sp=0xc000115f30 pc=0x4863b6
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc000115fe0 sp=0xc000115f50 pc=0x467ed1
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000115fe8 sp=0xc000115fe0 pc=0x4b5a01
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 19 [sleep]:
runtime.gopark(0xb8d649afd84?, 0x0?, 0x0?, 0x0?, 0x0?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000112758 sp=0xc000112738 pc=0x4863b6
time.Sleep(0x6fc23ac00)
	/usr/local/go/src/runtime/time.go:195 +0x135 fp=0xc000112798 sp=0xc000112758 pc=0x4b27f5
sigs.k8s.io/controller-runtime/pkg/log.init.0.func1()
	/root/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/log/log.go:63 +0x38 fp=0xc0001127e0 sp=0xc000112798 pc=0x184def8
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0001127e8 sp=0xc0001127e0 pc=0x4b5a01
created by sigs.k8s.io/controller-runtime/pkg/log.init.0
	/root/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/log/log.go:62 +0x25

goroutine 20 [select]:
runtime.gopark(0xc000112fa0?, 0x2?, 0x0?, 0x0?, 0xc000112f64?)
	/usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc0000a5de0 sp=0xc0000a5dc0 pc=0x4863b6
runtime.selectgo(0xc0000a5fa0, 0xc000112f60, 0x0?, 0x0, 0x0?, 0x1)
	/usr/local/go/src/runtime/select.go:328 +0x7bc fp=0xc0000a5f20 sp=0xc0000a5de0 pc=0x495abc
k8s.io/klog/v2.(*flushDaemon).run.func1()
	/root/go/pkg/mod/k8s.io/klog/[email protected]/klog.go:1130 +0x11e fp=0xc0000a5fe0 sp=0xc0000a5f20 pc=0xadc35e
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000a5fe8 sp=0xc0000a5fe0 pc=0x4b5a01
created by k8s.io/klog/v2.(*flushDaemon).run
	/root/go/pkg/mod/k8s.io/klog/[email protected]/klog.go:1126 +0x17b

mgoltzsche avatar Mar 09 '23 02:03 mgoltzsche

Thanks @mgoltzsche for filing detailed report. It did help me reproduce it quickly.

I haven't solved the issue yet, but have some more info so sharing that here.

I am seeing this issue only with the released binaries. Surprisingly when I run command with the kpt binary built using make build command I do see the cert-manager manifests (sharing the output):

kpt fn eval --as-current-user --network --image=mgoltzsche/khelm:2.3.0 --fn-config=./fn-config.yaml .
[RUNNING] "mgoltzsche/khelm:2.3.0"
[PASS] "mgoltzsche/khelm:2.3.0" in 900ms
  Stderr:
    "Running khelm 2.3.0 (helm 3.11.2)"
    "WARNING: using untrusted repository \"https://charts.jetstack.io\""
    "Downloading repository index of https://charts.jetstack.io"
    "Downloading chart cert-manager v0.9.1 from repo https://charts.jetstack.io"
    ...(1 line(s) truncated, use '--truncate-output=false' to disable)

The stacktrace from a released binary has calls to CGO for looking up a user at the top. I do know we introduced CGO related changes at some point in our release process.

	/usr/local/go/src/os/user/cgo_lookup_unix.go:244 +0x39 fp=0xc0023dece8 sp=0xc0023deca0 pc=0xad75b9
os/user.lookupUnixUid(0x3e8)
	/usr/local/go/src/os/user/cgo_lookup_unix.go:95 +0x10f fp=0xc0023dedc0 sp=0xc0023dece8 pc=0xad670f
os/user.current()
	/usr/local/go/src/os/user/cgo_lookup_unix.go:48 +0x47 fp=0xc0023dee00 sp=0xc0023dedc0 pc=0xad6587
os/user.Current.func1()
	/usr/local/go/src/os/user/lookup.go:15

I will keep digging more into it. But if you are blocked on it, building kpt without CGO (make build installs kpt under $GOBIN) can help you work around it (as I have verified it earlier).

droot avatar Mar 14 '23 00:03 droot

Apparently this was solved. I just upgraded to v1.0.0-beta.54 (it was probably solved in a previous version already).

mgoltzsche avatar Jul 21 '24 01:07 mgoltzsche