-
Notifications
You must be signed in to change notification settings - Fork 17.9k
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
runtime: various crashes running ARM 'go' command under qemu #29325
Comments
I found that if I remove ` -tags netgo` from the build command & use a simple "hello world" main.go file, it works. But still not when using 'go mod' dependencies.
Previous findings with simple main.go:I copied that from some blog as it mentioned that it would cause go to ship the net instead of using the systems, which I need because I want to use scratch base images. And it not only builds, it also runs! 🎉 only with simple go script without modules
It still might be good to look into this issue, cause if that single flag ruins everything... that's weird right? |
Why does If you're trying to cross-compile a Go binary for an |
I've retitled the issue based on my understanding of your report, but it would be a lot clearer to have the |
No, I dont know why it set GOHOSTARCH to arm, especially since it was amd64
stretch - that might be part of the problem.
It might be related to the toolchain for arm being installed. This
toolchain is needed (on stretch amd64) to build a rpi-ws281x library, not
the go project.
|
Aah! So stupid. I used the wrong go binary. This whole thing has been a journey: I have 5 different Dockerfiles already with partial non-working solutions... crosscompiling C and Go ánd using things like libasound and GPIO is a hell. |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Yes. 1.11.4
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
Run docker file above ^
What did you expect to see?
Working cross-compiled static build.
What did you see instead?
Various errors! Example run 1:
sp=0xcc9f04cmd/go/internal/modfetch.Lookup.func1 pc=(0x3a9ac80xce5260
, 0x0)
cmd/go/internal/par.(*Work).runner (/usr/local/go/src/cmd/go/internal/modfetch/repo.go0xce03c0:)
194 +/usr/local/go/src/cmd/go/internal/par/work.go0x24: fp=0xcc9bac101 sp= +0xcc9b780x114 pc= fp=0x3a3b700xcc9fe4
sp=0xcc9fcc pc=cmd/go/internal/par.(*Cache).Do0x1ac924(
0x816468, 0x435be0runtime.goexit, ()
0xce6308 , /usr/local/go/src/runtime/asm_arm.s0xe32bfc:, 8670x0 +, 0x40x0 fp=)
0xcc9fe4 sp=/usr/local/go/src/cmd/go/internal/par/work.go:0xcc9fe4 pc=1280x67f44 +
0xcc fp=0xcc9bd8 sp=0xcc9bac pc=0x1aca4c
cmd/go/internal/modfetch.Lookup(0xcfc100, 0x15, 0xcee130, 0x6, 0xd10050, 0x43)
/usr/local/go/src/cmd/go/internal/modfetch/repo.go:193 +0x80 fp=0xcc9c08 sp=0xcc9bd8 pc=0x3a05ac
cmd/go/internal/modfetch.GoMod(0xcfc100, 0x15, 0xcee130, 0x6, created by 0x0, 0x0, cmd/go/internal/par.(*Work).Do0x0, 0x0
, 0x0)
/usr/local/go/src/cmd/go/internal/modfetch/cache.go:269 +0x88 fp=0xcc9c38 sp=0xcc9c08 pc=0x396108
cmd/go/internal/modload.(*mvsReqs).required/usr/local/go/src/cmd/go/internal/par/work.go(0xddaec0, :0xcfc100, 0x15, 0xcee13067, 0x6, 0xca5b40, 0xe32e3c, 0x8, 0x4, +0x0)
/usr/local/go/src/cmd/go/internal/modload/load.go:0x8c967 +0x71c fp=0xcc9d90 sp=
0xcc9c38 pc=0x3b9914
cmd/go/internal/modload.(*mvsReqs).Required.func1(0xce5220, 0x0)
goroutine /usr/local/go/src/cmd/go/internal/modload/load.go1 [syscall]:
:851syscall.Syscall6(0x118, 0x1, 0x11, 0xcccd90, 0x1000004, 0x0, 0x0, 0x1c63c, 0x15e54, 0xca3d30)
/usr/local/go/src/syscall/asm_linux_arm.s:45 +0x8
os.(*Process).blockUntilWaitable(0xc90870, 0xc90870, 0x0, 0x0)
/usr/local/go/src/os/wait_waitid.go:31 +0x64
os.(*Process).wait(0xc90870, 0x7, 0xc89d60, 0xe12760)
/usr/local/go/src/os/exec_unix.go:22 +0x2c
os.(*Process).Wait(0xc90870, 0x4d5f58, 0x4d5f5c, 0x4d5f54)
/usr/local/go/src/os/exec.go:125 +0x1c
os/exec.(*Cmd).Wait(0xcb2a50, 0x0, 0x0)
/usr/local/go/src/os/exec/exec.go:465 +0x40
os/exec.(*Cmd).Run(0xcb2a50, 0x3, 0xe12748)
/usr/local/go/src/os/exec/exec.go:309 +0x44
cmd/go/internal/modfetch/codehost.RunWithStdin(0xe141e0, 0x5b, 0x0, 0x0, 0xcccffc, 0x3, 0x3, 0x0, 0x0, 0x0, ...)
/usr/local/go/src/cmd/go/internal/modfetch/codehost/codehost.go:261 +0xc24
cmd/go/internal/modfetch/codehost.Run(0xe141e0, 0x5b, 0xcccffc, 0x3, 0x3, 0xe12700, 0x0, 0x0, 0x1c844, 0x0)
/usr/local/go/src/cmd/go/internal/modfetch/codehost/codehost.go:201 +0x4c
cmd/go/internal/modfetch/codehost.newGitRepo(0xc90750, 0x22, 0xfbfdf700, 0xd13bc91d, 0x1e490, 0xca3ca0, 0x23670)
/usr/local/go/src/cmd/go/internal/modfetch/codehost/git.go:66 +0x1b0
cmd/go/internal/modfetch/codehost.newVCSRepo(0x49637b, 0x3, 0xc90750, 0x22, 0x1, 0xca3c01, 0xce5320, 0x4b4201)
/usr/local/go/src/cmd/go/internal/modfetch/codehost/vcs.go:75 +0x528
cmd/go/internal/modfetch/codehost.NewRepo.func1(0xe12500, 0x0)
/usr/local/go/src/cmd/go/internal/modfetch/codehost/vcs.go:46 +0x34
cmd/go/internal/par.(*Cache).Do(0x816498, 0x450200, 0xca3ca0, 0xccd180, 0x80e120, 0x7)
/usr/local/go/src/cmd/go/internal/par/work.go:128 +0xcc
cmd/go/internal/modfetch/codehost.NewRepo(0x49637b, 0x3, +0xc90750, 0x540x22, fp=0x8164680xcc9e6c, sp=0x1, 0xcc9d900x0 pc=, 0x3be3c00x816401)
(0xddaecc, cmd/go/internal/modfetch.lookupCodeRepo(0x4505180xe124e0, , 0x1a0xcfa210, , 0x1, 0xe32eec0x0, , 0x00xe124e0, )
0x1ac574/usr/local/go/src/cmd/go/internal/modfetch/repo.go:)
242 +/usr/local/go/src/cmd/go/internal/par/work.go0x38
:128cmd/go/internal/modfetch.lookup(0xe0b140, +0x1a, 0xcc0xce5280, fp=0x1, 0xcc9e980x435be0 sp=, 0xc89c880xcc9e6c)
pc=/usr/local/go/src/cmd/go/internal/modfetch/repo.go:0x1aca4c234
+0x1b8
cmd/go/internal/modload.(*mvsReqs).Requiredcmd/go/internal/modfetch.Lookup.func1((0xddaec00xe12460, , 0xcfc1000x0, )
0x15 , /usr/local/go/src/cmd/go/internal/modfetch/repo.go0xcee130:, 1940x6 +, 0x240xca2270
, 0x12960cmd/go/internal/par.(*Cache).Do, (0x7af3c0x816468, , 0x435be0, 0xca22700xc89c88, , 0xccd2940x1, 0x0)
, 0x0)
/usr/local/go/src/cmd/go/internal/modload/load.go :/usr/local/go/src/cmd/go/internal/par/work.go:128850 +0xcc +
0x9c fp=cmd/go/internal/modfetch.Lookup(0xcc9f040xe0b140 sp=, 0x1a0xcc9e98, pc=0xdfa6b0, 0x3b8fd00x6
, 0xd2a1e0, 0x48)
/usr/local/go/src/cmd/go/internal/modfetch/repo.gocmd/go/internal/mvs.buildList.func1:(193 +0x80
cmd/go/internal/modfetch.GoMod(0xe0b140, 0x1a, 0xdfa6b0, 0x60x450518, 0x0, , 0x0, 0xcfa2000x0)
, 0x0, 0x18)
/usr/local/go/src/cmd/go/internal/modfetch/cache.go:/usr/local/go/src/cmd/go/internal/mvs/mvs.go269 +0x88
:87cmd/go/internal/modload.(*mvsReqs).required +(0x9c0xddaec0, fp=0xcc9fcc0xe0b140 sp=, 0xcc9f040x1a pc=, 0x3a9ac80xdfa6b0,
0x6, 0xca5b30, cmd/go/internal/par.(*Work).runner0xccd4d4(, 0x80xce03c0, )
0x4 , /usr/local/go/src/cmd/go/internal/par/work.go:0xffff)
101 /usr/local/go/src/cmd/go/internal/modload/load.go:967 +0x71c
+cmd/go/internal/modload.(*mvsReqs).Required.func1(0xe12400, 0x1140x0 fp=)
0xcc9fe4 sp=/usr/local/go/src/cmd/go/internal/modload/load.go0xcc9fcc: pc=8510x1ac924 +
0x54
runtime.goexitcmd/go/internal/par.(*Cache).Do((0xddaecc)
, 0x450518/usr/local/go/src/runtime/asm_arm.s, :0xca3c70, 0xccd584867, 0x0 +, 0x40x1ac574 fp=)
0xcc9fe4/usr/local/go/src/cmd/go/internal/par/work.go: sp=1280xcc9fe4 + pc=0xcc0x67f44
cmd/go/internal/modload.(*mvsReqs).Required(created by 0xddaec0cmd/go/internal/par.(*Work).Do,
0xe0b140, 0x1a, 0xdfa6b0 , 0x6/usr/local/go/src/cmd/go/internal/par/work.go, 0xca2270:, 0x1296067, 0x7af3c +, 0x8c0xca2270,
0x1)
/usr/local/go/src/cmd/go/internal/modload/load.go:850 +0x9c
cmd/go/internal/mvs.buildList.func1(0x450518, 0xca3c50)
/usr/local/go/src/cmd/go/internal/mvs/mvs.go:87 +0x9c
cmd/go/internal/par.(*Work).runner(0xce03c0)
/usr/local/go/src/cmd/go/internal/par/work.go:101 +0x114
cmd/go/internal/par.(*Work).Do(0xce03c0, 0xa, 0xe12360)
/usr/local/go/src/cmd/go/internal/par/work.go:69 +0xb0
cmd/go/internal/mvs.buildList(0xc90630, 0x29, 0x0, 0x0, 0x54f070, 0xddaec0, 0x0, 0x3b6e08, 0x40, 0x45e5c0, ...)
/usr/local/go/src/cmd/go/internal/mvs/mvs.go:85 +0x164
cmd/go/internal/mvs.BuildList(0xc90630, 0x29, 0x0, 0x0, 0x54f070, 0xddaec0, 0x0, 0x0, 0x0, 0x0, ...)
/usr/local/go/src/cmd/go/internal/mvs/mvs.go:72 +0x4c
cmd/go/internal/modload.(*loader).load(0xdd8420, 0xccda70)
/usr/local/go/src/cmd/go/internal/modload/load.go:487 +0xb0
cmd/go/internal/modload.ImportFromFiles(0xc7c2f8, 0x11, 0x11)
/usr/local/go/src/cmd/go/internal/modload/load.go:242 +0x140
cmd/go/internal/load.GoFilesPackage(0xc7c2f8, 0x11, 0x11, 0xdaae01)
/usr/local/go/src/cmd/go/internal/load/pkg.go:1980 +0xaa8
cmd/go/internal/load.PackagesAndErrors(0xc7c2f8, 0x11, 0x11, 0x9d6b4, 0x7ffff800, 0x4)
/usr/local/go/src/cmd/go/internal/load/pkg.go:1839 +0x3b8
cmd/go/internal/load.PackagesForBuild(0xc7c2f8, 0x11, 0x11, 0x827200, 0x8, 0x2f0)
/usr/local/go/src/cmd/go/internal/load/pkg.go:1897 +0x30
cmd/go/internal/work.runBuild(0x811978, 0xc7c2f8, 0x11, 0x11)
/usr/local/go/src/cmd/go/internal/work/build.go:285 +0x4c
main.main()
/usr/local/go/src/cmd/go/main.go:219 +0x93c
goroutine 35 [syscall]:
os/signal.signal_recv(0x54e190)
/usr/local/go/src/runtime/sigqueue.go:139 +0x130
os/signal.loop()
/usr/local/go/src/os/signal/signal_unix.go:23 +0x14
created by os/signal.init.0
/usr/local/go/src/os/signal/signal_unix.go:29 +0x30
goroutine 37 [sync.Cond.Wait]:
sync.runtime_notifyListWait(0xce03e8, 0xa)
/usr/local/go/src/runtime/sema.go:510 +0x140
sync.(*Cond).Wait(0xce03e0)
/usr/local/go/src/sync/cond.go:56 +0x6c
cmd/go/internal/par.(*Work).runner(0xce03c0)
/usr/local/go/src/cmd/go/internal/par/work.go:87 +0x20
created by cmd/go/internal/par.(*Work).Do
/usr/local/go/src/cmd/go/internal/par/work.go:67 +0x8c
goroutine 39 [sync.Cond.Wait]:
sync.runtime_notifyListWait(0xce03e8, 0x4)
/usr/local/go/src/runtime/sema.go:510 +0x140
sync.(*Cond).Wait(0xce03e0)
/usr/local/go/src/sync/cond.go:56 +0x6c
cmd/go/internal/par.(*Work).runner(0xce03c0)
/usr/local/go/src/cmd/go/internal/par/work.go:87 +0x20
created by cmd/go/internal/par.(*Work).Do
/usr/local/go/src/cmd/go/internal/par/work.go:67 +0x8c
goroutine 40 [sync.Cond.Wait]:
sync.runtime_notifyListWait(0xce03e8, 0x6)
/usr/local/go/src/runtime/sema.go:510 +0x140
sync.(*Cond).Wait(0xce03e0)
/usr/local/go/src/sync/cond.go:56 +0x6c
cmd/go/internal/par.(*Work).runner(0xce03c0)
/usr/local/go/src/cmd/go/internal/par/work.go:87 +0x20
created by cmd/go/internal/par.(*Work).Do
/usr/local/go/src/cmd/go/internal/par/work.go:67 +0x8c
goroutine 41 [sync.Cond.Wait]:
sync.runtime_notifyListWait(0xce03e8, 0x7)
/usr/local/go/src/runtime/sema.go:510 +0x140
sync.(*Cond).Wait(0xce03e0)
/usr/local/go/src/sync/cond.go:56 +0x6c
cmd/go/internal/par.(*Work).runner(0xce03c0)
/usr/local/go/src/cmd/go/internal/par/work.go:87 +0x20
created by cmd/go/internal/par.(*Work).Do
/usr/local/go/src/cmd/go/internal/par/work.go:67 +0x8c
goroutine 42 [sync.Cond.Wait]:
sync.runtime_notifyListWait(0xce03e8, 0x9)
/usr/local/go/src/runtime/sema.go:510 +0x140
sync.(*Cond).Wait(0xce03e0)
/usr/local/go/src/sync/cond.go:56 +0x6c
cmd/go/internal/par.(*Work).runner(0xce03c0)
/usr/local/go/src/cmd/go/internal/par/work.go:87 +0x20
created by cmd/go/internal/par.(*Work).Do
/usr/local/go/src/cmd/go/internal/par/work.go:67 +0x8c
goroutine 43 [sync.Cond.Wait]:
sync.runtime_notifyListWait(0xce03e8, 0x3)
/usr/local/go/src/runtime/sema.go:510 +0x140
sync.(*Cond).Wait(0xce03e0)
/usr/local/go/src/sync/cond.go:56 +0x6c
cmd/go/internal/par.(*Work).runner(0xce03c0)
/usr/local/go/src/cmd/go/internal/par/work.go:87 +0x20
created by cmd/go/internal/par.(*Work).Do
/usr/local/go/src/cmd/go/internal/par/work.go:67 +0x8c
goroutine 44 [sync.Cond.Wait]:
sync.runtime_notifyListWait(0xce03e8, 0x5)
/usr/local/go/src/runtime/sema.go:510 +0x140
sync.(*Cond).Wait(0xce03e0)
/usr/local/go/src/sync/cond.go:56 +0x6c
cmd/go/internal/par.(*Work).runner(0xce03c0)
/usr/local/go/src/cmd/go/internal/par/work.go:87 +0x20
created by cmd/go/internal/par.(*Work).Do
/usr/local/go/src/cmd/go/internal/par/work.go:67 +0x8c
goroutine 45 [sync.Cond.Wait]:
sync.runtime_notifyListWait(0xce03e8, 0x8)
/usr/local/go/src/runtime/sema.go:510 +0x140
sync.(*Cond).Wait(0xce03e0)
/usr/local/go/src/sync/cond.go:56 +0x6c
cmd/go/internal/par.(*Work).runner(0xce03c0)
/usr/local/go/src/cmd/go/internal/par/work.go:87 +0x20
created by cmd/go/internal/par.(*Work).Do
/usr/local/go/src/cmd/go/internal/par/work.go:67 +0x8c
goroutine 1 [syscall]:
trap syscall.Syscall6(0x118, 0x1, 0x11, 0xcccd90, 0x0
error 0x0
oldmask 0x10000040x0,
0x0, 0x0, 0x1c63c, 0x15e54, 0xca3d30)
/usr/local/go/src/syscall/asm_linux_arm.s:45 +0x8
os.(*Process).blockUntilWaitabler0 (0xc90870, 0xc908700x0, 0x0
, 0x0)
/usr/local/go/src/os/wait_waitid.go:r1 31 +0xe4aff5840x64
r2 os.(*Process).wait(0xc908700x49b9f0,
0x7, 0xc89d60, r3 0x0
r4 0x00xe12760
)
/usr/local/go/src/os/exec_unix.gor5 0x0
:22 +0x2c
r6 0x616174
os.(*Process).Wait(0xc90870, 0x4d5f58r7 0xe52fed18
, 0x4d5f5c, 0x4d5f54)
r8 /usr/local/go/src/os/exec.go:125 +0x60x1c
os/exec.(*Cmd).Wait(r9 0xcb2a50, 0x0, 0x100x0
)
/usr/local/go/src/os/exec/exec.go:465 +0x40
os/exec.(*Cmd).Run(0xcb2a50, 0x3, 0xe12748)
r10 /usr/local/go/src/os/exec/exec.go:0xc520e0309 +
0x44
fp 0x6
ip 0xc7c655
cmd/go/internal/modfetch/codehost.RunWithStdin(0xe141e0, 0x5b, 0x0, 0x0, 0xcccffc, 0x3, sp 0x3, 0x00xe52fecfc, 0x0
, 0x0, ...)
lr /usr/local/go/src/cmd/go/internal/modfetch/codehost/codehost.go:0x3df28261
+0xc24
pc cmd/go/internal/modfetch/codehost.Run(0x1ceabe0xe141e0, 0x5b, 0xcccffc, 0x3, 0x3, 0xe12700, 0x0, 0x0, 0x1c844, 0x0
)
/usr/local/go/src/cmd/go/internal/modfetch/codehost/codehost.go:cpsr 0x600c0030201 +
0x4c
cmd/go/internal/modfetch/codehost.newGitRepo(0xc90750, 0x22, 0xfbfdf700, fault 0xd13bc91d, 0x1e490, 0xca3ca00x0,
0x23670)
/usr/local/go/src/cmd/go/internal/modfetch/codehost/git.go:66 +0x1b0
cmd/go/internal/modfetch/codehost.newVCSRepo(0x49637b, 0x3, 0xc90750
Run 2:
Run 3:
The text was updated successfully, but these errors were encountered: