kerberos-io/agent

Static binary - Fatal error: unexpected signal during runtime execution

AntonVonDelta opened this issue · 2 comments

Hi! I am trying to run the static binaries but I get the following error:
Ubuntu 22.10

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

runtime stack:
runtime.throw({0x20e2763?, 0x4180048?})
        /usr/local/go/src/runtime/panic.go:1047 +0x5d fp=0x7ffecfd28f68 sp=0x7ffecfd28f38 pc=0x4c273d
runtime.sigpanic()
        /usr/local/go/src/runtime/signal_unix.go:819 +0x369 fp=0x7ffecfd28fb8 sp=0x7ffecfd28f68 pc=0x4d8de9

goroutine 1 [syscall, locked to thread]:
runtime.cgocall(0xf92800, 0xc00002d578)
        /usr/local/go/src/runtime/cgocall.go:158 +0x5c fp=0xc00002d550 sp=0xc00002d518 pc=0x48e43c
os/user._Cfunc_mygetpwuid_r(0x0, 0xc00049f380, 0x417e460, 0x400, 0xc0000b0228)
        _cgo_gotypes.go:176 +0x4c fp=0xc00002d578 sp=0xc00002d550 pc=0xbba24c
os/user.lookupUnixUid.func1.1(0x0, 0x3807780?, 0xc00002d610?, 0x498207?)
        /usr/local/go/src/os/user/cgo_lookup_unix.go:102 +0xa6 fp=0xc00002d5d8 sp=0xc00002d578 pc=0xbba966
os/user.lookupUnixUid.func1()
        /usr/local/go/src/os/user/cgo_lookup_unix.go:102 +0x29 fp=0xc00002d608 sp=0xc00002d5d8 pc=0xbba8a9
os/user.retryWithBuffer(0xc0000ab800, 0xc00002d6e8)
        /usr/local/go/src/os/user/cgo_lookup_unix.go:244 +0x39 fp=0xc00002d650 sp=0xc00002d608 pc=0xbbaf99
os/user.lookupUnixUid(0x0)
        /usr/local/go/src/os/user/cgo_lookup_unix.go:95 +0x10f fp=0xc00002d728 sp=0xc00002d650 pc=0xbba6af
os/user.current()
        /usr/local/go/src/os/user/cgo_lookup_unix.go:48 +0x47 fp=0xc00002d768 sp=0xc00002d728 pc=0xbba587
os/user.Current.func1()
        /usr/local/go/src/os/user/lookup.go:15 +0x17 fp=0xc00002d778 sp=0xc00002d768 pc=0xbb9fd7
sync.(*Once).doSlow(0x0?, 0xc00002d7e8?)
        /usr/local/go/src/sync/once.go:74 +0xc2 fp=0xc00002d7d8 sp=0xc00002d778 pc=0x500b82
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=0xc00002d808 sp=0xc00002d7d8 pc=0xbba077
github.com/golang/glog.init.1()
        /go/pkg/mod/github.com/golang/glog@v0.0.0-20160126235308-23def4e6c14b/glog_file.go:63 +0x92 fp=0xc00002d860 sp=0xc00002d808 pc=0xe8da72
runtime.doInit(0x2f902e0)
        /usr/local/go/src/runtime/proc.go:6321 +0x126 fp=0xc00002d990 sp=0xc00002d860 pc=0x4d2246
runtime.doInit(0x2f92e60)
        /usr/local/go/src/runtime/proc.go:6298 +0x71 fp=0xc00002dac0 sp=0xc00002d990 pc=0x4d2191
runtime.doInit(0x2f8a980)
        /usr/local/go/src/runtime/proc.go:6298 +0x71 fp=0xc00002dbf0 sp=0xc00002dac0 pc=0x4d2191
runtime.doInit(0x2f8ec00)
        /usr/local/go/src/runtime/proc.go:6298 +0x71 fp=0xc00002dd20 sp=0xc00002dbf0 pc=0x4d2191
runtime.doInit(0x2f96a20)
        /usr/local/go/src/runtime/proc.go:6298 +0x71 fp=0xc00002de50 sp=0xc00002dd20 pc=0x4d2191
runtime.doInit(0x2f8bb80)
        /usr/local/go/src/runtime/proc.go:6298 +0x71 fp=0xc00002df80 sp=0xc00002de50 pc=0x4d2191
runtime.main()
        /usr/local/go/src/runtime/proc.go:233 +0x1d3 fp=0xc00002dfe0 sp=0xc00002df80 pc=0x4c4f53
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc00002dfe8 sp=0xc00002dfe0 pc=0x4f6561

goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000064fb0 sp=0xc000064f90 pc=0x4c5356
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:369
runtime.forcegchelper()
        /usr/local/go/src/runtime/proc.go:302 +0xad fp=0xc000064fe0 sp=0xc000064fb0 pc=0x4c51ed
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000064fe8 sp=0xc000064fe0 pc=0x4f6561
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=0xc000065790 sp=0xc000065770 pc=0x4c5356
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:369
runtime.bgsweep(0x0?)
        /usr/local/go/src/runtime/mgcsweep.go:297 +0xd7 fp=0xc0000657c8 sp=0xc000065790 pc=0x4afc57
runtime.gcenable.func1()
        /usr/local/go/src/runtime/mgc.go:178 +0x26 fp=0xc0000657e0 sp=0xc0000657c8 pc=0x4a48a6
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000657e8 sp=0xc0000657e0 pc=0x4f6561
created by runtime.gcenable
        /usr/local/go/src/runtime/mgc.go:178 +0x6b

goroutine 4 [GC scavenge wait]:
runtime.gopark(0xc00004e070?, 0x22e7bf8?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000065f70 sp=0xc000065f50 pc=0x4c5356
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:369
runtime.(*scavengerState).park(0x3806b00)
        /usr/local/go/src/runtime/mgcscavenge.go:389 +0x53 fp=0xc000065fa0 sp=0xc000065f70 pc=0x4adcb3
runtime.bgscavenge(0x0?)
        /usr/local/go/src/runtime/mgcscavenge.go:622 +0x65 fp=0xc000065fc8 sp=0xc000065fa0 pc=0x4ae2a5
runtime.gcenable.func2()
        /usr/local/go/src/runtime/mgc.go:179 +0x26 fp=0xc000065fe0 sp=0xc000065fc8 pc=0x4a4846
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000065fe8 sp=0xc000065fe0 pc=0x4f6561
created by runtime.gcenable
        /usr/local/go/src/runtime/mgc.go:179 +0xaa

goroutine 18 [finalizer wait]:
runtime.gopark(0x3807780?, 0xc00009e1a0?, 0x0?, 0x0?, 0xc000064770?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000064628 sp=0xc000064608 pc=0x4c5356
runtime.goparkunlock(...)
        /usr/local/go/src/runtime/proc.go:369
runtime.runfinq()
        /usr/local/go/src/runtime/mfinal.go:180 +0x10f fp=0xc0000647e0 sp=0xc000064628 pc=0x4a39af
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000647e8 sp=0xc0000647e0 pc=0x4f6561
created by runtime.createfing
        /usr/local/go/src/runtime/mfinal.go:157 +0x45

goroutine 5 [GC worker (idle)]:
runtime.gopark(0x531f0b3fa6c56?, 0x160?, 0xa0?, 0x7?, 0x490e79?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000060750 sp=0xc000060730 pc=0x4c5356
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0000607e0 sp=0xc000060750 pc=0x4a69f1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000607e8 sp=0xc0000607e0 pc=0x4f6561
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 6 [GC worker (idle)]:
runtime.gopark(0x531f0b3fb0ea2?, 0x0?, 0x0?, 0x0?, 0x0?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000066750 sp=0xc000066730 pc=0x4c5356
runtime.gcBgMarkWorker()
        /usr/local/go/src/runtime/mgc.go:1235 +0xf1 fp=0xc0000667e0 sp=0xc000066750 pc=0x4a69f1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000667e8 sp=0xc0000667e0 pc=0x4f6561
created by runtime.gcBgMarkStartWorkers
        /usr/local/go/src/runtime/mgc.go:1159 +0x25

goroutine 7 [chan receive]:
runtime.gopark(0xc000061ed8?, 0x4cb19b?, 0x20?, 0x1f?, 0x4e1a85?)
        /usr/local/go/src/runtime/proc.go:363 +0xd6 fp=0xc000061ec8 sp=0xc000061ea8 pc=0x4c5356
runtime.chanrecv(0xc00007c060, 0xc000061fa0, 0x1)
        /usr/local/go/src/runtime/chan.go:583 +0x49b fp=0xc000061f58 sp=0xc000061ec8 pc=0x49143b
runtime.chanrecv2(0x6fc23ac00?, 0x0?)
        /usr/local/go/src/runtime/chan.go:447 +0x18 fp=0xc000061f80 sp=0xc000061f58 pc=0x490f78
github.com/golang/glog.(*loggingT).flushDaemon(0x0?)
        /go/pkg/mod/github.com/golang/glog@v0.0.0-20160126235308-23def4e6c14b/glog.go:882 +0x6a fp=0xc000061fc8 sp=0xc000061f80 pc=0xe8d68a
github.com/golang/glog.init.0.func1()
        /go/pkg/mod/github.com/golang/glog@v0.0.0-20160126235308-23def4e6c14b/glog.go:410 +0x26 fp=0xc000061fe0 sp=0xc000061fc8 pc=0xe8b8a6
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc000061fe8 sp=0xc000061fe0 pc=0x4f6561
created by github.com/golang/glog.init.0
        /go/pkg/mod/github.com/golang/glog@v0.0.0-20160126235308-23def4e6c14b/glog.go:410 +0x1bf

go env:

GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="off"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.20.2"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
GOWORK=""
CGO_CFLAGS="-O2 -g"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-O2 -g"
CGO_FFLAGS="-O2 -g"
CGO_LDFLAGS="-O2 -g"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build1815353546=/tmp/go-build -gno-record-gcc-switches"

I couldn't find a solution to this error. Many people seem to have it but not all on 'lookupUnixUid' function (as shown in the stacktrace). It looks like a go issue but I don't know how to continue from this point.

I am running this on LXC on proxmox. I don't want to use docker.

Thanks for reporting @AntonVonDelta needs to be investigated!

The issue is resolved in latest build it was due to a missing link while building the static build.
bf97bd7