Skip to content

runtime: illegal instruction on armv5 when receiving SIGPIPE #15869

@felipeota

Description

@felipeota
  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) 

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.WaitingForInfoIssue is not actionable because of missing required information, which needs to be provided.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions