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: pointer in unallocated span on android/arm #21568

Closed
martisch opened this issue Aug 23, 2017 · 2 comments

Comments

Projects
None yet
3 participants
@martisch
Copy link
Member

commented Aug 23, 2017

go tip after cbc4e5d http://golang.org/cl/55142

builder started to fail the runtime test:
https://build.golang.org/log/31006ba970db321030f98f4d0d3c6eeb93b62ffa

/var/folders/f6/d2bhfqss2716nxm8gkv1fmb80000gn/T/go-build049072829/runtime/_test/runtime.test: 1 file pushed. 8.1 MB/s (4886616 bytes in 0.575s)
go_android_exec: adb shell cp '/data/local/tmp/runtime.test-43538/runtime.test-43538-tmp' '/data/local/tmp/runtime.test-43538/runtime.test-43538'
go_android_exec: adb shell rm '/data/local/tmp/runtime.test-43538/runtime.test-43538-tmp'
go_android_exec: adb shell export TMPDIR="/data/local/tmp/runtime.test-43538"; export GOROOT="/data/local/tmp/goroot"; export GOPATH="/data/local/tmp/gopath"; cd "/data/local/tmp/goroot/src/runtime"; '/data/local/tmp/runtime.test-43538/runtime.test-43538' -test.short=true -test.timeout=6m0s; echo -n exitcode=$?
runtime: pointer 0xd7b0202c to unallocated span idx=0x6bd81 span.base()=0xd7b02000 span.limit=0xd7b04000 span.state=0
runtime: found in object at *(0xd7ad8798+0x0)
object=0xd7ad8798 k=0x6bd6c s.base()=0xd7ad2000 s.limit=0xd7ada000 s.spanclass=0 s.elemsize=2048 s.state=_MSpanManual
 *(object+0) = 0xd7b0202c <==
 *(object+4) = 0x0
 *(object+8) = 0xe00
 *(object+12) = 0x56397908
 *(object+16) = 0xe1dba000
 *(object+20) = 0x0
 *(object+24) = 0x0
 *(object+28) = 0x0
 *(object+32) = 0xf72251c8
 *(object+36) = 0xd6fa0bd0
 *(object+40) = 0xbe5f4418
 *(object+44) = 0xaf88953
 *(object+48) = 0x1
 *(object+52) = 0xf75f7330
 *(object+56) = 0xb61b3a1b
 *(object+60) = 0xbe5f4418
 *(object+64) = 0xaf88953
 *(object+68) = 0x1
 *(object+72) = 0xf75f7330
 *(object+76) = 0x0
 *(object+80) = 0xd6fa0bd0
 *(object+84) = 0xf74de67c
 *(object+88) = 0x0
 *(object+92) = 0x0
 *(object+96) = 0x0
 *(object+100) = 0x0
 *(object+104) = 0xd7ad2800
 *(object+108) = 0x0
 *(object+112) = 0x0

 ...
fatal error: found bad pointer in Go heap (incorrect use of unsafe or cgo?)

I fail to see what the problem with http://golang.org/cl/55142 is that could have caused this.
The other builders seem to run fine with the CL.
The CL might just have been the trigger that uncovered another issue.

/cc @aclements @josharian

@martisch martisch added this to the Go1.10 milestone Aug 23, 2017

@gopherbot gopherbot removed the NeedsFix label Aug 23, 2017

@cherrymui

This comment has been minimized.

Copy link
Contributor

commented Aug 23, 2017

The runtime's makemap64 function is defined with an additional unused bucket arg which does not appear in the compiler's declaration.

func makemap64(t *maptype, hint int64, h *hmap, bucket unsafe.Pointer) *hmap

Not sure this is related to the failure here, but it looks weird to me. I commented on the CL.

@gopherbot

This comment has been minimized.

Copy link

commented Aug 23, 2017

Change https://golang.org/cl/57990 mentions this issue: runtime: fix makemap64 function signature

@gopherbot gopherbot closed this in 15d5fa0 Aug 23, 2017

@golang golang locked and limited conversation to collaborators Aug 23, 2018

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.