Skip to content

runtime: frame runtime.memeq untyped args 0xc28afdad00+0x19 #11748

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

Closed
mail2fish opened this issue Jul 17, 2015 · 7 comments
Closed

runtime: frame runtime.memeq untyped args 0xc28afdad00+0x19 #11748

mail2fish opened this issue Jul 17, 2015 · 7 comments
Milestone

Comments

@mail2fish
Copy link

runtime: frame runtime.memeq untyped args 0xc28afdad00+0x19
fatal error: missing stackmap

runtime stack:
runtime.throw(0x12086d1)
/usr/local/go/src/runtime/panic.go:491 +0xad
adjustframe(0x7f44477fdcd8, 0x7f44477fdda8, 0x1)
/usr/local/go/src/runtime/stack.c:525 +0x348
runtime.gentraceback(0x465a10, 0xc28afda1c0, 0x0, 0xc22fe185a0, 0x0, 0x0, 0x7fffffff, 0x7f44477fdd98, 0x7f44477fdda8, 0x0, ...)
/usr/local/go/src/runtime/traceback.go:311 +0x7a8
copystack(0xc22fe185a0, 0x4000)
/usr/local/go/src/runtime/stack.c:623 +0x177
runtime.newstack()
/usr/local/go/src/runtime/stack.c:789 +0x575
runtime.morestack()
/usr/local/go/src/runtime/asm_amd64.s:324 +0x7e

go version

go version go1.4.2 linux/amd64

OS: centos 7

go env

GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/centos/gopath/"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"

@ianlancetaylor
Copy link
Contributor

How can we recreate this problem?

Does it happen with Go1.5 beta2?

@ianlancetaylor ianlancetaylor added this to the Go1.5 milestone Jul 17, 2015
@mail2fish
Copy link
Author

I don't know exactly how to reproduce it. It seem happened with a lot of go routines.

It's in Go 1.4.2 environment. Haven't started using Go 1.5 yet.

@ianlancetaylor
Copy link
Contributor

It's going to be very hard for us to fix this without some hint as to how to reproduce it.

Does it happen consistently for some programs, or does it just happen randomly? How often does it happen?

@mail2fish
Copy link
Author

Thanks for your quick response. I will try to figure out how to reproduce it.

@rsc
Copy link
Contributor

rsc commented Jul 21, 2015

Was there another stack, for a goroutine, immediately after the one you quoted?
If so that might help us understand what led to the memeq.

@aclements
Copy link
Member

@mail2fish, any luck reproducing this? Have you tried it with a Go 1.5 beta?

@rsc
Copy link
Contributor

rsc commented Jul 29, 2015

I can reproduce the specific crash with

package main

import "unsafe"

type T struct {
    a [10]int
}

func main() {
    defer func() {
        recover()
        recurse(10000)
    }()
    var x, y interface{}
    var t T
    x = t
    y = t
    (*[2]uintptr)(unsafe.Pointer(&y))[1] = 0
    println(x == y)
}

func recurse(x int) {
    if x > 0 {
        recurse(x-1)
    }
    print("")
}

I doubt this program bears much resemblance to yours, but the salient point is that there was a fault inside memeq due to a bad pointer somewhere. And then the handling of the fault went bad.

The same program works correctly in Go 1.5. So I think this is fixed.

@rsc rsc closed this as completed Jul 29, 2015
@golang golang locked and limited conversation to collaborators Aug 5, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants