Package: golang-go
Version: 2:1.14~1
Severity: important

Dear Maintainer,

the current go binary crashes on mipsel when running non-trivial calls
(a trivial call would be like 'go version', which succeeds) with the message
'fatal error: gc_trigger underflow'. Here's an example from the mipsel
porterbox:

(sid_mipsel-dchroot)satta@eller:~$ go get github.com/satta/ethflux
runtime: next_gc=5259264 heap_marked=292800 heap_live=292800 
initialHeapLive=4210688triggerRatio=+0.000000e+000 minTrigger=4194304
fatal error: gc_trigger underflow

goroutine 20 [running]:
runtime.throw(0xa3ebd3, 0x14)
        /usr/lib/go-1.14/src/runtime/panic.go:1116 +0x60 fp=0x1430578 
sp=0x1430564 pc=0x43dfec
runtime.gcSetTriggerRatio(0x0, 0xffffffff)
        /usr/lib/go-1.14/src/runtime/mgc.go:834 +0x804 fp=0x14305f4 
sp=0x1430578 pc=0x41f208
runtime.gcMarkTermination(0xffffffff, 0xffffffff)
        /usr/lib/go-1.14/src/runtime/mgc.go:1686 +0x26c fp=0x1430770 
sp=0x14305f4 pc=0x4203dc
runtime.gcMarkDone()
        /usr/lib/go-1.14/src/runtime/mgc.go:1610 +0x240 fp=0x143079c 
sp=0x1430770 pc=0x4200a0
runtime.gcBgMarkWorker(0x1424000)
        /usr/lib/go-1.14/src/runtime/mgc.go:2000 +0x2d4 fp=0x14307e4 
sp=0x143079c pc=0x4215bc
runtime.goexit()
        /usr/lib/go-1.14/src/runtime/asm_mipsx.s:651 +0x4 fp=0x14307e4 
sp=0x14307e4 pc=0x476fdc
created by runtime.gcBgMarkStartWorkers
        /usr/lib/go-1.14/src/runtime/mgc.go:1821 +0xb0

goroutine 1 [runnable]:
cmd/go/internal/str.FoldDup(0x190a000, 0x1a5, 0x300, 0x300, 0x9dec00, 
0x15eb0a0, 0x9dec00)
        /usr/lib/go-1.14/src/cmd/go/internal/str/str.go:84 +0x140
cmd/go/internal/load.(*Package).load(0x18cc280, 0x15ebed4, 0x14ae820, 0x0, 0x0)
        /usr/lib/go-1.14/src/cmd/go/internal/load/pkg.go:1673 +0x6d4
cmd/go/internal/load.loadImport(0x0, 0x14b1171, 0x7, 0x14b33e0, 0x29, 
0x14c6a00, 0x15ebed4, 0x16929e0, 0x1, 0x1, ...)
        /usr/lib/go-1.14/src/cmd/go/internal/load/pkg.go:578 +0xd88
cmd/go/internal/load.LoadImport(0x14b1171, 0x7, 0x14b33e0, 0x29, 0x14c6a00, 
0x15ebed4, 0x16929e0, 0x1, 0x1, 0x1, ...)
        /usr/lib/go-1.14/src/cmd/go/internal/load/pkg.go:531 +0x88
cmd/go/internal/load.(*Package).load(0x14c6a00, 0x15ebed4, 0x14ae680, 0x0, 0x0)
        /usr/lib/go-1.14/src/cmd/go/internal/load/pkg.go:1707 +0x1a2c
cmd/go/internal/load.loadImport(0x0, 0x14b6e21, 0x14, 0x14b6b00, 0x1b, 
0x14c6780, 0x15ebed4, 0x1491b20, 0x1, 0x1, ...)
        /usr/lib/go-1.14/src/cmd/go/internal/load/pkg.go:578 +0xd88
cmd/go/internal/load.LoadImport(0x14b6e21, 0x14, 0x14b6b00, 0x1b, 0x14c6780, 
0x15ebed4, 0x1491b20, 0x1, 0x1, 0x1, ...)
        /usr/lib/go-1.14/src/cmd/go/internal/load/pkg.go:531 +0x88
cmd/go/internal/load.(*Package).load(0x14c6780, 0x15ebed4, 0x14ae340, 0x0, 0x0)
        /usr/lib/go-1.14/src/cmd/go/internal/load/pkg.go:1707 +0x1a2c
cmd/go/internal/load.loadImport(0x0, 0x14b0341, 0x6, 0x14b63a0, 0x1a, 
0x14c6280, 0x15ebed4, 0x14ac6c0, 0x2, 0x2, ...)
        /usr/lib/go-1.14/src/cmd/go/internal/load/pkg.go:578 +0xd88
cmd/go/internal/load.LoadImport(0x14b0341, 0x6, 0x14b63a0, 0x1a, 0x14c6280, 
0x15ebed4, 0x14ac6c0, 0x2, 0x2, 0x1, ...)
        /usr/lib/go-1.14/src/cmd/go/internal/load/pkg.go:531 +0x88
cmd/go/internal/load.(*Package).load(0x14c6280, 0x15ebed4, 0x14ae1a0, 0x0, 0x0)
        /usr/lib/go-1.14/src/cmd/go/internal/load/pkg.go:1707 +0x1a2c
cmd/go/internal/load.loadImport(0x0, 0x14b00a1, 0x5, 0x14b2090, 0x2b, 
0x14c6000, 0x15ebed4, 0x1490360, 0x1, 0x1, ...)
        /usr/lib/go-1.14/src/cmd/go/internal/load/pkg.go:578 +0xd88
cmd/go/internal/load.LoadImport(0x14b00a1, 0x5, 0x14b2090, 0x2b, 0x14c6000, 
0x15ebed4, 0x1490360, 0x1, 0x1, 0x1, ...)
        /usr/lib/go-1.14/src/cmd/go/internal/load/pkg.go:531 +0x88
cmd/go/internal/load.(*Package).load(0x14c6000, 0x15ebed4, 0x14ae000, 0x0, 0x0)
        /usr/lib/go-1.14/src/cmd/go/internal/load/pkg.go:1707 +0x1a2c
cmd/go/internal/load.loadImport(0x0, 0x7f6fb885, 0x18, 0x141a014, 0xb, 0x0, 
0x15ebed4, 0x0, 0x0, 0x0, ...)
        /usr/lib/go-1.14/src/cmd/go/internal/load/pkg.go:578 +0xd88
cmd/go/internal/load.LoadImport(0x7f6fb885, 0x18, 0x141a014, 0xb, 0x0, 
0x15ebed4, 0x0, 0x0, 0x0, 0x0, ...)
        /usr/lib/go-1.14/src/cmd/go/internal/load/pkg.go:531 +0x88
cmd/go/internal/get.download.func1(0x7f6fb885, 0x18, 0x0, 0x3)
        /usr/lib/go-1.14/src/cmd/go/internal/get/get.go:233 +0xe4
cmd/go/internal/get.download(0x7f6fb885, 0x18, 0x0, 0x15ebed4, 0x0)
        /usr/lib/go-1.14/src/cmd/go/internal/get/get.go:305 +0xd84
cmd/go/internal/get.runGet(0xe36fa0, 0x1416110, 0x1, 0x2)
        /usr/lib/go-1.14/src/cmd/go/internal/get/get.go:162 +0x174
main.main()
        /usr/lib/go-1.14/src/cmd/go/main.go:189 +0x7a0

This also impacts mipsel builds of packages based on Go. I have tested
this on three of my own packages, e.g. slinkwatch (see 
https://paste.debian.net/1146869/).

Best regards
Sascha

Reply via email to