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

cmd/compile: intermittently crashes with "unexpected fault address 0x2000000008" #27146

Closed
gustafj opened this issue Aug 22, 2018 · 2 comments

Comments

Projects
None yet
2 participants
@gustafj
Copy link

commented Aug 22, 2018

Compile crashes from time to time (is it running out of memory)?
The error printout always contains the same address 0x2000000008 though I do not know if the output is identical as I have compared them that thoroughly.
This is intermittent, re-running the build works.

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

go version go1.10 linux/amd64

Does this issue reproduce with the latest release?

This is intermittent, so don't know yet

What operating system and processor architecture are you using (go env)?

GOARCH="amd64", GOHOSTARCH="amd64", GOHOSTOS="linux", GOOS="linux"
GCCGO="gccgo", CC="clang-6.0", CXX="g++"

What did you do?

go build -o build/ -v

What did you expect to see?

Nothing / passed build

What did you see instead?

unexpected fault address 0x2000000008
fatal error: fault
[signal SIGSEGV: segmentation violation code=0x1 addr=0x2000000008 pc=0xab1947]

goroutine 1 [running]:
runtime.throw(0xc129fe, 0x5)
	/usr/local/go/src/runtime/panic.go:619 +0x81 fp=0xc42360b200 sp=0xc42360b1e0 pc=0x429d71
runtime.sigpanic()
	/usr/local/go/src/runtime/signal_unix.go:395 +0x211 fp=0xc42360b250 sp=0xc42360b200 pc=0x43d071
cmd/compile/internal/gc.Nodes.Slice(...)
	/usr/local/go/src/cmd/compile/internal/gc/syntax.go:693
cmd/compile/internal/gc.init2list(0x2000000000, 0xc42360b670)
	/usr/local/go/src/cmd/compile/internal/gc/sinit.go:225 +0x27 fp=0xc42360b288 sp=0xc42360b250 pc=0xab1947
cmd/compile/internal/gc.init2(0xc420be1a80, 0xc42360b670)
	/usr/local/go/src/cmd/compile/internal/gc/sinit.go:214 +0x120 fp=0xc42360b2e0 sp=0xc42360b288 pc=0xab1820
cmd/compile/internal/gc.init2(0xc420be1b00, 0xc42360b670)
	/usr/local/go/src/cmd/compile/internal/gc/sinit.go:209 +0x94 fp=0xc42360b338 sp=0xc42360b2e0 pc=0xab1794
cmd/compile/internal/gc.init2list(0xc4211f97a0, 0xc42360b670)
	/usr/local/go/src/cmd/compile/internal/gc/sinit.go:226 +0x58 fp=0xc42360b370 sp=0xc42360b338 pc=0xab1978
cmd/compile/internal/gc.init2(0xc42120ad80, 0xc42360b670)
	/usr/local/go/src/cmd/compile/internal/gc/sinit.go:212 +0xe8 fp=0xc42360b3c8 sp=0xc42360b370 pc=0xab17e8
cmd/compile/internal/gc.init2(0xc42120b000, 0xc42360b670)
	/usr/local/go/src/cmd/compile/internal/gc/sinit.go:210 +0xb0 fp=0xc42360b420 sp=0xc42360b3c8 pc=0xab17b0
cmd/compile/internal/gc.init2list(0xc420b93900, 0xc42360b670)
	/usr/local/go/src/cmd/compile/internal/gc/sinit.go:226 +0x58 fp=0xc42360b458 sp=0xc42360b420 pc=0xab1978
cmd/compile/internal/gc.init2(0xc421200c00, 0xc42360b670)
	/usr/local/go/src/cmd/compile/internal/gc/sinit.go:212 +0xe8 fp=0xc42360b4b0 sp=0xc42360b458 pc=0xab17e8
cmd/compile/internal/gc.init1(0xc420c52870, 0xc42360b670)
	/usr/local/go/src/cmd/compile/internal/gc/sinit.go:125 +0x639 fp=0xc42360b558 sp=0xc42360b4b0 pc=0xab0dc9
cmd/compile/internal/gc.init1(0xc421770d00, 0xc42360b670)
	/usr/local/go/src/cmd/compile/internal/gc/sinit.go:41 +0x59 fp=0xc42360b600 sp=0xc42360b558 pc=0xab07e9
cmd/compile/internal/gc.initreorder(0xc421776000, 0x2f, 0x50, 0xc42360b670)
	/usr/local/go/src/cmd/compile/internal/gc/sinit.go:239 +0xca fp=0xc42360b648 sp=0xc42360b600 pc=0xab1a7a
cmd/compile/internal/gc.initfix(0xc421776000, 0x2f, 0x50, 0xc0d020, 0xc420302000, 0xc400000003)
	/usr/local/go/src/cmd/compile/internal/gc/sinit.go:250 +0x90 fp=0xc42360b698 sp=0xc42360b648 pc=0xab1b50
cmd/compile/internal/gc.fninit(0xc421776000, 0x2f, 0x50)
	/usr/local/go/src/cmd/compile/internal/gc/init.go:78 +0x6b fp=0xc42360b848 sp=0xc42360b698 pc=0xa55e3b
cmd/compile/internal/gc.Main(0xc35950)
	/usr/local/go/src/cmd/compile/internal/gc/main.go:632 +0x2dbf fp=0xc42360bf10 sp=0xc42360b848 pc=0xa6522f
main.main()
	/usr/local/go/src/cmd/compile/main.go:49 +0x95 fp=0xc42360bf88 sp=0xc42360bf10 pc=0xb75745
runtime.main()
	/usr/local/go/src/runtime/proc.go:198 +0x212 fp=0xc42360bfe0 sp=0xc42360bf88 pc=0x42b5e2
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:2361 +0x1 fp=0xc42360bfe8 sp=0xc42360bfe0 pc=0x456401

@ianlancetaylor ianlancetaylor changed the title cmd/go build: intermittently crashes with "SIGSEGV, 0x2000000008" cmd/go: build intermittently crashes with "SIGSEGV, 0x2000000008" Aug 22, 2018

@ianlancetaylor ianlancetaylor changed the title cmd/go: build intermittently crashes with "SIGSEGV, 0x2000000008" cmd/compile: intermittently crashes with "unexpected fault address 0x2000000008" Aug 22, 2018

@ianlancetaylor ianlancetaylor added this to the Go1.12 milestone Aug 22, 2018

@ianlancetaylor

This comment has been minimized.

Copy link
Contributor

commented Aug 22, 2018

Although I'm always reluctant to suspect hardware, the fact that this is intermittent and that it always reports the same single bit error does make me at least wonder. Does this problem always happen on one specific machine? Have you tried using a different machine?

@gustafj

This comment has been minimized.

Copy link
Author

commented Sep 17, 2018

I have now spent some time investigating further.
It has only happened on one machine, and 1.11 had the same behavior. The address was not constant though, but many had the same fault address.
After a memory test on the machine it was found to be at least one faulty ram module, currently running with replacement modules and have yet to see this occur anymore.

Closing this, as I indeed think it was a hardware error.
Thanks for the prompt feedback Ian.

@gustafj gustafj closed this Sep 17, 2018

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