|
|
Descriptionruntime: fix heap memory corruption
With concurrent sweeping finc if modified by runfinq and queuefinalizer concurrently.
Fixes crashes like this one:
http://build.golang.org/log/6ad7b59ef2e93e3c9347eabfb4c4bd66df58fd5a
Fixes issue 7324.
Update issue 7396
Patch Set 1 #Patch Set 2 : diff -r cf5dd8accd5e https://dvyukov%40google.com@code.google.com/p/go/ #Patch Set 3 : diff -r cf5dd8accd5e https://dvyukov%40google.com@code.google.com/p/go/ #Patch Set 4 : diff -r de23a6a5048d https://dvyukov%40google.com@code.google.com/p/go/ #MessagesTotal messages: 10
Hello golang-codereviews@googlegroups.com (cc: khr@golang.org, rsc@golang.org), I'd like you to review this change to https://dvyukov%40google.com@code.google.com/p/go/
Sign in to reply to this message.
Unfortunately, this doesn't fix the crash on DflyBSD during go test -v -short std, it could be reproduced 100% on that system: ... ok go/format 0.015s ok go/parser 0.068s panic: runtime error: invalid memory address or nil pointer dereference [signal 0xb code=0x1 addr=0x0 pc=0x8c27a0] goroutine 419 [running]: runtime.panic(0x7cd920, 0xce2ae8) /home/minux/build/go.hg/src/pkg/runtime/panic.c:250 +0xb4 runtime: unexpected return pc for runtime.sigpanic called from 0x8c27a0 goroutine 16 [semacquire]: sync.runtime_Semacquire(0xc20856df8c) /home/minux/build/go.hg/src/pkg/runtime/sema.goc:199 +0x30 sync.(*WaitGroup).Wait(0xc208381b00) /home/minux/build/go.hg/src/pkg/sync/waitgroup.go:127 +0x15d main.(*builder).do(0xc2080589a0, 0xc20856bd40) /home/minux/build/go.hg/src/cmd/go/build.go:745 +0x440 main.runTest(0xce1940, 0xc20800c020, 0x3, 0x3) /home/minux/build/go.hg/src/cmd/go/test.go:503 +0x22f9 main.main() /home/minux/build/go.hg/src/cmd/go/main.go:161 +0x4fb goroutine 19 [syscall]: os/signal.loop() /home/minux/build/go.hg/src/pkg/os/signal/signal_unix.go:21 +0x1e created by os/signal.init·1 /home/minux/build/go.hg/src/pkg/os/signal/signal_unix.go:27 +0x31 goroutine 21 [syscall]: syscall.Syscall6(0x7, 0x8bbc, 0x800e0909c, 0x0, 0xc2089d6c60, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 syscall.wait4(0x8bbc, 0x800e0909c, 0x0, 0xc2089d6c60, 0x478212, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 syscall.Wait4(0x8bbc, 0x800e090e4, 0x0, 0xc2089d6c60, 0xc208a69f90, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 os.(*Process).wait(0xc2084c1a20, 0x0, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 os.(*Process).Wait(0xc2084c1a20, 0xc208c43f40, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 os/exec.(*Cmd).Wait(0xc2089d8a00, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd os/exec.(*Cmd).Run(0xc2089d8a00, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 main.(*builder).runOut(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 main.(*builder).run(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1311 +0xe6 main.gcToolchain.ld(0xc2080589a0, 0xc208612400, 0xc208484300, 0x34, 0xc20888c000, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1759 +0x1005 main.gcToolchain.ld·i(0x0, 0xc2080589a0, 0xc208612400, 0xc208484300, 0x34, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1 +0xe3 main.(*builder).build(0xc2080589a0, 0xc20856ba00, 0x0, 0x0) /home/minux/build/go.hg/src/cmd/go/build.go:985 +0x349c main.func·005(0xc20856ba00) /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 main.func·006() /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 created by main.(*builder).do /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 goroutine 22 [syscall]: syscall.Syscall6(0x7, 0x8bc1, 0x800e071e4, 0x0, 0xc2089d6240, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 syscall.wait4(0x8bc1, 0x800e071e4, 0x0, 0xc2089d6240, 0x478212, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 syscall.Wait4(0x8bc1, 0x800e0722c, 0x0, 0xc2089d6240, 0xc208a3e1e0, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 os.(*Process).wait(0xc2084bfe00, 0x0, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 os.(*Process).Wait(0xc2084bfe00, 0xc2080c7950, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 os/exec.(*Cmd).Wait(0xc2089d8140, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd os/exec.(*Cmd).Run(0xc2089d8140, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 main.(*builder).runOut(0xc2080589a0, 0xc20830f620, 0x2a, 0xc2080f39d0, 0xa, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 main.gcToolchain.gc(0xc2080589a0, 0xc2085d6800, 0xc2086682c0, 0x34, 0xc208385840, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1590 +0xca0 main.gcToolchain.gc·i(0x0, 0xc2080589a0, 0xc2085d6800, 0xc2086682c0, 0x34, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1 +0x181 main.(*builder).build(0xc2080589a0, 0xc208564b60, 0x0, 0x0) /home/minux/build/go.hg/src/cmd/go/build.go:893 +0x2060 main.func·005(0xc208564b60) /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 main.func·006() /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 created by main.(*builder).do /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 goroutine 23 [syscall]: syscall.Syscall6(0x7, 0x8bb9, 0x800e051e4, 0x0, 0xc2089d6870, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 syscall.wait4(0x8bb9, 0x800e051e4, 0x0, 0xc2089d6870, 0x478212, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 syscall.Wait4(0x8bb9, 0x800e0522c, 0x0, 0xc2089d6870, 0xc208a69bd0, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 os.(*Process).wait(0xc2084c1140, 0x0, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 os.(*Process).Wait(0xc2084c1140, 0xc208a0c690, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 os/exec.(*Cmd).Wait(0xc2089d8640, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd os/exec.(*Cmd).Run(0xc2089d8640, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 main.(*builder).runOut(0xc2080589a0, 0xc2082355c0, 0x24, 0xc2080f3040, 0x4, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 main.gcToolchain.gc(0xc2080589a0, 0xc208479400, 0xc2082ed0b0, 0x28, 0xc2083f9800, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1590 +0xca0 main.gcToolchain.gc·i(0x0, 0xc2080589a0, 0xc208479400, 0xc2082ed0b0, 0x28, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1 +0x181 main.(*builder).build(0xc2080589a0, 0xc208536ea0, 0x0, 0x0) /home/minux/build/go.hg/src/cmd/go/build.go:893 +0x2060 main.func·005(0xc208536ea0) /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 main.func·006() /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 created by main.(*builder).do /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 goroutine 24 [syscall]: syscall.Syscall6(0x7, 0x8bbe, 0x800e0309c, 0x0, 0xc2089d6f30, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 syscall.wait4(0x8bbe, 0x800e0309c, 0x0, 0xc2089d6f30, 0x478212, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 syscall.Wait4(0x8bbe, 0x800e030e4, 0x0, 0xc2089d6f30, 0xc208a3e280, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 os.(*Process).wait(0xc2084be040, 0x0, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 os.(*Process).Wait(0xc2084be040, 0xc20888e320, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 os/exec.(*Cmd).Wait(0xc2089d8dc0, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd os/exec.(*Cmd).Run(0xc2089d8dc0, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 main.(*builder).runOut(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 main.(*builder).run(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1311 +0xe6 main.gcToolchain.ld(0xc2080589a0, 0xc2083a8c00, 0xc2082ecf60, 0x2e, 0xc2089afe00, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1759 +0x1005 main.gcToolchain.ld·i(0x0, 0xc2080589a0, 0xc2083a8c00, 0xc2082ecf60, 0x2e, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1 +0xe3 main.(*builder).build(0xc2080589a0, 0xc208134750, 0x0, 0x0) /home/minux/build/go.hg/src/cmd/go/build.go:985 +0x349c main.func·005(0xc208134750) /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 main.func·006() /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 created by main.(*builder).do /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 goroutine 25 [syscall]: syscall.Syscall6(0x7, 0x8bbb, 0x800e0109c, 0x0, 0xc2089d6b40, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 syscall.wait4(0x8bbb, 0x800e0109c, 0x0, 0xc2089d6b40, 0x478212, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 syscall.Wait4(0x8bbb, 0x800e010e4, 0x0, 0xc2089d6b40, 0xc208a69ef0, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 os.(*Process).wait(0xc2084c1860, 0x0, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 os.(*Process).Wait(0xc2084c1860, 0xc20888e0a0, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 os/exec.(*Cmd).Wait(0xc2089d8b40, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd os/exec.(*Cmd).Run(0xc2089d8b40, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 main.(*builder).runOut(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 main.(*builder).run(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1311 +0xe6 main.gcToolchain.ld(0xc2080589a0, 0xc20867bc00, 0xc2084cbe80, 0x32, 0xc2089afb00, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1759 +0x1005 main.gcToolchain.ld·i(0x0, 0xc2080589a0, 0xc20867bc00, 0xc2084cbe80, 0x32, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1 +0xe3 main.(*builder).build(0xc2080589a0, 0xc2085651e0, 0x0, 0x0) /home/minux/build/go.hg/src/cmd/go/build.go:985 +0x349c main.func·005(0xc2085651e0) /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 main.func·006() /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 created by main.(*builder).do /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 goroutine 26 [syscall]: syscall.Syscall6(0x7, 0x8bba, 0x800dff1e4, 0x0, 0xc2089d6e10, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 syscall.wait4(0x8bba, 0x800dff1e4, 0x0, 0xc2089d6e10, 0x478212, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 syscall.Wait4(0x8bba, 0x800dff22c, 0x0, 0xc2089d6e10, 0xc208a69db0, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 os.(*Process).wait(0xc2084c1d40, 0x0, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 os.(*Process).Wait(0xc2084c1d40, 0xc208b73860, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 os/exec.(*Cmd).Wait(0xc2089d88c0, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd os/exec.(*Cmd).Run(0xc2089d88c0, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 main.(*builder).runOut(0xc2080589a0, 0xc2081ed620, 0x2d, 0xc2080f3c40, 0xd, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 main.gcToolchain.gc(0xc2080589a0, 0xc208566800, 0xc20840f540, 0x3a, 0xc2082788c0, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1590 +0xca0 main.gcToolchain.gc·i(0x0, 0xc2080589a0, 0xc208566800, 0xc20840f540, 0x3a, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1 +0x181 main.(*builder).build(0xc2080589a0, 0xc2080c8b60, 0x0, 0x0) /home/minux/build/go.hg/src/cmd/go/build.go:893 +0x2060 main.func·005(0xc2080c8b60) /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 main.func·006() /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 created by main.(*builder).do /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 goroutine 27 [syscall]: syscall.Syscall6(0x7, 0x8bc3, 0x800dfd09c, 0x0, 0xc2089d6480, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 syscall.wait4(0x8bc3, 0x800dfd09c, 0x0, 0xc2089d6480, 0x478212, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 syscall.Wait4(0x8bc3, 0x800dfd0e4, 0x0, 0xc2089d6480, 0xc208a3e4b0, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 os.(*Process).wait(0xc2084bf840, 0x0, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 os.(*Process).Wait(0xc2084bf840, 0xc20888e000, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 os/exec.(*Cmd).Wait(0xc2089d8500, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd os/exec.(*Cmd).Run(0xc2089d8500, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 main.(*builder).runOut(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 main.(*builder).run(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1311 +0xe6 main.gcToolchain.ld(0xc2080589a0, 0xc208453c00, 0xc208668200, 0x33, 0xc2082d8a00, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1759 +0x1005 main.gcToolchain.ld·i(0x0, 0xc2080589a0, 0xc208453c00, 0xc208668200, 0x33, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1 +0xe3 main.(*builder).build(0xc2080589a0, 0xc20861c680, 0x0, 0x0) /home/minux/build/go.hg/src/cmd/go/build.go:985 +0x349c main.func·005(0xc20861c680) /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 main.func·006() /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 created by main.(*builder).do /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 goroutine 28 [syscall]: syscall.Syscall6(0x7, 0x8bc4, 0x800dfb1e4, 0x0, 0xc2089d65a0, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 syscall.wait4(0x8bc4, 0x800dfb1e4, 0x0, 0xc2089d65a0, 0x478212, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 syscall.Wait4(0x8bc4, 0x800dfb22c, 0x0, 0xc2089d65a0, 0xc208a3ff90, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 os.(*Process).wait(0xc2084bf540, 0x0, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 os.(*Process).Wait(0xc2084bf540, 0xc2080c7d10, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 os/exec.(*Cmd).Wait(0xc2089d8f00, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd os/exec.(*Cmd).Run(0xc2089d8f00, 0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 main.(*builder).runOut(0xc2080589a0, 0xc2081cc8d0, 0x25, 0xc2083cfe40, 0xa, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 main.gcToolchain.gc(0xc2080589a0, 0xc208612c00, 0xc2080f2510, 0x2f, 0xc2080f2390, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1590 +0xca0 main.gcToolchain.gc·i(0x0, 0xc2080589a0, 0xc208612c00, 0xc2080f2510, 0x2f, ...) /home/minux/build/go.hg/src/cmd/go/build.go:1 +0x181 main.(*builder).build(0xc2080589a0, 0xc2085055f0, 0x0, 0x0) /home/minux/build/go.hg/src/cmd/go/build.go:893 +0x2060 main.func·005(0xc2085055f0) /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 main.func·006() /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 created by main.(*builder).do /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 goroutine 405 [syscall]: syscall.Syscall(0x3, 0x5, 0xc2089c3e00, 0x200, 0x0, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 syscall.read(0x5, 0xc2089c3e00, 0x200, 0x200, 0x70dc61, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 +0x9c syscall.Read(0x5, 0xc2089c3e00, 0x200, 0x200, 0x464f35, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e os.(*File).read(0xc20899c9d0, 0xc2089c3e00, 0x200, 0x200, 0x6fd380, ...) /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 os.(*File).Read(0xc20899c9d0, 0xc2089c3e00, 0x200, 0x200, 0x4b9cfa, ...) /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 bytes.(*Buffer).ReadFrom(0xc2089d2b60, 0x800db0ca8, 0xc20899c9d0, 0x0, 0x0, ...) /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a io.Copy(0x800e23338, 0xc2089d2b60, 0x800db0ca8, 0xc20899c9d0, 0x0, ...) /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 os/exec.func·003(0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 os/exec.func·004(0xc2084c0fc0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e created by os/exec.(*Cmd).Start /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb goroutine 408 [syscall]: syscall.Syscall(0x3, 0x3, 0xc20888c800, 0x200, 0x0, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 syscall.read(0x3, 0xc20888c800, 0x200, 0x200, 0x70dc61, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 +0x9c syscall.Read(0x3, 0xc20888c800, 0x200, 0x200, 0x464f35, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e os.(*File).read(0xc20899cab0, 0xc20888c800, 0x200, 0x200, 0x6fd380, ...) /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 os.(*File).Read(0xc20899cab0, 0xc20888c800, 0x200, 0x200, 0x4b9cfa, ...) /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 bytes.(*Buffer).ReadFrom(0xc2089d2cb0, 0x800db0ca8, 0xc20899cab0, 0x0, 0x0, ...) /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a io.Copy(0x800e23338, 0xc2089d2cb0, 0x800db0ca8, 0xc20899cab0, 0x0, ...) /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 os/exec.func·003(0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 os/exec.func·004(0xc2084c18a0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e created by os/exec.(*Cmd).Start /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb goroutine 411 [syscall]: syscall.Syscall(0x3, 0x7, 0xc20888ce00, 0x200, 0x0, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 syscall.read(0x7, 0xc20888ce00, 0x200, 0x200, 0x70dc61, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 +0x9c syscall.Read(0x7, 0xc20888ce00, 0x200, 0x200, 0x464f35, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e os.(*File).read(0xc20899cb48, 0xc20888ce00, 0x200, 0x200, 0x6fd380, ...) /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 os.(*File).Read(0xc20899cb48, 0xc20888ce00, 0x200, 0x200, 0x1, ...) /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 bytes.(*Buffer).ReadFrom(0xc2089d30a0, 0x800db0ca8, 0xc20899cb48, 0x0, 0x0, ...) /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a io.Copy(0x800e23338, 0xc2089d30a0, 0x800db0ca8, 0xc20899cb48, 0x0, ...) /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 os/exec.func·003(0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 os/exec.func·004(0xc2084c1ec0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e created by os/exec.(*Cmd).Start /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb goroutine 407 [syscall]: syscall.Syscall(0x3, 0x6, 0xc20888c400, 0x200, 0x0, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 syscall.read(0x6, 0xc20888c400, 0x200, 0x200, 0x70dc61, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 +0x9c syscall.Read(0x6, 0xc20888c400, 0x200, 0x200, 0x464f35, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e os.(*File).read(0xc20899ca80, 0xc20888c400, 0x200, 0x200, 0x6fd380, ...) /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 os.(*File).Read(0xc20899ca80, 0xc20888c400, 0x200, 0x200, 0x1, ...) /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 bytes.(*Buffer).ReadFrom(0xc2089d2d90, 0x800db0ca8, 0xc20899ca80, 0x0, 0x0, ...) /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a io.Copy(0x800e23338, 0xc2089d2d90, 0x800db0ca8, 0xc20899ca80, 0x0, ...) /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 os/exec.func·003(0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 os/exec.func·004(0xc2084c16e0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e created by os/exec.(*Cmd).Start /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb goroutine 418 [syscall]: syscall.Syscall(0x3, 0xb, 0xc20832ae00, 0x200, 0x0, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 syscall.read(0xb, 0xc20832ae00, 0x200, 0x200, 0x70dc61, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 +0x9c syscall.Read(0xb, 0xc20832ae00, 0x200, 0x200, 0x464f35, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e os.(*File).read(0xc20899c140, 0xc20832ae00, 0x200, 0x200, 0x6fd380, ...) /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 os.(*File).Read(0xc20899c140, 0xc20832ae00, 0x200, 0x200, 0x1, ...) /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 bytes.(*Buffer).ReadFrom(0xc2089d23f0, 0x800db0ca8, 0xc20899c140, 0x0, 0x0, ...) /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a io.Copy(0x800e23338, 0xc2089d23f0, 0x800db0ca8, 0xc20899c140, 0x0, ...) /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 os/exec.func·003(0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 os/exec.func·004(0xc2084bf6c0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e created by os/exec.(*Cmd).Start /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb goroutine 51 [chan receive]: main.func·028() /home/minux/build/go.hg/src/cmd/go/signal.go:21 +0x3b created by main.processSignals /home/minux/build/go.hg/src/cmd/go/signal.go:23 +0xc3 goroutine 410 [syscall]: syscall.Syscall(0x3, 0x8, 0xc20888cc00, 0x200, 0x0, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 syscall.read(0x8, 0xc20888cc00, 0x200, 0x200, 0x70dc61, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 +0x9c syscall.Read(0x8, 0xc20888cc00, 0x200, 0x200, 0x464f35, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e os.(*File).read(0xc20899ca20, 0xc20888cc00, 0x200, 0x200, 0x6fd380, ...) /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 os.(*File).Read(0xc20899ca20, 0xc20888cc00, 0x200, 0x200, 0x1, ...) /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 bytes.(*Buffer).ReadFrom(0xc2089d2c40, 0x800db0ca8, 0xc20899ca20, 0x0, 0x0, ...) /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a io.Copy(0x800e23338, 0xc2089d2c40, 0x800db0ca8, 0xc20899ca20, 0x0, ...) /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 os/exec.func·003(0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 os/exec.func·004(0xc2084c12c0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e created by os/exec.(*Cmd).Start /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb goroutine 417 [syscall]: syscall.Syscall(0x3, 0x9, 0xc20832ac00, 0x200, 0x0, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 syscall.read(0x9, 0xc20832ac00, 0x200, 0x200, 0x70dc61, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 +0x9c syscall.Read(0x9, 0xc20832ac00, 0x200, 0x200, 0x464f35, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e os.(*File).read(0xc20899c100, 0xc20832ac00, 0x200, 0x200, 0x6fd380, ...) /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 os.(*File).Read(0xc20899c100, 0xc20832ac00, 0x200, 0x200, 0x1, ...) /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 bytes.(*Buffer).ReadFrom(0xc2089d2310, 0x800db0ca8, 0xc20899c100, 0x0, 0x0, ...) /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a io.Copy(0x800e23338, 0xc2089d2310, 0x800db0ca8, 0xc20899c100, 0x0, ...) /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 os/exec.func·003(0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 os/exec.func·004(0xc2084bf9c0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e created by os/exec.(*Cmd).Start /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb goroutine 415 [syscall]: syscall.Syscall(0x3, 0xa, 0xc2083f4400, 0x200, 0x0, ...) /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 syscall.read(0xa, 0xc2083f4400, 0x200, 0x200, 0x70dc61, ...) /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 +0x9c syscall.Read(0xa, 0xc2083f4400, 0x200, 0x200, 0x464f35, ...) /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e os.(*File).read(0xc20899c078, 0xc2083f4400, 0x200, 0x200, 0x6fd380, ...) /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 os.(*File).Read(0xc20899c078, 0xc2083f4400, 0x200, 0x200, 0x4b9cfa, ...) /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 bytes.(*Buffer).ReadFrom(0xc2089d2150, 0x800db0ca8, 0xc20899c078, 0x0, 0x0, ...) /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a io.Copy(0x800e23338, 0xc2089d2150, 0x800db0ca8, 0xc20899c078, 0x0, ...) /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 os/exec.func·003(0x0, 0x0) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 os/exec.func·004(0xc2084bff80) /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e created by os/exec.(*Cmd).Start /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb
Sign in to reply to this message.
On Mon, Feb 24, 2014 at 12:12 PM, minux <minux.ma@gmail.com> wrote: > Unfortunately, this doesn't fix the crash on DflyBSD during go test -v > -short std, > it could be reproduced 100% on that system: Can you try to localize a small test that crashes most frequently (e.g. 'foo.test -test.run=bar -test.cpu=x') and then try to reproduce it on linux/darwin (preferably on linux)? Do all tests crash randomly? Or only a subset of tests? What is similar between that subset? If it crashes only on DflyBSD, I would first suspect syscall package and potential uintptr's in it. > ok go/format 0.015s > ok go/parser 0.068s > panic: runtime error: invalid memory address or nil pointer dereference > [signal 0xb code=0x1 addr=0x0 pc=0x8c27a0] > > goroutine 419 [running]: > runtime.panic(0x7cd920, 0xce2ae8) > /home/minux/build/go.hg/src/pkg/runtime/panic.c:250 +0xb4 > runtime: unexpected return pc for runtime.sigpanic called from 0x8c27a0 > > goroutine 16 [semacquire]: > sync.runtime_Semacquire(0xc20856df8c) > /home/minux/build/go.hg/src/pkg/runtime/sema.goc:199 +0x30 > sync.(*WaitGroup).Wait(0xc208381b00) > /home/minux/build/go.hg/src/pkg/sync/waitgroup.go:127 +0x15d > main.(*builder).do(0xc2080589a0, 0xc20856bd40) > /home/minux/build/go.hg/src/cmd/go/build.go:745 +0x440 > main.runTest(0xce1940, 0xc20800c020, 0x3, 0x3) > /home/minux/build/go.hg/src/cmd/go/test.go:503 +0x22f9 > main.main() > /home/minux/build/go.hg/src/cmd/go/main.go:161 +0x4fb > > goroutine 19 [syscall]: > os/signal.loop() > /home/minux/build/go.hg/src/pkg/os/signal/signal_unix.go:21 +0x1e > created by os/signal.init·1 > /home/minux/build/go.hg/src/pkg/os/signal/signal_unix.go:27 +0x31 > > goroutine 21 [syscall]: > syscall.Syscall6(0x7, 0x8bbc, 0x800e0909c, 0x0, 0xc2089d6c60, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 > syscall.wait4(0x8bbc, 0x800e0909c, 0x0, 0xc2089d6c60, 0x478212, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 > syscall.Wait4(0x8bbc, 0x800e090e4, 0x0, 0xc2089d6c60, 0xc208a69f90, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 > os.(*Process).wait(0xc2084c1a20, 0x0, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 > os.(*Process).Wait(0xc2084c1a20, 0xc208c43f40, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 > os/exec.(*Cmd).Wait(0xc2089d8a00, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd > os/exec.(*Cmd).Run(0xc2089d8a00, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 > main.(*builder).runOut(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 > main.(*builder).run(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1311 +0xe6 > main.gcToolchain.ld(0xc2080589a0, 0xc208612400, 0xc208484300, 0x34, > 0xc20888c000, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1759 +0x1005 > main.gcToolchain.ld·i(0x0, 0xc2080589a0, 0xc208612400, 0xc208484300, 0x34, > ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1 +0xe3 > main.(*builder).build(0xc2080589a0, 0xc20856ba00, 0x0, 0x0) > /home/minux/build/go.hg/src/cmd/go/build.go:985 +0x349c > main.func·005(0xc20856ba00) > /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 > main.func·006() > /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 > created by main.(*builder).do > /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 > > goroutine 22 [syscall]: > syscall.Syscall6(0x7, 0x8bc1, 0x800e071e4, 0x0, 0xc2089d6240, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 > syscall.wait4(0x8bc1, 0x800e071e4, 0x0, 0xc2089d6240, 0x478212, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 > syscall.Wait4(0x8bc1, 0x800e0722c, 0x0, 0xc2089d6240, 0xc208a3e1e0, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 > os.(*Process).wait(0xc2084bfe00, 0x0, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 > os.(*Process).Wait(0xc2084bfe00, 0xc2080c7950, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 > os/exec.(*Cmd).Wait(0xc2089d8140, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd > os/exec.(*Cmd).Run(0xc2089d8140, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 > main.(*builder).runOut(0xc2080589a0, 0xc20830f620, 0x2a, 0xc2080f39d0, 0xa, > ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 > main.gcToolchain.gc(0xc2080589a0, 0xc2085d6800, 0xc2086682c0, 0x34, > 0xc208385840, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1590 +0xca0 > main.gcToolchain.gc·i(0x0, 0xc2080589a0, 0xc2085d6800, 0xc2086682c0, 0x34, > ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1 +0x181 > main.(*builder).build(0xc2080589a0, 0xc208564b60, 0x0, 0x0) > /home/minux/build/go.hg/src/cmd/go/build.go:893 +0x2060 > main.func·005(0xc208564b60) > /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 > main.func·006() > /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 > created by main.(*builder).do > /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 > > goroutine 23 [syscall]: > syscall.Syscall6(0x7, 0x8bb9, 0x800e051e4, 0x0, 0xc2089d6870, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 > syscall.wait4(0x8bb9, 0x800e051e4, 0x0, 0xc2089d6870, 0x478212, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 > syscall.Wait4(0x8bb9, 0x800e0522c, 0x0, 0xc2089d6870, 0xc208a69bd0, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 > os.(*Process).wait(0xc2084c1140, 0x0, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 > os.(*Process).Wait(0xc2084c1140, 0xc208a0c690, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 > os/exec.(*Cmd).Wait(0xc2089d8640, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd > os/exec.(*Cmd).Run(0xc2089d8640, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 > main.(*builder).runOut(0xc2080589a0, 0xc2082355c0, 0x24, 0xc2080f3040, 0x4, > ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 > main.gcToolchain.gc(0xc2080589a0, 0xc208479400, 0xc2082ed0b0, 0x28, > 0xc2083f9800, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1590 +0xca0 > main.gcToolchain.gc·i(0x0, 0xc2080589a0, 0xc208479400, 0xc2082ed0b0, 0x28, > ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1 +0x181 > main.(*builder).build(0xc2080589a0, 0xc208536ea0, 0x0, 0x0) > /home/minux/build/go.hg/src/cmd/go/build.go:893 +0x2060 > main.func·005(0xc208536ea0) > /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 > main.func·006() > /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 > created by main.(*builder).do > /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 > > goroutine 24 [syscall]: > syscall.Syscall6(0x7, 0x8bbe, 0x800e0309c, 0x0, 0xc2089d6f30, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 > syscall.wait4(0x8bbe, 0x800e0309c, 0x0, 0xc2089d6f30, 0x478212, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 > syscall.Wait4(0x8bbe, 0x800e030e4, 0x0, 0xc2089d6f30, 0xc208a3e280, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 > os.(*Process).wait(0xc2084be040, 0x0, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 > os.(*Process).Wait(0xc2084be040, 0xc20888e320, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 > os/exec.(*Cmd).Wait(0xc2089d8dc0, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd > os/exec.(*Cmd).Run(0xc2089d8dc0, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 > main.(*builder).runOut(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 > main.(*builder).run(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1311 +0xe6 > main.gcToolchain.ld(0xc2080589a0, 0xc2083a8c00, 0xc2082ecf60, 0x2e, > 0xc2089afe00, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1759 +0x1005 > main.gcToolchain.ld·i(0x0, 0xc2080589a0, 0xc2083a8c00, 0xc2082ecf60, 0x2e, > ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1 +0xe3 > main.(*builder).build(0xc2080589a0, 0xc208134750, 0x0, 0x0) > /home/minux/build/go.hg/src/cmd/go/build.go:985 +0x349c > main.func·005(0xc208134750) > /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 > main.func·006() > /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 > created by main.(*builder).do > /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 > > goroutine 25 [syscall]: > syscall.Syscall6(0x7, 0x8bbb, 0x800e0109c, 0x0, 0xc2089d6b40, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 > syscall.wait4(0x8bbb, 0x800e0109c, 0x0, 0xc2089d6b40, 0x478212, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 > syscall.Wait4(0x8bbb, 0x800e010e4, 0x0, 0xc2089d6b40, 0xc208a69ef0, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 > os.(*Process).wait(0xc2084c1860, 0x0, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 > os.(*Process).Wait(0xc2084c1860, 0xc20888e0a0, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 > os/exec.(*Cmd).Wait(0xc2089d8b40, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd > os/exec.(*Cmd).Run(0xc2089d8b40, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 > main.(*builder).runOut(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 > main.(*builder).run(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1311 +0xe6 > main.gcToolchain.ld(0xc2080589a0, 0xc20867bc00, 0xc2084cbe80, 0x32, > 0xc2089afb00, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1759 +0x1005 > main.gcToolchain.ld·i(0x0, 0xc2080589a0, 0xc20867bc00, 0xc2084cbe80, 0x32, > ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1 +0xe3 > main.(*builder).build(0xc2080589a0, 0xc2085651e0, 0x0, 0x0) > /home/minux/build/go.hg/src/cmd/go/build.go:985 +0x349c > main.func·005(0xc2085651e0) > /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 > main.func·006() > /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 > created by main.(*builder).do > /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 > > goroutine 26 [syscall]: > syscall.Syscall6(0x7, 0x8bba, 0x800dff1e4, 0x0, 0xc2089d6e10, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 > syscall.wait4(0x8bba, 0x800dff1e4, 0x0, 0xc2089d6e10, 0x478212, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 > syscall.Wait4(0x8bba, 0x800dff22c, 0x0, 0xc2089d6e10, 0xc208a69db0, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 > os.(*Process).wait(0xc2084c1d40, 0x0, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 > os.(*Process).Wait(0xc2084c1d40, 0xc208b73860, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 > os/exec.(*Cmd).Wait(0xc2089d88c0, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd > os/exec.(*Cmd).Run(0xc2089d88c0, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 > main.(*builder).runOut(0xc2080589a0, 0xc2081ed620, 0x2d, 0xc2080f3c40, 0xd, > ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 > main.gcToolchain.gc(0xc2080589a0, 0xc208566800, 0xc20840f540, 0x3a, > 0xc2082788c0, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1590 +0xca0 > main.gcToolchain.gc·i(0x0, 0xc2080589a0, 0xc208566800, 0xc20840f540, 0x3a, > ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1 +0x181 > main.(*builder).build(0xc2080589a0, 0xc2080c8b60, 0x0, 0x0) > /home/minux/build/go.hg/src/cmd/go/build.go:893 +0x2060 > main.func·005(0xc2080c8b60) > /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 > main.func·006() > /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 > created by main.(*builder).do > /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 > > goroutine 27 [syscall]: > syscall.Syscall6(0x7, 0x8bc3, 0x800dfd09c, 0x0, 0xc2089d6480, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 > syscall.wait4(0x8bc3, 0x800dfd09c, 0x0, 0xc2089d6480, 0x478212, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 > syscall.Wait4(0x8bc3, 0x800dfd0e4, 0x0, 0xc2089d6480, 0xc208a3e4b0, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 > os.(*Process).wait(0xc2084bf840, 0x0, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 > os.(*Process).Wait(0xc2084bf840, 0xc20888e000, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 > os/exec.(*Cmd).Wait(0xc2089d8500, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd > os/exec.(*Cmd).Run(0xc2089d8500, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 > main.(*builder).runOut(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 > main.(*builder).run(0xc2080589a0, 0x816d40, 0x1, 0x846750, 0x8, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1311 +0xe6 > main.gcToolchain.ld(0xc2080589a0, 0xc208453c00, 0xc208668200, 0x33, > 0xc2082d8a00, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1759 +0x1005 > main.gcToolchain.ld·i(0x0, 0xc2080589a0, 0xc208453c00, 0xc208668200, 0x33, > ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1 +0xe3 > main.(*builder).build(0xc2080589a0, 0xc20861c680, 0x0, 0x0) > /home/minux/build/go.hg/src/cmd/go/build.go:985 +0x349c > main.func·005(0xc20861c680) > /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 > main.func·006() > /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 > created by main.(*builder).do > /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 > > goroutine 28 [syscall]: > syscall.Syscall6(0x7, 0x8bc4, 0x800dfb1e4, 0x0, 0xc2089d65a0, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:41 +0x5 > syscall.wait4(0x8bc4, 0x800dfb1e4, 0x0, 0xc2089d65a0, 0x478212, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:32 +0x95 > syscall.Wait4(0x8bc4, 0x800dfb22c, 0x0, 0xc2089d65a0, 0xc208a3ff90, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_bsd.go:129 +0x76 > os.(*Process).wait(0xc2084bf540, 0x0, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec_unix.go:22 +0x121 > os.(*Process).Wait(0xc2084bf540, 0xc2080c7d10, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/doc.go:43 +0x39 > os/exec.(*Cmd).Wait(0xc2089d8f00, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:320 +0x1bd > os/exec.(*Cmd).Run(0xc2089d8f00, 0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:237 +0x78 > main.(*builder).runOut(0xc2080589a0, 0xc2081cc8d0, 0x25, 0xc2083cfe40, 0xa, > ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1360 +0x298 > main.gcToolchain.gc(0xc2080589a0, 0xc208612c00, 0xc2080f2510, 0x2f, > 0xc2080f2390, ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1590 +0xca0 > main.gcToolchain.gc·i(0x0, 0xc2080589a0, 0xc208612c00, 0xc2080f2510, 0x2f, > ...) > /home/minux/build/go.hg/src/cmd/go/build.go:1 +0x181 > main.(*builder).build(0xc2080589a0, 0xc2085055f0, 0x0, 0x0) > /home/minux/build/go.hg/src/cmd/go/build.go:893 +0x2060 > main.func·005(0xc2085055f0) > /home/minux/build/go.hg/src/cmd/go/build.go:679 +0x377 > main.func·006() > /home/minux/build/go.hg/src/cmd/go/build.go:736 +0x134 > created by main.(*builder).do > /home/minux/build/go.hg/src/cmd/go/build.go:742 +0x416 > > goroutine 405 [syscall]: > syscall.Syscall(0x3, 0x5, 0xc2089c3e00, 0x200, 0x0, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 > syscall.read(0x5, 0xc2089c3e00, 0x200, 0x200, 0x70dc61, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 > +0x9c > syscall.Read(0x5, 0xc2089c3e00, 0x200, 0x200, 0x464f35, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e > os.(*File).read(0xc20899c9d0, 0xc2089c3e00, 0x200, 0x200, 0x6fd380, ...) > /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 > os.(*File).Read(0xc20899c9d0, 0xc2089c3e00, 0x200, 0x200, 0x4b9cfa, ...) > /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 > bytes.(*Buffer).ReadFrom(0xc2089d2b60, 0x800db0ca8, 0xc20899c9d0, 0x0, 0x0, > ...) > /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a > io.Copy(0x800e23338, 0xc2089d2b60, 0x800db0ca8, 0xc20899c9d0, 0x0, ...) > /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 > os/exec.func·003(0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 > os/exec.func·004(0xc2084c0fc0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e > created by os/exec.(*Cmd).Start > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb > > goroutine 408 [syscall]: > syscall.Syscall(0x3, 0x3, 0xc20888c800, 0x200, 0x0, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 > syscall.read(0x3, 0xc20888c800, 0x200, 0x200, 0x70dc61, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 > +0x9c > syscall.Read(0x3, 0xc20888c800, 0x200, 0x200, 0x464f35, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e > os.(*File).read(0xc20899cab0, 0xc20888c800, 0x200, 0x200, 0x6fd380, ...) > /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 > os.(*File).Read(0xc20899cab0, 0xc20888c800, 0x200, 0x200, 0x4b9cfa, ...) > /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 > bytes.(*Buffer).ReadFrom(0xc2089d2cb0, 0x800db0ca8, 0xc20899cab0, 0x0, 0x0, > ...) > /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a > io.Copy(0x800e23338, 0xc2089d2cb0, 0x800db0ca8, 0xc20899cab0, 0x0, ...) > /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 > os/exec.func·003(0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 > os/exec.func·004(0xc2084c18a0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e > created by os/exec.(*Cmd).Start > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb > > goroutine 411 [syscall]: > syscall.Syscall(0x3, 0x7, 0xc20888ce00, 0x200, 0x0, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 > syscall.read(0x7, 0xc20888ce00, 0x200, 0x200, 0x70dc61, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 > +0x9c > syscall.Read(0x7, 0xc20888ce00, 0x200, 0x200, 0x464f35, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e > os.(*File).read(0xc20899cb48, 0xc20888ce00, 0x200, 0x200, 0x6fd380, ...) > /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 > os.(*File).Read(0xc20899cb48, 0xc20888ce00, 0x200, 0x200, 0x1, ...) > /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 > bytes.(*Buffer).ReadFrom(0xc2089d30a0, 0x800db0ca8, 0xc20899cb48, 0x0, 0x0, > ...) > /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a > io.Copy(0x800e23338, 0xc2089d30a0, 0x800db0ca8, 0xc20899cb48, 0x0, ...) > /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 > os/exec.func·003(0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 > os/exec.func·004(0xc2084c1ec0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e > created by os/exec.(*Cmd).Start > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb > > goroutine 407 [syscall]: > syscall.Syscall(0x3, 0x6, 0xc20888c400, 0x200, 0x0, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 > syscall.read(0x6, 0xc20888c400, 0x200, 0x200, 0x70dc61, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 > +0x9c > syscall.Read(0x6, 0xc20888c400, 0x200, 0x200, 0x464f35, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e > os.(*File).read(0xc20899ca80, 0xc20888c400, 0x200, 0x200, 0x6fd380, ...) > /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 > os.(*File).Read(0xc20899ca80, 0xc20888c400, 0x200, 0x200, 0x1, ...) > /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 > bytes.(*Buffer).ReadFrom(0xc2089d2d90, 0x800db0ca8, 0xc20899ca80, 0x0, 0x0, > ...) > /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a > io.Copy(0x800e23338, 0xc2089d2d90, 0x800db0ca8, 0xc20899ca80, 0x0, ...) > /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 > os/exec.func·003(0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 > os/exec.func·004(0xc2084c16e0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e > created by os/exec.(*Cmd).Start > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb > > goroutine 418 [syscall]: > syscall.Syscall(0x3, 0xb, 0xc20832ae00, 0x200, 0x0, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 > syscall.read(0xb, 0xc20832ae00, 0x200, 0x200, 0x70dc61, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 > +0x9c > syscall.Read(0xb, 0xc20832ae00, 0x200, 0x200, 0x464f35, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e > os.(*File).read(0xc20899c140, 0xc20832ae00, 0x200, 0x200, 0x6fd380, ...) > /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 > os.(*File).Read(0xc20899c140, 0xc20832ae00, 0x200, 0x200, 0x1, ...) > /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 > bytes.(*Buffer).ReadFrom(0xc2089d23f0, 0x800db0ca8, 0xc20899c140, 0x0, 0x0, > ...) > /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a > io.Copy(0x800e23338, 0xc2089d23f0, 0x800db0ca8, 0xc20899c140, 0x0, ...) > /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 > os/exec.func·003(0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 > os/exec.func·004(0xc2084bf6c0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e > created by os/exec.(*Cmd).Start > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb > > goroutine 51 [chan receive]: > main.func·028() > /home/minux/build/go.hg/src/cmd/go/signal.go:21 +0x3b > created by main.processSignals > /home/minux/build/go.hg/src/cmd/go/signal.go:23 +0xc3 > > goroutine 410 [syscall]: > syscall.Syscall(0x3, 0x8, 0xc20888cc00, 0x200, 0x0, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 > syscall.read(0x8, 0xc20888cc00, 0x200, 0x200, 0x70dc61, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 > +0x9c > syscall.Read(0x8, 0xc20888cc00, 0x200, 0x200, 0x464f35, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e > os.(*File).read(0xc20899ca20, 0xc20888cc00, 0x200, 0x200, 0x6fd380, ...) > /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 > os.(*File).Read(0xc20899ca20, 0xc20888cc00, 0x200, 0x200, 0x1, ...) > /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 > bytes.(*Buffer).ReadFrom(0xc2089d2c40, 0x800db0ca8, 0xc20899ca20, 0x0, 0x0, > ...) > /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a > io.Copy(0x800e23338, 0xc2089d2c40, 0x800db0ca8, 0xc20899ca20, 0x0, ...) > /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 > os/exec.func·003(0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 > os/exec.func·004(0xc2084c12c0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e > created by os/exec.(*Cmd).Start > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb > > goroutine 417 [syscall]: > syscall.Syscall(0x3, 0x9, 0xc20832ac00, 0x200, 0x0, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 > syscall.read(0x9, 0xc20832ac00, 0x200, 0x200, 0x70dc61, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 > +0x9c > syscall.Read(0x9, 0xc20832ac00, 0x200, 0x200, 0x464f35, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e > os.(*File).read(0xc20899c100, 0xc20832ac00, 0x200, 0x200, 0x6fd380, ...) > /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 > os.(*File).Read(0xc20899c100, 0xc20832ac00, 0x200, 0x200, 0x1, ...) > /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 > bytes.(*Buffer).ReadFrom(0xc2089d2310, 0x800db0ca8, 0xc20899c100, 0x0, 0x0, > ...) > /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a > io.Copy(0x800e23338, 0xc2089d2310, 0x800db0ca8, 0xc20899c100, 0x0, ...) > /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 > os/exec.func·003(0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 > os/exec.func·004(0xc2084bf9c0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e > created by os/exec.(*Cmd).Start > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb > > goroutine 415 [syscall]: > syscall.Syscall(0x3, 0xa, 0xc2083f4400, 0x200, 0x0, ...) > /home/minux/build/go.hg/src/pkg/syscall/asm_dragonfly_amd64.s:18 +0x5 > syscall.read(0xa, 0xc2083f4400, 0x200, 0x200, 0x70dc61, ...) > /home/minux/build/go.hg/src/pkg/syscall/zsyscall_dragonfly_amd64.go:890 > +0x9c > syscall.Read(0xa, 0xc2083f4400, 0x200, 0x200, 0x464f35, ...) > /home/minux/build/go.hg/src/pkg/syscall/syscall_unix.go:135 +0x6e > os.(*File).read(0xc20899c078, 0xc2083f4400, 0x200, 0x200, 0x6fd380, ...) > /home/minux/build/go.hg/src/pkg/os/file_unix.go:183 +0x74 > os.(*File).Read(0xc20899c078, 0xc2083f4400, 0x200, 0x200, 0x4b9cfa, ...) > /home/minux/build/go.hg/src/pkg/os/file.go:95 +0xc2 > bytes.(*Buffer).ReadFrom(0xc2089d2150, 0x800db0ca8, 0xc20899c078, 0x0, 0x0, > ...) > /home/minux/build/go.hg/src/pkg/bytes/buffer.go:169 +0x22a > io.Copy(0x800e23338, 0xc2089d2150, 0x800db0ca8, 0xc20899c078, 0x0, ...) > /home/minux/build/go.hg/src/pkg/io/io.go:348 +0x153 > os/exec.func·003(0x0, 0x0) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:212 +0x86 > os/exec.func·004(0xc2084bff80) > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:284 +0x3e > created by os/exec.(*Cmd).Start > /home/minux/build/go.hg/src/pkg/os/exec/exec.go:285 +0x8eb >
Sign in to reply to this message.
On Mon, Feb 24, 2014 at 3:19 AM, Dmitry Vyukov <dvyukov@google.com> wrote: > On Mon, Feb 24, 2014 at 12:12 PM, minux <minux.ma@gmail.com> wrote: > > Unfortunately, this doesn't fix the crash on DflyBSD during go test -v > > -short std, > > it could be reproduced 100% on that system: > > Can you try to localize a small test that crashes most frequently > (e.g. 'foo.test -test.run=bar -test.cpu=x') and then try to reproduce > note: it's cmd/go that's crashing. go install -a -v std works fine, but during first few tests in go test -short std, it will crash like that. GOTRACEBACK=2 shows that the nil dereference happens in a gc created thread: panic: runtime error: invalid memory address or nil pointer dereference [signal 0xb code=0x1 addr=0x0 pc=0x8c27a0] goroutine 651 [running]: runtime.panic(0x7cd920, 0xce2ae8) /home/minux/build/go.hg/src/pkg/runtime/panic.c:250 +0xb4 runtime.panicstring(0xce2ae8) /home/minux/build/go.hg/src/pkg/runtime/panic.c:482 +0xbd runtime: unexpected return pc for runtime.sigpanic called from 0x8c27a0 runtime.sigpanic() /home/minux/build/go.hg/src/pkg/runtime/os_dragonfly.c:185 +0xea created by runtime.gc /home/minux/build/go.hg/src/pkg/runtime/mgc0.c:2188 ... goroutine 18 [GC sweep wait]: runtime.park(0x469490, 0xcf98b0, 0xce6669) /home/minux/build/go.hg/src/pkg/runtime/proc.c:1364 +0x66 runtime.parkunlock(0xcf98b0, 0xce6669) /home/minux/build/go.hg/src/pkg/runtime/proc.c:1380 +0x3b bgsweep() /home/minux/build/go.hg/src/pkg/runtime/mgc0.c:1917 +0xc2 runtime.goexit() /home/minux/build/go.hg/src/pkg/runtime/proc.c:1438 created by runtime.gc /home/minux/build/go.hg/src/pkg/runtime/mgc0.c:2188 I also observed crash in crypto/tls. Probably cgo related, if i disable cgo, go test -short std could complete without crash. Do you have a clue? (but is cmd/go using cgo during go test?) The stack unwinder has some bug also. I will take a closer look, but not until at least Wednesday. > it on linux/darwin (preferably on linux)? > Do all tests crash randomly? Or only a subset of tests? What is > similar between that subset? > If it crashes only on DflyBSD, I would first suspect syscall package > and potential uintptr's in it.
Sign in to reply to this message.
it seems to be bgsweep goroutine does it always crash in the same goroutine? what if you disable the following one by one? ScanStackByFrames = 1, IgnorePreciseGC = 0, ConcurrentSweep = 1, yes, unwinder would be useful, we need to know at least the line where it crashes On Mon, Feb 24, 2014 at 12:51 PM, minux <minux.ma@gmail.com> wrote: > > On Mon, Feb 24, 2014 at 3:19 AM, Dmitry Vyukov <dvyukov@google.com> wrote: >> >> On Mon, Feb 24, 2014 at 12:12 PM, minux <minux.ma@gmail.com> wrote: >> > Unfortunately, this doesn't fix the crash on DflyBSD during go test -v >> > -short std, >> > it could be reproduced 100% on that system: >> >> Can you try to localize a small test that crashes most frequently >> (e.g. 'foo.test -test.run=bar -test.cpu=x') and then try to reproduce > > note: it's cmd/go that's crashing. > go install -a -v std works fine, but during first few tests in go test > -short std, > it will crash like that. > > GOTRACEBACK=2 shows that the nil dereference happens in a gc created > thread: > panic: runtime error: invalid memory address or nil pointer dereference > [signal 0xb code=0x1 addr=0x0 pc=0x8c27a0] > > goroutine 651 [running]: > runtime.panic(0x7cd920, 0xce2ae8) > /home/minux/build/go.hg/src/pkg/runtime/panic.c:250 +0xb4 > runtime.panicstring(0xce2ae8) > /home/minux/build/go.hg/src/pkg/runtime/panic.c:482 +0xbd > runtime: unexpected return pc for runtime.sigpanic called from 0x8c27a0 > runtime.sigpanic() > /home/minux/build/go.hg/src/pkg/runtime/os_dragonfly.c:185 +0xea > created by runtime.gc > /home/minux/build/go.hg/src/pkg/runtime/mgc0.c:2188 > ... > goroutine 18 [GC sweep wait]: > runtime.park(0x469490, 0xcf98b0, 0xce6669) > /home/minux/build/go.hg/src/pkg/runtime/proc.c:1364 +0x66 > runtime.parkunlock(0xcf98b0, 0xce6669) > /home/minux/build/go.hg/src/pkg/runtime/proc.c:1380 +0x3b > bgsweep() > /home/minux/build/go.hg/src/pkg/runtime/mgc0.c:1917 +0xc2 > runtime.goexit() > /home/minux/build/go.hg/src/pkg/runtime/proc.c:1438 > created by runtime.gc > /home/minux/build/go.hg/src/pkg/runtime/mgc0.c:2188 > > I also observed crash in crypto/tls. Probably cgo related, if i disable cgo, > go test -short std could complete without crash. Do you have a clue? > (but is cmd/go using cgo during go test?) > > The stack unwinder has some bug also. I will take a closer look, but not > until > at least Wednesday. >> >> it on linux/darwin (preferably on linux)? >> Do all tests crash randomly? Or only a subset of tests? What is >> similar between that subset? >> If it crashes only on DflyBSD, I would first suspect syscall package >> and potential uintptr's in it.
Sign in to reply to this message.
On Mon, Feb 24, 2014 at 3:59 AM, Dmitry Vyukov <dvyukov@google.com> wrote: > it seems to be bgsweep goroutine > does it always crash in the same goroutine? > I think so. The traceback always looks very similar. > > what if you disable the following one by one? > ScanStackByFrames = 1, > IgnorePreciseGC = 0, > ConcurrentSweep = 1, > just disable scanstackbyframe, same. panic: runtime error: invalid memory address or nil pointer dereference [signal 0xb code=0x1 addr=0x0 pc=0x8c1de0] goroutine 108 [running]: runtime.panic(0x7cd3a0, 0xce2a88) /home/minux/build/go.hg/src/pkg/runtime/panic.c:250 +0xb4 runtime.panicstring(0xce2a88) /home/minux/build/go.hg/src/pkg/runtime/panic.c:482 +0xbd runtime: unexpected return pc for runtime.sigpanic called from 0x8c1de0 runtime.sigpanic() /home/minux/build/go.hg/src/pkg/runtime/os_dragonfly.c:185 +0xea created by runtime.gc /home/minux/build/go.hg/src/pkg/runtime/mgc0.c:2188 just disable concurrentsweep, still same: panic: runtime error: invalid memory address or nil pointer dereference [signal 0xb code=0x1 addr=0x0 pc=0x8c2600] goroutine 189 [running]: runtime.panic(0x7cd860, 0xce2ae8) /home/minux/build/go.hg/src/pkg/runtime/panic.c:250 +0xb4 runtime.panicstring(0xce2ae8) /home/minux/build/go.hg/src/pkg/runtime/panic.c:482 +0xbd runtime: unexpected return pc for runtime.sigpanic called from 0x8c2600 runtime.sigpanic() /home/minux/build/go.hg/src/pkg/runtime/os_dragonfly.c:185 +0xea created by runtime.gc /home/minux/build/go.hg/src/pkg/runtime/mgc0.c:2188 Disable both scanbyframe and concurrentsweep, same. panic: runtime error: invalid memory address or nil pointer dereference [signal 0xb code=0x1 addr=0x0 pc=0x8c1c40] goroutine 517 [running]: runtime.panic(0x7cd2e0, 0xce2a88) /home/minux/build/go.hg/src/pkg/runtime/panic.c:250 +0xb4 runtime.panicstring(0xce2a88) /home/minux/build/go.hg/src/pkg/runtime/panic.c:482 +0xbd runtime: unexpected return pc for runtime.sigpanic called from 0x8c1c40 runtime.sigpanic() /home/minux/build/go.hg/src/pkg/runtime/os_dragonfly.c:185 +0xea created by runtime.gc /home/minux/build/go.hg/src/pkg/runtime/mgc0.c:2188 Disable all three, still persist. panic: runtime error: invalid memory address or nil pointer dereference [signal 0xb code=0x1 addr=0x0 pc=0x8c1c60] goroutine 556 [running]: runtime.panic(0x7cd2e0, 0xce2a88) /home/minux/build/go.hg/src/pkg/runtime/panic.c:250 +0xb4 runtime.panicstring(0xce2a88) /home/minux/build/go.hg/src/pkg/runtime/panic.c:482 +0xbd runtime: unexpected return pc for runtime.sigpanic called from 0x8c1c60 runtime.sigpanic() /home/minux/build/go.hg/src/pkg/runtime/os_dragonfly.c:185 +0xea created by runtime.gc /home/minux/build/go.hg/src/pkg/runtime/mgc0.c:2188 I'm suspecting more and more on something cgo related, because go_bootstrap could install -a -v std without crash, but go install -a -v std crashes very early. > > yes, unwinder would be useful, we need to know at least the line where > it crashes
Sign in to reply to this message.
LGTM but please fix the "fixes issue / update issue" appropriately to reflect minux's reports about dragonfly.
Sign in to reply to this message.
On 2014/02/24 15:01:53, rsc wrote: > LGTM but please fix the "fixes issue / update issue" appropriately > to reflect minux's reports about dragonfly. what exactly do I need to do? minux says that this fix does not fix dragonfly the runfinqv fix may fix dragonfly
Sign in to reply to this message.
LGTM fine as is.
Sign in to reply to this message.
*** Submitted as https://code.google.com/p/go/source/detail?r=1bbfa797b8ed *** runtime: fix heap memory corruption With concurrent sweeping finc if modified by runfinq and queuefinalizer concurrently. Fixes crashes like this one: http://build.golang.org/log/6ad7b59ef2e93e3c9347eabfb4c4bd66df58fd5a Fixes issue 7324. Update issue 7396 LGTM=rsc R=golang-codereviews, minux.ma, rsc CC=golang-codereviews, khr https://codereview.appspot.com/67980043
Sign in to reply to this message.
|