[Bug go/61263] New: gccgo: fatal error: schedule: holding locks [GoSmith]
dvyukov at google dot com
gcc-bugzilla@gcc.gnu.org
Wed May 21 07:21:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61263
Bug ID: 61263
Summary: gccgo: fatal error: schedule: holding locks [GoSmith]
Product: gcc
Version: 4.10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: go
Assignee: ian at airs dot com
Reporter: dvyukov at google dot com
gcc version 4.10.0 20140516 (experimental) (GCC)
The program is:
package main
import "runtime"
import "time"
import "os"
func init() {
runtime.GOMAXPROCS(2)
go func() {
for {
runtime.GC()
runtime.Gosched()
}
}()
go func() {
time.Sleep(3 * time.Second)
os.Exit(0)
}()
}
func main() {
for {
_ = make(chan []*int, 1)
}
}
Repro:
Build it with "go build -compiler=gccgo src.go".
Run repeatedly with GOGC=0 (I am running 50 parallel processes). Every several
seconds it crashes with:
fatal error: runtime_lock: lock count
runtime stack:
ERROR: signal: segmentation fault (core dumped)
or:
fatal error: schedule: holding locks
runtime stack:
ERROR: signal: segmentation fault (core dumped)
or:
fatal error: schedule: holding locks
runtime stack:
runtime_dopanic
../../../libgo/runtime/panic.c:82
runtime_throw
../../../libgo/runtime/panic.c:116
schedule
../../../libgo/runtime/proc.c:1720
runtime_mstart
../../../libgo/runtime/proc.c:1000
main
../../../libgo/runtime/go-main.c:43
goroutine 1 [runnable]:
runtime_mcall
../../../libgo/runtime/proc.c:292
runtime_gc
../../../libgo/runtime/mgc0.c:2025
runtime_mallocgc
../../../libgo/runtime/malloc.goc:201
runtime_makechan_c
../../../libgo/runtime/chan.c:112
main.main
/tmp/lockcount.go:23
runtime_main
../../../libgo/runtime/proc.c:562
kickoff
../../../libgo/runtime/proc.c:229
goroutine 2 [syscall]:
goroutine in C code; stack unavailable
created by runtime_main
../../../libgo/runtime/proc.c:549
goroutine 3 [runnable]:
runtime_mcall
../../../libgo/runtime/proc.c:292
main.$nested0
/tmp/lockcount.go:12
kickoff
../../../libgo/runtime/proc.c:229
created by main.$init0
/tmp/lockcount.go:9
goroutine 4 [sleep]:
runtime_mcall
../../../libgo/runtime/proc.c:292
runtime_tsleep
../../../libgo/runtime/time.goc:81
main.$nested1
/tmp/lockcount.go:16
kickoff
../../../libgo/runtime/proc.c:229
created by main.$init0
/tmp/lockcount.go:15
goroutine 5 [syscall]:
goroutine in C code; stack unavailable
created by addtimer
../../../libgo/runtime/time.goc:131
More information about the Gcc-bugs
mailing list