Skip to content

runtime: crash with "fatal error: runtime: sudog with non-nil selectdone" #11042

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
rhysh opened this issue Jun 3, 2015 · 2 comments
Closed
Milestone

Comments

@rhysh
Copy link
Contributor

rhysh commented Jun 3, 2015

$ go version
go version devel +8cd191b Sat May 30 12:21:56 2015 +0000 linux/amd64
$ uname -a | awk '$2="host"'
Linux host 3.13.0-52-generic #86~precise1-Ubuntu SMP Tue May 5 18:08:21 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

I have a process that receives data over a few hundred concurrent TCP connections and writes them to files. It's been crashing on recent versions of tip (it was stable on 1.4.1).

I'm working on reproducing this (and the other recent crashes I've seen), I don't have a minimal test case or bisect yet. They may all be due to the same memory corruption bug.

fatal error: runtime: sudog with non-nil selectdone

goroutine 3476 [running]:
runtime.throw(0x8e1430, 0x26)
    /usr/local/go/src/runtime/panic.go:527 +0x96 fp=0xc208b4a4d8 sp=0xc208b4a4c0
runtime.releaseSudog(0xc20f958cc0)
    /usr/local/go/src/runtime/proc.go:244 +0x5f fp=0xc208b4a570 sp=0xc208b4a4d8
runtime.chansend(0x718740, 0xc2080c4240, 0xc208b4a7a0, 0xc209032001, 0x405abe, 0x1000)
    /usr/local/go/src/runtime/chan.go:243 +0x8e6 fp=0xc208b4a640 sp=0xc208b4a570
runtime.chansend1(0x718740, 0xc2080c4240, 0xc208b4a7a0)
    /usr/local/go/src/runtime/chan.go:92 +0x43 fp=0xc208b4a678 sp=0xc208b4a640
redacted(0xc2081280a0, 0x7ff4aea62a38, 0xc20b336978, 0xc2080c4240)
    /redacted.go:105 +0x25e fp=0xc208b4a7c0 sp=0xc208b4a678
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:1670 +0x1 fp=0xc208b4a7c8 sp=0xc208b4a7c0
created by redacted
    /redacted.go:81 +0x21e

goroutine 1 [chan receive, 38 minutes]:
main.main()
    /redacted.go:230 +0xe7b

goroutine 5 [chan send]:
redacted(0xc2080ae000)
    /redacted.go:199 +0x1f0
created by redacted.init.1
    /redacted.go:184 +0x6e

[snip]
@ianlancetaylor ianlancetaylor added this to the Go1.5 milestone Jun 3, 2015
@methane
Copy link
Contributor

methane commented Jun 11, 2015

This may be same to #10942 and some other runtime failure.

@rhysh
Copy link
Contributor Author

rhysh commented Jun 23, 2015

I'm unable to reproduce this on 8fa1a69 (from 17 June 2015).

It looks like I was hitting the same set of bugs as are documented in #10941 (including most recently the "fatal error: g already has stack barriers" crash), but my app ran for several days on the 17 June version when it used to crash several times an hour.

This looks fixed to me.

@rhysh rhysh closed this as completed Jun 23, 2015
@golang golang locked and limited conversation to collaborators Jun 25, 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

4 participants