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

examples/dot: TestLengths sometimes gets illegal instruction error under amd64 systems #153

Closed
rogers0 opened this issue Jul 27, 2020 · 1 comment
Labels
bug Something isn't working

Comments

@rogers0
Copy link

rogers0 commented Jul 27, 2020

Go test even fails sometimes under amd64 (x86 64-bit) system.
log on Debian buildd (build farm):

since this doesn't occur always, I guess it might be a race condition.

Detail log:

=== RUN   TestLengths
SIGILL: illegal instruction
PC=0x4fc10a m=0 sigcode=2

goroutine 7 [running]:
github.com/mmcloughlin/avo/examples/dot.Dot(0xc000014168, 0x1, 0x1, 0xc00001416c, 0x1, 0x1)
	/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/github.com/mmcloughlin/avo/examples/dot/dot.s:45 +0x9a fp=0xc000036698 sp=0xc000036690 pc=0x4fc10a
github.com/mmcloughlin/avo/examples/dot.TestLengths(0xc000112240)
	/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/src/github.com/mmcloughlin/avo/examples/dot/dot_test.go:20 +0xd1 fp=0xc000036780 sp=0xc000036698 pc=0x4fbd21
testing.tRunner(0xc000112240, 0x54bbd0)
	/usr/lib/go-1.14/src/testing/testing.go:991 +0xdc fp=0xc0000367d0 sp=0xc000036780 pc=0x4c034c
runtime.goexit()
	/usr/lib/go-1.14/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc0000367d8 sp=0xc0000367d0 pc=0x462321
created by testing.(*T).Run
	/usr/lib/go-1.14/src/testing/testing.go:1042 +0x357

goroutine 1 [chan receive]:
testing.(*T).Run(0xc000112240, 0x543360, 0xb, 0x54bbd0, 0x476001)
	/usr/lib/go-1.14/src/testing/testing.go:1043 +0x37e
testing.runTests.func1(0xc000112000)
	/usr/lib/go-1.14/src/testing/testing.go:1284 +0x78
testing.tRunner(0xc000112000, 0xc00006ee10)
	/usr/lib/go-1.14/src/testing/testing.go:991 +0xdc
testing.runTests(0xc00000c080, 0x636b20, 0x2, 0x2, 0x0)
	/usr/lib/go-1.14/src/testing/testing.go:1282 +0x2a7
testing.(*M).Run(0xc00010e000, 0x0)
	/usr/lib/go-1.14/src/testing/testing.go:1199 +0x15f
main.main()
	_testmain.go:46 +0x135

rax    0xc000014168
rbx    0xc000014168
rcx    0xc00001416c
rdx    0x1
rdi    0x1
rsi    0x1
rbp    0xc000036770
rsp    0xc000036690
r8     0x510120
r9     0xdbe9f5ffaa01
r10    0x10
r11    0xc000014160
r12    0xfc
r13    0x0
r14    0x566f34
r15    0x0
rip    0x4fc10a
rflags 0x10202
cs     0x33
fs     0x0
gs     0x0
FAIL	github.com/mmcloughlin/avo/examples/dot	0.062s
@mmcloughlin mmcloughlin added the bug Something isn't working label Apr 7, 2021
@mmcloughlin mmcloughlin changed the title examples/dot/dot_test.go TestLengths sometimes got illegal instruction error under amd64 (x86 64-bit) system examples/dot: TestLengths sometimes gets illegal instruction error under amd64 systems Apr 7, 2021
mmcloughlin added a commit that referenced this issue Apr 7, 2021
Add necessary feature checks to the dot and geohash examples to prevent illegal instruction errors.

Fixes #170 #153
@mmcloughlin
Copy link
Owner

I can't tell from build logs but I'm guessing the intermittent failures were because the builds were scheduled on amd64 platforms with different microarchitectures, in particular perhaps lacking FMA3 instructions. This should have been fixed in #171.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants