digitalocean / clusterlint

A best practices checker for Kubernetes clusters. 🤠
Apache License 2.0
547 stars 45 forks source link

Fatal error when building clusterlint on Go 1.17 #125

Closed timoreimann closed 3 years ago

timoreimann commented 3 years ago

I'm seeing the following fatal error when building clusterlint on Go 1.17:

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

runtime stack:
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff203e0c9e
stack: frame={sp:0x7ffeefbfeb08, fp:0x7ffeefbfeb58} stack=[0x7ffeefb7fba8,0x7ffeefbfec10)
0x00007ffeefbfea08:  0x01007ffeefbfea28  0x0000000000000004
0x00007ffeefbfea18:  0x000000000000001f  0x00007fff203e0c9e
0x00007ffeefbfea28:  0x0b01dfacedebac1e  0x0000000000000001
0x00007ffeefbfea38:  0x0000000004035a91 <runtime.throw+0x0000000000000071>  0x00007ffeefbfead8
0x00007ffeefbfea48:  0x00000000052148a1  0x00007ffeefbfea90
0x00007ffeefbfea58:  0x0000000004035d48 <runtime.fatalthrow.func1+0x0000000000000048>  0x0000000005f15220
0x00007ffeefbfea68:  0x0000000000000001  0x0000000000000001
0x00007ffeefbfea78:  0x00007ffeefbfead8  0x0000000004035a91 <runtime.throw+0x0000000000000071>
0x00007ffeefbfea88:  0x0000000005f15220  0x00007ffeefbfeac8
0x00007ffeefbfea98:  0x0000000004035cd0 <runtime.fatalthrow+0x0000000000000050>  0x00007ffeefbfeaa8
0x00007ffeefbfeaa8:  0x0000000004035d00 <runtime.fatalthrow.func1+0x0000000000000000>  0x0000000005f15220
0x00007ffeefbfeab8:  0x0000000004035a91 <runtime.throw+0x0000000000000071>  0x00007ffeefbfead8
0x00007ffeefbfeac8:  0x00007ffeefbfeaf8  0x0000000004035a91 <runtime.throw+0x0000000000000071>
0x00007ffeefbfead8:  0x00007ffeefbfeae0  0x0000000004035ac0 <runtime.throw.func1+0x0000000000000000>
0x00007ffeefbfeae8:  0x00000000052241aa  0x000000000000002a
0x00007ffeefbfeaf8:  0x00007ffeefbfeb48  0x000000000404b4f6 <runtime.sigpanic+0x0000000000000396>
0x00007ffeefbfeb08: <0x00000000052241aa  0x0000000005e6a248
0x00007ffeefbfeb18:  0x00007ffeefbfeb88  0x00000000040289a6 <runtime.(*mheap).allocSpan+0x0000000000000546>
0x00007ffeefbfeb28:  0x000000c000494000  0x0000000000002000
0x00007ffeefbfeb38:  0x000000c000000008  0x0000000000000000
0x00007ffeefbfeb48:  0x00007ffeefbfeb90 !0x00007fff203e0c9e
0x00007ffeefbfeb58: >0x00007ffeefbfeb90  0x0000000005e85000
0x00007ffeefbfeb68:  0x000000000000047c  0x0000000004521545 <golang.org/x/sys/unix.libc_ioctl_trampoline+0x0000000000000005>
0x00007ffeefbfeb78:  0x000000000406835f <runtime.syscall+0x000000000000001f>  0x000000c0001cdbf0
0x00007ffeefbfeb88:  0x00007ffeefbfebd0  0x000000c0001cdbc0
0x00007ffeefbfeb98:  0x00000000040661d0 <runtime.asmcgocall+0x0000000000000070>  0x0000000000000001
0x00007ffeefbfeba8:  0x000000c000410a00  0x0a00000000000001
0x00007ffeefbfebb8:  0x0000000000000000  0x0000000005f49b78
0x00007ffeefbfebc8:  0x0000000000000468  0x000000c0000001a0
0x00007ffeefbfebd8:  0x00000000040642e9 <runtime.systemstack+0x0000000000000049>  0x0000000000000004
0x00007ffeefbfebe8:  0x00000000053adb30  0x0000000005f15220
0x00007ffeefbfebf8:  0x00007ffeefbfec40  0x00000000040641e5 <runtime.mstart+0x0000000000000005>
0x00007ffeefbfec08:  0x000000000406419d <runtime.rt0_go+0x000000000000013d>
runtime.throw({0x52241aa, 0x5e6a248})
    /usr/local/Cellar/go/1.17/libexec/src/runtime/panic.go:1198 +0x71
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff203e0c9e
stack: frame={sp:0x7ffeefbfeb08, fp:0x7ffeefbfeb58} stack=[0x7ffeefb7fba8,0x7ffeefbfec10)
0x00007ffeefbfea08:  0x01007ffeefbfea28  0x0000000000000004
0x00007ffeefbfea18:  0x000000000000001f  0x00007fff203e0c9e
0x00007ffeefbfea28:  0x0b01dfacedebac1e  0x0000000000000001
0x00007ffeefbfea38:  0x0000000004035a91 <runtime.throw+0x0000000000000071>  0x00007ffeefbfead8
0x00007ffeefbfea48:  0x00000000052148a1  0x00007ffeefbfea90
0x00007ffeefbfea58:  0x0000000004035d48 <runtime.fatalthrow.func1+0x0000000000000048>  0x0000000005f15220
0x00007ffeefbfea68:  0x0000000000000001  0x0000000000000001
0x00007ffeefbfea78:  0x00007ffeefbfead8  0x0000000004035a91 <runtime.throw+0x0000000000000071>
0x00007ffeefbfea88:  0x0000000005f15220  0x00007ffeefbfeac8
0x00007ffeefbfea98:  0x0000000004035cd0 <runtime.fatalthrow+0x0000000000000050>  0x00007ffeefbfeaa8
0x00007ffeefbfeaa8:  0x0000000004035d00 <runtime.fatalthrow.func1+0x0000000000000000>  0x0000000005f15220
0x00007ffeefbfeab8:  0x0000000004035a91 <runtime.throw+0x0000000000000071>  0x00007ffeefbfead8
0x00007ffeefbfeac8:  0x00007ffeefbfeaf8  0x0000000004035a91 <runtime.throw+0x0000000000000071>
0x00007ffeefbfead8:  0x00007ffeefbfeae0  0x0000000004035ac0 <runtime.throw.func1+0x0000000000000000>
0x00007ffeefbfeae8:  0x00000000052241aa  0x000000000000002a
0x00007ffeefbfeaf8:  0x00007ffeefbfeb48  0x000000000404b4f6 <runtime.sigpanic+0x0000000000000396>
0x00007ffeefbfeb08: <0x00000000052241aa  0x0000000005e6a248
0x00007ffeefbfeb18:  0x00007ffeefbfeb88  0x00000000040289a6 <runtime.(*mheap).allocSpan+0x0000000000000546>
0x00007ffeefbfeb28:  0x000000c000494000  0x0000000000002000
0x00007ffeefbfeb38:  0x000000c000000008  0x0000000000000000
0x00007ffeefbfeb48:  0x00007ffeefbfeb90 !0x00007fff203e0c9e
0x00007ffeefbfeb58: >0x00007ffeefbfeb90  0x0000000005e85000
0x00007ffeefbfeb68:  0x000000000000047c  0x0000000004521545 <golang.org/x/sys/unix.libc_ioctl_trampoline+0x0000000000000005>
0x00007ffeefbfeb78:  0x000000000406835f <runtime.syscall+0x000000000000001f>  0x000000c0001cdbf0
0x00007ffeefbfeb88:  0x00007ffeefbfebd0  0x000000c0001cdbc0
0x00007ffeefbfeb98:  0x00000000040661d0 <runtime.asmcgocall+0x0000000000000070>  0x0000000000000001
0x00007ffeefbfeba8:  0x000000c000410a00  0x0a00000000000001
0x00007ffeefbfebb8:  0x0000000000000000  0x0000000005f49b78
0x00007ffeefbfebc8:  0x0000000000000468  0x000000c0000001a0
0x00007ffeefbfebd8:  0x00000000040642e9 <runtime.systemstack+0x0000000000000049>  0x0000000000000004
0x00007ffeefbfebe8:  0x00000000053adb30  0x0000000005f15220
0x00007ffeefbfebf8:  0x00007ffeefbfec40  0x00000000040641e5 <runtime.mstart+0x0000000000000005>
0x00007ffeefbfec08:  0x000000000406419d <runtime.rt0_go+0x000000000000013d>
runtime.sigpanic()
    /usr/local/Cellar/go/1.17/libexec/src/runtime/signal_unix.go:719 +0x396

goroutine 1 [syscall, locked to thread]:
syscall.syscall(0x4521540, 0x1, 0x40487413, 0xc0001cdc80)
    /usr/local/Cellar/go/1.17/libexec/src/runtime/sys_darwin.go:22 +0x3b fp=0xc0001cdbf0 sp=0xc0001cdbd0 pc=0x4062d9b
syscall.syscall(0x4072686, 0x10, 0xc0001cdca8, 0x40725b8)
    <autogenerated>:1 +0x26 fp=0xc0001cdc38 sp=0xc0001cdbf0 pc=0x4068b26
golang.org/x/sys/unix.ioctl(0x51fa97a, 0x4, 0x100c00008aca0)
    /Users/treimann/go/pkg/mod/golang.org/x/sys@v0.0.0-20210426230700-d19ff857e887/unix/zsyscall_darwin_amd64.go:690 +0x39 fp=0xc0001cdc68 sp=0xc0001cdc38 pc=0x4521099
golang.org/x/sys/unix.IoctlGetTermios(...)
    /Users/treimann/go/pkg/mod/golang.org/x/sys@v0.0.0-20210426230700-d19ff857e887/unix/ioctl.go:73
github.com/mattn/go-isatty.IsTerminal(0x51fa97a)
    /Users/treimann/go/pkg/mod/github.com/mattn/go-isatty@v0.0.12/isatty_bsd.go:10 +0x50 fp=0xc0001cdcd8 sp=0xc0001cdc68 pc=0x4ebe490
github.com/fatih/color.init()
    /Users/treimann/go/pkg/mod/github.com/fatih/color@v1.9.0/color.go:21 +0x7a fp=0xc0001cdd10 sp=0xc0001cdcd8 pc=0x4ebe9fa
runtime.doInit(0x5e8d8e0)
    /usr/local/Cellar/go/1.17/libexec/src/runtime/proc.go:6498 +0x123 fp=0xc0001cde48 sp=0xc0001cdd10 pc=0x4045403
runtime.doInit(0x5e90620)
    /usr/local/Cellar/go/1.17/libexec/src/runtime/proc.go:6475 +0x71 fp=0xc0001cdf80 sp=0xc0001cde48 pc=0x4045351
runtime.main()
    /usr/local/Cellar/go/1.17/libexec/src/runtime/proc.go:238 +0x1e6 fp=0xc0001cdfe0 sp=0xc0001cdf80 pc=0x40383a6
runtime.goexit()
    /usr/local/Cellar/go/1.17/libexec/src/runtime/asm_amd64.s:1581 +0x1 fp=0xc0001cdfe8 sp=0xc0001cdfe0 pc=0x40664c1

goroutine 35 [chan receive]:
k8s.io/klog/v2.(*loggingT).flushDaemon(0x0)
    /Users/treimann/go/pkg/mod/k8s.io/klog/v2@v2.8.0/klog.go:1164 +0x6a
created by k8s.io/klog/v2.init.0
    /Users/treimann/go/pkg/mod/k8s.io/klog/v2@v2.8.0/klog.go:418 +0xfb

On 1.16, it does not occur.

timoreimann commented 3 years ago

Issue is fixed by mattn/go-isatty#66. The consuming dependency github.com/fatih/color still uses an older version.