Skip to content
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: illegal instruction on armv5 when receiving SIGPIPE #15869

Closed
felipeota opened this issue May 28, 2016 · 7 comments

Comments

Projects
None yet
7 participants
@felipeota
Copy link

commented May 28, 2016

  1. What version of Go are you using (go version)?

go version go1.6.2 linux/amd64

  1. What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/felipe/world/projects/go"
GORACE=""
GOROOT="/home/felipe/world/packages/go"
GOTOOLDIR="/home/felipe/world/packages/go/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT="1"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"
  1. What did you do?

Set up an simple infinite loop like:

package main

func main() {
    for true {
    }
}

compile with: env GOARCH=arm GOARM=5 GOOS=linux go build loop.go
run on target machine, kill with kill -SIGPIPE crashes with illegal instrucion. It actually happened to me when running Syncthing.

Here's cpuinfo on target machine (Iomega Home Media NAS):

Processor       : ARM926EJ-S rev 5 (v5l)
BogoMIPS        : 183.09
Features        : swp half thumb fastmult edsp java 
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 5
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format C
Cache format    : Harvard
I size          : 32768
I assoc         : 4
I line length   : 32
I sets          : 256
D size          : 32768
D assoc         : 4
D line length   : 32
D sets          : 256

Hardware        : Oxsemi NAS
Revision        : 0000
Serial          : 00000b4a8bf52a80

Under gdb:

(gdb) r
Starting program: /home/nascentral/helloworld

Program received signal SIGPIPE, Broken pipe.
main.main () at /home/felipe/world/projects/go/src/helloworld/helloworld.go:6
6       /home/felipe/world/projects/go/src/helloworld/helloworld.go: No such file or directory.
        in /home/felipe/world/projects/go/src/helloworld/helloworld.go
Current language:  auto; currently minimal
(gdb) c
Continuing.

Program received signal SIGILL, Illegal instruction.
0xffff0514 in ?? ()
(gdb) bt
#0  0xffff0514 in ?? ()
#1  0x0004e1c8 in runtime.sigtrampgo (sig=Unhandled dwarf expression opcode 0x9c
)
    at /home/felipe/world/packages/go/src/runtime/signal_sigtramp.go:49
#2  0x00000000 in ?? ()
(gdb) 

@josharian josharian changed the title Illegal Instruction on armv5 when receiving SIGPIPE runtime: illegal Instruction on armv5 when receiving SIGPIPE May 28, 2016

@josharian josharian changed the title runtime: illegal Instruction on armv5 when receiving SIGPIPE runtime: illegal instruction on armv5 when receiving SIGPIPE May 28, 2016

@minux

This comment has been minimized.

Copy link
Member

commented May 28, 2016

@ianlancetaylor ianlancetaylor added this to the Go1.7Maybe milestone Jun 14, 2016

@ianlancetaylor

This comment has been minimized.

Copy link
Contributor

commented Jun 14, 2016

@cherrymui

This comment has been minimized.

Copy link
Contributor

commented Jun 16, 2016

Hi @felipeota. Does this still fail with the current tip? (I don't have armv5 machine to reproduce it.) If so, could you set up a breakpoint in runtime.sigtrampgo and single step, see how it gets to the faulty address? Thanks!

@ianlancetaylor

This comment has been minimized.

Copy link
Contributor

commented Jun 28, 2016

We need more information. Punting to 1.8.

@aclements

This comment has been minimized.

Copy link
Member

commented Nov 8, 2016

@felipeota, ping. Could you reply to @cherrymui's questions? Otherwise we'll have to close this.

@felipeota

This comment has been minimized.

Copy link
Author

commented Nov 9, 2016

My armv5 devboard bricked and I can't test this. You can close the issue. If I can bring it back to life I'll try this and reopen it.

@aclements

This comment has been minimized.

Copy link
Member

commented Nov 9, 2016

@felipeota, okay. Thanks.

@aclements aclements closed this Nov 9, 2016

@golang golang locked and limited conversation to collaborators Nov 9, 2017

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
You can’t perform that action at this time.