Go: 插件:net/http.Get fatals with "runtime: unexpected return pc for runtime.goexit called"

创建于 2018-01-27  ·  1评论  ·  资料来源: golang/go

您使用的是什么版本的 Go ( go version )?

go version go1.10rc1 darwin/amd64

这个问题会在最新版本中重现吗?

是的

您使用的是什么操作系统和处理器架构( go env )?

GOARCH="amd64"
GOBIN="/Users/juhwany/go_workspace/bin"
GOCACHE="/Users/juhwany/Library/Caches/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/juhwany/go_workspace"
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/mk/2tyywdsn0jq6l0vl8094tss80000gp/T/go-build778249571=/tmp/go-build -gno-record-gcc-switches -fno-common"

你做了什么?

如果它在插件中调用 http.Get 方法。 它发生像runtime: unexpected return pc for runtime.goexit called from 0x4460ce0这样的致命错误

您可以使用此演示 (https://github.com/nzlov/testplugin) 重现该问题

复制步骤

  1. 构建插件
    go build --buildmode=plugin post.go
  1. 构建主应用程序
    go build main.go

  2. 跑步
    。/主要的

在linux上,它运行良好。 它只发生在 darwin/amd64 上。

你期待看到什么?

运行没有致命错误

你看到了什么?

runtime: unexpected return pc for runtime.goexit called from 0x4460ce0
stack: frame={sp:0xc420050fb8, fp:0xc420050fc0} stack=[0xc420050000,0xc420051000)
000000c420050eb8:  0000000000000000  0000000000000000
000000c420050ec8:  0000000000000000  0000000000000000
000000c420050ed8:  0000000000000000  0000000000000000
000000c420050ee8:  0000000000000000  0000000000000000
000000c420050ef8:  0000000000000000  0000000000000000
000000c420050f08:  0000000000000000  0000000000000000
000000c420050f18:  0000000000000000  0000000000000000
000000c420050f28:  000000c42003efa8  0000000005378b96 <net/http.(*Transport).getConn.func4+118>
000000c420050f38:  0000000004460ce0  00000000043154e0
000000c420050f48:  000000c42009e020  0000000000000000
000000c420050f58:  0000000005429ff7  0000000000000005
000000c420050f68:  000000c4200ba1c0  0000000000000012
000000c420050f78:  0000000000000000  0000000000000000
000000c420050f88:  0000000000000000  0000000000000000
000000c420050f98:  0000000000000000  0000000000000000
000000c420050fa8:  0000000000000000  0000000005192201 <runtime.goexit+1>
000000c420050fb8: <0000000004460ce0 >00000000043154e0
000000c420050fc8:  000000c42009e020  000000c420098f00
000000c420050fd8:  000000c42008a180  0000000000000000
000000c420050fe8:  0000000000000000  0000000000000000
000000c420050ff8:  0000000000000000
fatal error: unknown caller pc

runtime stack:
runtime: unexpected return pc for runtime.morestack called from 0x0
stack: frame={sp:0x7fff5fbff978, fp:0x7fff5fbff980} stack=[0x7fff5fb80520,0x7fff5fbff9a0)
00007fff5fbff878:  0000000004465be0  00007fff5fbff8c8
00007fff5fbff888:  000000000515653c <runtime.(*mcentral).grow+236>  000000c41fff4dff
00007fff5fbff898:  000000c400000000  0000000004591b60
00007fff5fbff8a8:  0000000004591b60  0000000000000011
00007fff5fbff8b8:  000000c420076900  000000c42003eaf8
00007fff5fbff8c8:  000000000536ef75 <net/http.(*Transport).dialConn+85>  000000c420076900
00007fff5fbff8d8:  0000000000000000  0000000000000000
00007fff5fbff8e8:  0000000000000000  0000000000000000
00007fff5fbff8f8:  000000c420076900  000000c420076901
00007fff5fbff908:  0000000004465b01  00007fff5fbff930
00007fff5fbff918:  0000000005179555 <runtime.selparkcommit+133>  0000000004465be0
00007fff5fbff928:  000000c4201241e0  00007fff5fbff960
00007fff5fbff938:  00000000051724eb <runtime.park_m+187>  000000c420000180
00007fff5fbff948:  0000000000000000  000000000458a601
00007fff5fbff958:  0000000004465be0  000000c420065328
00007fff5fbff968:  000000c42003ef28  000000000518f859 <runtime.morestack+137>
00007fff5fbff978: <0000000000000000 >00007fff5fbff9d8
00007fff5fbff988:  00000000040549b3 <runtime.rt0_go+515>  00007fff5fbff9d8
00007fff5fbff998:  00000000040549ba <runtime.rt0_go+522>
runtime.throw(0x542898e, 0x11)
    /usr/local/go/src/runtime/panic.go:619 +0x81
runtime.gentraceback(0xffffffffffffffff, 0xffffffffffffffff, 0x0, 0xc420076900, 0x0, 0x0, 0x7fffffff, 0x5438a88, 0x7fff5fbff6b8, 0x0, ...)
    /usr/local/go/src/runtime/traceback.go:292 +0x1bb2
runtime.copystack(0xc420076900, 0x1000, 0x7fff5fbff801)
    /usr/local/go/src/runtime/stack.go:891 +0x26e
runtime.newstack()
    /usr/local/go/src/runtime/stack.go:1063 +0x310
runtime: unexpected return pc for runtime.morestack called from 0x0
stack: frame={sp:0x7fff5fbff978, fp:0x7fff5fbff980} stack=[0x7fff5fb80520,0x7fff5fbff9a0)
00007fff5fbff878:  0000000004465be0  00007fff5fbff8c8
00007fff5fbff888:  000000000515653c <runtime.(*mcentral).grow+236>  000000c41fff4dff
00007fff5fbff898:  000000c400000000  0000000004591b60
00007fff5fbff8a8:  0000000004591b60  0000000000000011
00007fff5fbff8b8:  000000c420076900  000000c42003eaf8
00007fff5fbff8c8:  000000000536ef75 <net/http.(*Transport).dialConn+85>  000000c420076900
00007fff5fbff8d8:  0000000000000000  0000000000000000
00007fff5fbff8e8:  0000000000000000  0000000000000000
00007fff5fbff8f8:  000000c420076900  000000c420076901
00007fff5fbff908:  0000000004465b01  00007fff5fbff930
00007fff5fbff918:  0000000005179555 <runtime.selparkcommit+133>  0000000004465be0
00007fff5fbff928:  000000c4201241e0  00007fff5fbff960
00007fff5fbff938:  00000000051724eb <runtime.park_m+187>  000000c420000180
00007fff5fbff948:  0000000000000000  000000000458a601
00007fff5fbff958:  0000000004465be0  000000c420065328
00007fff5fbff968:  000000c42003ef28  000000000518f859 <runtime.morestack+137>
00007fff5fbff978: <0000000000000000 >00007fff5fbff9d8
00007fff5fbff988:  00000000040549b3 <runtime.rt0_go+515>  00007fff5fbff9d8
00007fff5fbff998:  00000000040549ba <runtime.rt0_go+522>
runtime.morestack()
    /usr/local/go/src/runtime/asm_amd64.s:480 +0x89

goroutine 19 [copystack]:
runtime.newobject(0x42aba80, 0x0)
    /usr/local/go/src/runtime/malloc.go:838 +0x51 fp=0xc420050af8 sp=0xc420050af0 pc=0x5152411
net/http.(*Transport).dialConn(0x4460ce0, 0x43154e0, 0xc42009e020, 0x0, 0x5429ff7, 0x5, 0xc4200ba1c0, 0x12, 0x0, 0x0, ...)
    /usr/local/go/src/net/http/transport.go:1096 +0x55 fp=0xc420050f38 sp=0xc420050af8 pc=0x536ef75
net/http.(*Transport).getConn.func4(0x4460ce0, 0x43154e0, 0xc42009e020, 0xc420098f00, 0xc42008a180)
    /usr/local/go/src/net/http/transport.go:957 +0x76 fp=0xc420050fb8 sp=0xc420050f38 pc=0x5378b96
runtime: unexpected return pc for runtime.goexit called from 0x4460ce0
stack: frame={sp:0xc420050fb8, fp:0xc420050fc0} stack=[0xc420050000,0xc420051000)
000000c420050eb8:  0000000000000000  0000000000000000
000000c420050ec8:  0000000000000000  0000000000000000
000000c420050ed8:  0000000000000000  0000000000000000
000000c420050ee8:  0000000000000000  0000000000000000
000000c420050ef8:  0000000000000000  0000000000000000
000000c420050f08:  0000000000000000  0000000000000000
000000c420050f18:  0000000000000000  0000000000000000
000000c420050f28:  000000c42003efa8  0000000005378b96 <net/http.(*Transport).getConn.func4+118>
000000c420050f38:  0000000004460ce0  00000000043154e0
000000c420050f48:  000000c42009e020  0000000000000000
000000c420050f58:  0000000005429ff7  0000000000000005
000000c420050f68:  000000c4200ba1c0  0000000000000012
000000c420050f78:  0000000000000000  0000000000000000
000000c420050f88:  0000000000000000  0000000000000000
000000c420050f98:  0000000000000000  0000000000000000
000000c420050fa8:  0000000000000000  0000000005192201 <runtime.goexit+1>
000000c420050fb8: <0000000004460ce0 >00000000043154e0
000000c420050fc8:  000000c42009e020  000000c420098f00
000000c420050fd8:  000000c42008a180  0000000000000000
000000c420050fe8:  0000000000000000  0000000000000000
000000c420050ff8:  0000000000000000
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:2361 +0x1 fp=0xc420050fc0 sp=0xc420050fb8 pc=0x5192201
created by net/http.(*Transport).getConn
    /usr/local/go/src/net/http/transport.go:956 +0x36d

goroutine 1 [select]:
net/http.(*Transport).getConn(0x4460ce0, 0xc420098ed0, 0x0, 0x5429ff7, 0x5, 0xc4200ba1c0, 0x12, 0x0, 0x0, 0x4288e00)
    /usr/local/go/src/net/http/transport.go:962 +0x55e
net/http.(*Transport).RoundTrip(0x4460ce0, 0xc420162000, 0x4460ce0, 0x0, 0x0)
    /usr/local/go/src/net/http/transport.go:409 +0x62e
net/http.send(0xc420162000, 0x545a980, 0x4460ce0, 0x0, 0x0, 0x0, 0xc42014a9d8, 0xf8, 0xc420065c70, 0x1)
    /usr/local/go/src/net/http/client.go:252 +0x185
net/http.(*Client).send(0x55afbc0, 0xc420162000, 0x0, 0x0, 0x0, 0xc42014a9d8, 0x0, 0x1, 0x51523f8)
    /usr/local/go/src/net/http/client.go:176 +0xfa
net/http.(*Client).Do(0x55afbc0, 0xc420162000, 0x5429ff7, 0x16, 0x0)
    /usr/local/go/src/net/http/client.go:615 +0x298
net/http.(*Client).Get(0x55afbc0, 0x5429ff7, 0x16, 0xc420098cf0, 0xc4200bcfc0, 0xc4200bcfc0)
    /usr/local/go/src/net/http/client.go:396 +0x9d
net/http.Get(0x5429ff7, 0x16, 0x1, 0xffffffffffffffff, 0xc420065ef8)
    /usr/local/go/src/net/http/client.go:370 +0x44
plugin/unnamed-71262ac8d344fb916e3c94d62f776ef5713970c9.Init()
    /Users/juhwany/go_workspace/src/testplugin/post.go:9 +0x3a
main.main()
    /Users/juhwany/go_workspace/src/testplugin/main.go:17 +0xb7
FrozenDueToAge OS-Darwin

最有用的评论

@juhwany感谢您报告此问题! 它是您已经发现的https://github.com/golang/go/issues/23133的副本,感谢您发布有关此问题的反馈。 我已经重新命名了这个问题,但我也会继续重新命名另一个问题,并关闭这个问题。

>所有评论

@juhwany感谢您报告此问题! 它是您已经发现的https://github.com/golang/go/issues/23133的副本,感谢您发布有关此问题的反馈。 我已经重新命名了这个问题,但我也会继续重新命名另一个问题,并关闭这个问题。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

gopherbot picture gopherbot  ·  3评论

enoodle picture enoodle  ·  3评论

longzhizhi picture longzhizhi  ·  3评论

jayhuang75 picture jayhuang75  ·  3评论

OneOfOne picture OneOfOne  ·  3评论