]> Cypherpunks repositories - gostls13.git/commit
runtime: make module typemaps visible to the GC
authorDavid Crawshaw <crawshaw@golang.org>
Mon, 31 Oct 2016 01:19:59 +0000 (21:19 -0400)
committerDavid Crawshaw <crawshaw@golang.org>
Mon, 31 Oct 2016 04:49:52 +0000 (04:49 +0000)
commitf4c7a12c2c4b0aef99b4957a778736a4da9ae4ec
treec5e6ba761e54e38dc8904a3d75f683a4d7817ab8
parent9da7058466c8c9f32e1481f28d57732832ee3b30
runtime: make module typemaps visible to the GC

The map[typeOff]*_type object is created at run time and stored in
the moduledata. The moduledata object is marked by the linker as
SNOPTRDATA, so the reference is ignored by the GC. Running
misc/cgo/testplugin/test.bash with GOGC=1 will eventually collect
the typemap and crash.

This bug probably comes up in -linkshared binaries in Go 1.7.
I don't know why we haven't seen a report about this yet.

Fixes #17680

Change-Id: I0e9b5c006010e8edd51d9471651620ba665248d3
Reviewed-on: https://go-review.googlesource.com/32430
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Michael Hudson-Doyle <michael.hudson@canonical.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/runtime/symtab.go
src/runtime/type.go