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: GC from cgo callbacks is broken #5899

Closed
dvyukov opened this issue Jul 17, 2013 · 2 comments
Closed

runtime: GC from cgo callbacks is broken #5899

dvyukov opened this issue Jul 17, 2013 · 2 comments

Comments

@dvyukov
Copy link
Member

dvyukov commented Jul 17, 2013

This is currently happens on race builders:
http://build.golang.org/log/85d4aef0d640cb600ec7e67be890b71db3114663

--- FAIL: TestRace (3.00 seconds)
    race_test.go:45: Failed to run tests: exit status 1
        runtime: invalid pc-encoded table f=runtime.gosched0 pc=0x419483 targetpc=0x41948f tab=0x8b1548
        fatal error: invalid runtime symbol table
        
        goroutine 3 [running]:
        runtime.throw(0xb6920d)
            /usr/local/go/src/pkg/runtime/panic.c:484 +0x69 fp=0x7fa43879fc68
        pcvalue(0x8b1500, 0x44, 0x41948f)
            /usr/local/go/src/pkg/runtime/symtab.c:142 +0x130 fp=0x7fa43879fcd8
        runtime.funcline(0x8b1500, 0x41948f, 0x7fa43879fd30)
            /usr/local/go/src/pkg/runtime/symtab.c:155 +0x53 fp=0x7fa43879fd00
        runtime.funcline_go(0x8b1500, 0x41948f, 0xb6922a, 0x1, 0x41948f)
            /usr/local/go/src/pkg/runtime/symtab.c:193 +0x3b fp=0x7fa43879fd20
        runtime.(*Func).FileLine(0x8b1500, 0x41948f, 0x0, 0x0, 0x0)
            /usr/local/go/src/pkg/runtime/extern.go:104 +0x43 fp=0x7fa43879fd50
        runtime/race.__tsan_symbolize(0x41948f, 0x7fa436ee9b70, 0x7fa436ee9b78, 0x7fa436ee9b8c, 0x7fa436ee9b80, ...)
            /tmp/gobuilder/linux-amd64-race-dc24634de6c5/go/src/pkg/runtime/race/race.go:115 +0xbf fp=0x7fa43879fda0
        ----- stack segment boundary -----
        runtime.cgocallbackg(0x7fa436ee9aa0, 0x7fa436ee9b20, 0x30)
            /usr/local/go/src/pkg/runtime/cgocall.c:237 +0x51 fp=0x7fa43879fe80
        runtime.cgocallback_gofunc(0x4049b5, 0x66fe80, 0x7fa43879ff18)
            /usr/local/go/src/pkg/runtime/asm_amd64.s:625 +0x74 fp=0x7fa43879feb0
        runtime.asmcgocall(0x66fe80, 0x7fa43879ff18)
            /usr/local/go/src/pkg/runtime/asm_amd64.s:520 +0x2d fp=0x7fa43879feb8
        runtime.cgocall(0x66fe80, 0x7fa43879ff18)
            /usr/local/go/src/pkg/runtime/cgocall.c:116 +0x45 fp=0x7fa43879ff00
        runtime/race._Cfunc___tsan_read_range(0x7fa4376ec018, 0xc210000228, 0x8, 0x0, 0x4707d9)
            runtime/race/_obj/_cgo_defun.c:151 +0x31 fp=0x7fa43879ff18
        runtime/race.ReadRange(0x7fa4376ec018, 0xc210000228, 0x8, 0x4707d9)
            /tmp/gobuilder/linux-amd64-race-dc24634de6c5/go/src/pkg/runtime/race/race.go:59 +0x4e fp=0x7fa43879ff48
        runtime.racereadrange(0xc210000228, 0x8)
            /usr/local/go/src/pkg/runtime/race.c:110 +0x71 fp=0x7fa43879ff78
        command-line-arguments_test.func·283()
            /usr/local/go/src/pkg/runtime/race/testdata/regression_test.go:20 +0x49 fp=0x7fa43879ffa0
        runtime.goexit()
            /usr/local/go/src/pkg/runtime/proc.c:1289 fp=0x7fa43879ffa8
        created by command-line-arguments_test.NewLog
            /usr/local/go/src/pkg/runtime/race/testdata/regression_test.go:22 +0x113

Race detector makes cgo callback and tries to symbolize pc from the callback.
I suspect this is broken w/o race detector as well (GC from cgo callback should have the
same effect), we just don't have such tests.
@rsc
Copy link
Contributor

rsc commented Jul 30, 2013

Comment 1:

Is this still broken?

@dvyukov
Copy link
Member Author

dvyukov commented Aug 8, 2013

Comment 2:

We do have such test in misc/cgo/test:
func testCallbackGC(t *testing.T) {
        nestedCall(runtime.GC)
}

Status changed to Fixed.

@golang golang locked and limited conversation to collaborators Jun 24, 2016
@rsc rsc removed their assignment Jun 22, 2022
This issue was closed.
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

3 participants