Code Monkey home page Code Monkey logo

discovery's People

Contributors

0x5459 avatar anakin avatar bdbai avatar felixhao avatar lintanghui avatar lkzz avatar loverw avatar patricksuo avatar satoukick avatar tonybase avatar warrenwx avatar waterandair avatar yangjuncode avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

discovery's Issues

fatal error: concurrent map iteration and map write

fatal error: concurrent map iteration and map write

goroutine 96598 [running]:
runtime.throw(0xae2e82, 0x26)
/usr/local/go/src/runtime/panic.go:1116 +0x72 fp=0xc00044ec78 sp=0xc00044ec48 pc=0x434972
runtime.mapiternext(0xc00044ed60)
/usr/local/go/src/runtime/map.go:853 +0x552 fp=0xc00044ecf8 sp=0xc00044ec78 pc=0x40f822
runtime.mapiterinit(0xa22300, 0xc000297560, 0xc00044ed60)
/usr/local/go/src/runtime/map.go:843 +0x1c4 fp=0xc00044ed18 sp=0xc00044ecf8 pc=0x40f1d4
github.com/bilibili/discovery/model.copyInstance(0xc0001348f0, 0xc00000e098)
/data/discovery/model/instance.go:103 +0x192 fp=0xc00044edd0 sp=0xc00044ed18 pc=0x991862
github.com/bilibili/discovery/model.(*Apps).InstanceInfo(0xc000542390, 0x0, 0x0, 0x0, 0xc000000001, 0xc000186860, 0x0, 0x0)
/data/discovery/model/instance.go:195 +0x255 fp=0xc00044eef8 sp=0xc00044edd0 pc=0x992135
github.com/bilibili/discovery/registry.(*Registry).Fetch(0xc000195130, 0x0, 0x0, 0xc0002301f5, 0x3, 0xc0002301e6, 0xa, 0x0, 0x1, 0xc000134188, ...)
/data/discovery/registry/registry.go:176 +0x1b0 fp=0xc00044efb0 sp=0xc00044eef8 pc=0x9997b0
github.com/bilibili/discovery/registry.(*Registry).broadcast(0xc000195130, 0xc0002301f5, 0x3, 0xc0002301e6, 0xa)
/data/discovery/registry/registry.go:257 +0x5c7 fp=0xc00044f1a0 sp=0xc00044efb0 pc=0x99ad57
github.com/bilibili/discovery/registry.(*Registry).Set(0xc000195130, 0xc000274960, 0xd60115ec06a39)
/data/discovery/registry/registry.go:288 +0xde fp=0xc00044f218 sp=0xc00044f1a0 pc=0x99b03e
github.com/bilibili/discovery/discovery.(*Discovery).Set(0xc0002e1f80, 0xbb50e0, 0xc0002745a0, 0xc000274960, 0x0, 0x7c245c673aca)
/data/discovery/discovery/register.go:96 +0x40 fp=0xc00044f280 sp=0xc00044f218 pc=0x99dd70
github.com/bilibili/discovery/http.set(0xc0002745a0)

brpc c++ SDK 接口解析与 API 文档不一致

poll请求中,超时错误会重复打印

func poll(c *bm.Context) {
...
case <-time.After(_pollWaitSecond):
c.JSON(nil, ecode.NotModified) // 此处无需打印错误
case <-c.Done():
}
c.JSON(nil, ecode.NotModified)
dis.DelConns(arg)
}

polls中无此问题,第一个case会直接穿透
我可以提交这些问题的修复吗?

请教关于-alsologtostderr 的具体作用。

run

./discovery -conf discovery-example.toml -alsologtostderr

的时候报错:
flag provided but not defined: -alsologtostderr
去掉-alsologtostderr可以执行,想请教这个具体的作用,谢谢。

关于docker 运行discovery 存在问题

使用配置
[httpServer]
addr = "127.0.0.1:7171"
启动docker,服务只能被本地使用,非127.0.0.1 ip 访问被拒绝。
原因是 discovery 启动gin 的时候使用 httpServer.addr 监听. 将会拒绝所有非127.0.0.1 的请求,
容器也无法使用宿主ip 启动gin. 建议添加单独配置指定 gin 端口。
我本地添加新的配置项,测试通过
image

使用discovery出错

kratos v0.2.1
discovery v1.1.0
调用 resolver.Register(discovery.Builder()) 后出错

image

block
image

v1.1.2下载的可执行文件启动失败:cgroup cpu init failed!err:=not implemented yet

下载的可执行文件启动失败

👉  discovery git:(master) ✗ ./discovery_1.1.2_Darwin_x86_64 -conf=discovery-examp.toml                            
panic: cgroup cpu init failed!err:=not implemented yet

goroutine 1 [running]:
github.com/bilibili/kratos/pkg/stat/sys/cpu.init.0()
        /Users/felix/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/stat/sys/cpu/cpu.go:33 +0x189
👉  ~ go version
go version go1.13 darwin/amd64


👉  ~ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN="/Users/hao/Documents/go/bin"
GOCACHE="/Users/hao/Library/Caches/go-build"
GOENV="/Users/hao/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GONOPROXY="git.xxwolo.com"
GONOSUMDB="git.xxwolo.com"
GOOS="darwin"
GOPATH="/Users/hao/Documents/go"
GOPRIVATE="git.xxwolo.com"
GOPROXY="https://goproxy.cn"
GOROOT="/usr/local/Cellar/go/1.13/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.13/libexec/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD=""
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/59/tmvyr0md5tj_5htf68fs85dm0000gn/T/go-build381810701=/tmp/go-build -gno-record-gcc-switches -fno-common"

Discovery Polls API 可用性问题

Discovery 批量 polls 的时候,可以指定多个 app 。
如果其中一个监听的 app 完全下线,会导致整个 polls 一直返回 404 。

3节点下,部分节点中应用addrs地址错误

部署情况:
单节点多实例不是,192.168.115.242:7171,192.168.115.242:7172,192.168.115.242:7173
注册情况:
ins := &naming.Instance{
Zone: "001",
Env: "prod",
AppID: "app01",
Version: "b",
Addrs: []string{
"http://192.168.115.242:8001",
"grpc://192.168.115.242:9001",
},
LastTs: time.Now().Unix(),
Metadata: map[string]string{
"color":"qa",
"weight":"10",
},
}
问题:
image
部分节点将 "addrs": ["http://192.168.115.242:8001","grpc://192.168.115.242:9001"]变成了 "addrs": ["http://192.168.115.242:8001,grpc://192.168.115.242:9001"]

缺少获取所有的appId的api

没有这个接口无法提供go-micro注册中心的插件实现

type Registry interface {
	Init(...Option) error
	Options() Options
	Register(*Service, ...RegisterOption) error
	Deregister(*Service) error
	GetService(string) ([]*Service, error)
	ListServices() ([]*Service, error)
	Watch(...WatchOption) (Watcher, error)
	String() string
}

技术支持

非常感谢 B 站同学在服务发现上耕耘,本人 dubbo 社区的小破开发,目前正在对服务发现这块做调研,请问目前该项目有没有更为直接技术支持的沟通渠道,除 github 之外,讨论更为细节方面的问题。

PS: 本人的微信 mercyblitz,欢迎交流和讨论!

为什么返回请求数据需要做深拷贝呢?代码中存在多余的new

为什么每次返回请求数据都要new分配内存呢?直接返回新建/查询到的数据不行吗?如:
func (a *App) NewInstance(ni *Instance, latestTime int64) (i *Instance, ok bool) {
i = new(Instance)
a.lock.Lock()
...
*i = *ni
...
}
func (a *App) Cancel(hostname string, latestTime int64) (i *Instance, l int, ok bool) {
i = new(Instance)
oi, ok := a.instances[hostname]
...
*i = *oi
}
且多处返回空数据也会使用new,如此会产生大量gc吧。如:
func (a *App) Renew(hostname string) (i *Instance, ok bool) {
i = new(Instance)
a.lock.Lock()
defer a.lock.Unlock()
oi, ok := a.instances[hostname]
if !ok {
return // i = new(Instance) 应放在此if之后吧?
}
oi.RenewTimestamp = time.Now().UnixNano()
i = copyInstance(oi)
return
}

example_test.go例子请教

example_test.go中,getInstances的Fetch不是循环一直调用的么,我看日志打印差不多也是30秒才会触发一次

fatal error: concurrent map read and map write

跑了一段时间发现discovery panic了

fatal error: concurrent map read and map write

goroutine 88811 [running]:
runtime.throw(0xaaa495, 0x21)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/panic.go:617 +0x72 fp=0xc00021a380 sp=0xc00021a350 pc=0x42d2e2
runtime.mapaccess2(0x9e70e0, 0xc0002d2ed0, 0xc00029e140, 0xc00029e140, 0xa)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/map.go:472 +0x272 fp=0xc00021a3c8 sp=0xc00021a380 pc=0x40d7d2
reflect.mapaccess(0x9e70e0, 0xc0002d2ed0, 0xc00029e140, 0xaa38f2)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/map.go:1321 +0x3f fp=0xc00021a400 sp=0xc00021a3c8 pc=0x40fa8f
reflect.Value.MapIndex(0x9e70e0, 0xc0004fea18, 0x195, 0x9c1220, 0xc00029e140, 0x98, 0x9c1220, 0xc00029e180, 0x98)
	/usr/local/Cellar/go/1.12/libexec/src/reflect/value.go:1112 +0x10a fp=0xc00021a460 sp=0xc00021a400 pc=0x488b0a
encoding/json.mapEncoder.encode(0xabfd50, 0xc000119880, 0x9e70e0, 0xc0004fea18, 0x195, 0x100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:702 +0x303 fp=0xc00021a5a8 sp=0xc00021a460 pc=0x519ef3
encoding/json.mapEncoder.encode-fm(0xc000119880, 0x9e70e0, 0xc0004fea18, 0x195, 0x100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:678 +0x64 fp=0xc00021a5e8 sp=0xc00021a5a8 pc=0x523684
encoding/json.structEncoder.encode(0xc0000c4900, 0xe, 0x10, 0xc000119880, 0xa78aa0, 0xc0004fe9a0, 0x199, 0x200100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:660 +0x2fb fp=0xc00021a688 sp=0xc00021a5e8 pc=0x5199cb
encoding/json.structEncoder.encode-fm(0xc000119880, 0xa78aa0, 0xc0004fe9a0, 0x199, 0xc0004f0100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:631 +0x76 fp=0xc00021a6d8 sp=0xc00021a688 pc=0x523606
encoding/json.ptrEncoder.encode(0xc000284300, 0xc000119880, 0x9ea7e0, 0xc00006f5d8, 0x196, 0x100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:806 +0xb2 fp=0xc00021a720 sp=0xc00021a6d8 pc=0x51ae42
encoding/json.ptrEncoder.encode-fm(0xc000119880, 0x9ea7e0, 0xc00006f5d8, 0x196, 0x9e0100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:801 +0x64 fp=0xc00021a760 sp=0xc00021a720 pc=0x523804
encoding/json.arrayEncoder.encode(0xc00006ff90, 0xc000119880, 0x9b2cc0, 0xc0003a2080, 0x97, 0xc000210100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:787 +0xd6 fp=0xc00021a7b8 sp=0xc00021a760 pc=0x51ac66
encoding/json.arrayEncoder.encode-fm(0xc000119880, 0x9b2cc0, 0xc0003a2080, 0x97, 0x480100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:780 +0x64 fp=0xc00021a7f8 sp=0xc00021a7b8 pc=0x523784
encoding/json.sliceEncoder.encode(0xc00006ffb0, 0xc000119880, 0x9b2cc0, 0xc0003a2080, 0x97, 0x100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:761 +0x90 fp=0xc00021a840 sp=0xc00021a7f8 pc=0x51a8d0
encoding/json.sliceEncoder.encode-fm(0xc000119880, 0x9b2cc0, 0xc0003a2080, 0x97, 0xc000290100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:756 +0x64 fp=0xc00021a880 sp=0xc00021a840 pc=0x523704
encoding/json.mapEncoder.encode(0xc00006ffc0, 0xc000119880, 0x9e6180, 0xc000376480, 0x195, 0x100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:702 +0x352 fp=0xc00021a9c8 sp=0xc00021a880 pc=0x519f42
encoding/json.mapEncoder.encode-fm(0xc000119880, 0x9e6180, 0xc000376480, 0x195, 0x100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:678 +0x64 fp=0xc00021aa08 sp=0xc00021a9c8 pc=0x523684
encoding/json.structEncoder.encode(0xc0002e2d80, 0x3, 0x4, 0xc000119880, 0xa2dcc0, 0xc000376480, 0x199, 0x400100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:660 +0x2fb fp=0xc00021aaa8 sp=0xc00021aa08 pc=0x5199cb
encoding/json.structEncoder.encode-fm(0xc000119880, 0xa2dcc0, 0xc000376480, 0x199, 0xc000370100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:631 +0x76 fp=0xc00021aaf8 sp=0xc00021aaa8 pc=0x523606
encoding/json.ptrEncoder.encode(0xc00000d8c0, 0xc000119880, 0x9a4b80, 0xc000376480, 0x16, 0x100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:806 +0xb2 fp=0xc00021ab40 sp=0xc00021aaf8 pc=0x51ae42
encoding/json.ptrEncoder.encode-fm(0xc000119880, 0x9a4b80, 0xc000376480, 0x16, 0xc000290100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:801 +0x64 fp=0xc00021ab80 sp=0xc00021ab40 pc=0x523804
encoding/json.mapEncoder.encode(0xc00006f3e0, 0xc000119880, 0x9e5a60, 0xc0003764b0, 0x15, 0x9e0100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:702 +0x352 fp=0xc00021acc8 sp=0xc00021ab80 pc=0x519f42
encoding/json.mapEncoder.encode-fm(0xc000119880, 0x9e5a60, 0xc0003764b0, 0x15, 0xc000370100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:678 +0x64 fp=0xc00021ad08 sp=0xc00021acc8 pc=0x523684
encoding/json.(*encodeState).reflectValue(0xc000119880, 0x9e5a60, 0xc0003764b0, 0x15, 0xc000370100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:334 +0x82 fp=0xc00021ad40 sp=0xc00021ad08 pc=0x5171b2
encoding/json.interfaceEncoder(0xc000119880, 0x9e3840, 0xc0003ea080, 0x94, 0x100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:620 +0xad fp=0xc00021ad88 sp=0xc00021ad40 pc=0x5194cd
encoding/json.structEncoder.encode(0xc00011f440, 0x4, 0x4, 0xc000119880, 0xa532c0, 0xc0003ea060, 0x99, 0xa50100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:660 +0x2fb fp=0xc00021ae28 sp=0xc00021ad88 pc=0x5199cb
encoding/json.structEncoder.encode-fm(0xc000119880, 0xa532c0, 0xc0003ea060, 0x99, 0xc000210100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:631 +0x76 fp=0xc00021ae78 sp=0xc00021ae28 pc=0x523606
encoding/json.(*encodeState).reflectValue(0xc000119880, 0xa532c0, 0xc0003ea060, 0x99, 0xa10100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:334 +0x82 fp=0xc00021aeb0 sp=0xc00021ae78 pc=0x5171b2
encoding/json.(*encodeState).marshal(0xc000119880, 0xa532c0, 0xc0003ea060, 0x100, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:306 +0xee fp=0xc00021aef8 sp=0xc00021aeb0 pc=0x516c5e
encoding/json.Marshal(0xa532c0, 0xc0003ea060, 0xfb86d0, 0x1, 0x1, 0xc00021afd0, 0x4095bf)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:160 +0x52 fp=0xc00021af70 sp=0xc00021aef8 pc=0x516442
github.com/bilibili/kratos/pkg/net/http/blademaster/render.writeJSON(0xb6f620, 0xc0004289a0, 0xa532c0, 0xc0003ea060, 0x9072a9, 0x411fdf)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/render/json.go:23 +0x7b fp=0xc00021afe0 sp=0xc00021af70 pc=0x90698b
github.com/bilibili/kratos/pkg/net/http/blademaster/render.JSON.Render(...)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/render/json.go:39
github.com/bilibili/kratos/pkg/net/http/blademaster/render.(*JSON).Render(0xc0003ea000, 0xb6f620, 0xc0004289a0, 0x0, 0xfe8380)
	<autogenerated>:1 +0xd2 fp=0xc00021b080 sp=0xc00021afe0 pc=0x908112
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Render(0xc00016c280, 0xc8, 0xb6a6a0, 0xc0003ea000)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:155 +0xf4 fp=0xc00021b0e8 sp=0xc00021b080 pc=0x94c6e4
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).JSON(0xc00016c280, 0x9e5a60, 0xc0003764b0, 0x0, 0x0)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:180 +0x149 fp=0xc00021b160 sp=0xc00021b0e8 pc=0x94ca89
github.com/bilibili/discovery/http.polls(0xc00016c280)
	/work/go/src/github.com/Bilibili/discovery/http/discovery.go:129 +0x429 fp=0xc00021b290 sp=0xc00021b160 pc=0x966779
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc00016c280)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47 fp=0xc00021b2d0 sp=0xc00021b290 pc=0x94c297
github.com/bilibili/kratos/pkg/net/http/blademaster.Logger.func1(0xc00016c280)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/logger.go:27 +0x127 fp=0xc00021b950 sp=0xc00021b2d0 pc=0x9533f7
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00b0, 0xc00016c280)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30 fp=0xc00021b968 sp=0xc00021b950 pc=0x94f750
github.com/bilibili/kratos/pkg/net/http/blademaster.Handler.ServeHTTP-fm(0xc00016c280)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:64 +0x39 fp=0xc00021b988 sp=0xc00021b968 pc=0x956869
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc00016c280)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47 fp=0xc00021b9c8 sp=0xc00021b988 pc=0x94c297
github.com/bilibili/kratos/pkg/net/http/blademaster.Trace.func1(0xc00016c280)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/trace.go:38 +0x60b fp=0xc00021ba78 sp=0xc00021b9c8 pc=0x955a0b
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00c8, 0xc00016c280)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30 fp=0xc00021ba90 sp=0xc00021ba78 pc=0x94f750
github.com/bilibili/kratos/pkg/net/http/blademaster.Handler.ServeHTTP-fm(0xc00016c280)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:64 +0x39 fp=0xc00021bab0 sp=0xc00021ba90 pc=0x956869
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc00016c280)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47 fp=0xc00021baf0 sp=0xc00021bab0 pc=0x94c297
github.com/bilibili/kratos/pkg/net/http/blademaster.Recovery.func1(0xc00016c280)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/recovery.go:30 +0x51 fp=0xc00021bb18 sp=0xc00021baf0 pc=0x954f71
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00c0, 0xc00016c280)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30 fp=0xc00021bb30 sp=0xc00021bb18 pc=0x94f750
github.com/bilibili/kratos/pkg/net/http/blademaster.Handler.ServeHTTP-fm(0xc00016c280)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:64 +0x39 fp=0xc00021bb50 sp=0xc00021bb30 pc=0x956869
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc00016c280)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47 fp=0xc00021bb90 sp=0xc00021bb50 pc=0x94c297
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).handleContext(0xc00007bee0, 0xc00016c280)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:277 +0x427 fp=0xc00021bc28 sp=0xc00021bb90 pc=0x950967
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).addRoute.func1(0xb6f620, 0xc0004289a0, 0xc000170e00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:215 +0x14d fp=0xc00021bc68 sp=0xc00021bc28 pc=0x9552ad
net/http.HandlerFunc.ServeHTTP(0xc000093540, 0xb6f620, 0xc0004289a0, 0xc000170e00)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1995 +0x44 fp=0xc00021bc90 sp=0xc00021bc68 pc=0x750804
net/http.(*ServeMux).ServeHTTP(0xc000093240, 0xb6f620, 0xc0004289a0, 0xc000170e00)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2375 +0x1d6 fp=0xc00021bcf0 sp=0xc00021bc90 pc=0x7526d6
net/http.serverHandler.ServeHTTP(0xc0002c80d0, 0xb6f620, 0xc0004289a0, 0xc000170e00)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2774 +0xab fp=0xc00021bd20 sp=0xc00021bcf0 pc=0x753abb
net/http.(*conn).serve(0xc00026a6e0, 0xb71120, 0xc000568540)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1878 +0x84c fp=0xc00021bfc8 sp=0xc00021bd20 pc=0x74f7cc
runtime.goexit()
	/usr/local/Cellar/go/1.12/libexec/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc00021bfd0 sp=0xc00021bfc8 pc=0x45bda1
created by net/http.(*Server).Serve
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2884 +0x2f4

goroutine 1 [chan receive, 15614 minutes]:
main.main()
	/work/go/src/github.com/Bilibili/discovery/cmd/discovery/main.go:29 +0x1cc

goroutine 18 [syscall, 15614 minutes]:
os/signal.signal_recv(0xb6ace0)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/sigqueue.go:139 +0x9c
os/signal.loop()
	/usr/local/Cellar/go/1.12/libexec/src/os/signal/signal_unix.go:23 +0x22
created by os/signal.init.0
	/usr/local/Cellar/go/1.12/libexec/src/os/signal/signal_unix.go:29 +0x41

goroutine 23 [chan receive]:
github.com/bilibili/kratos/pkg/stat/sys/cpu.init.0.func1()
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/stat/sys/cpu/cpu.go:59 +0x73
created by github.com/bilibili/kratos/pkg/stat/sys/cpu.init.0
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/stat/sys/cpu/cpu.go:55 +0x32a

goroutine 24 [chan receive]:
github.com/bilibili/kratos/pkg/ratelimit/bbr.cpuproc()
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/ratelimit/bbr/bbr.go:43 +0xa9
created by github.com/bilibili/kratos/pkg/ratelimit/bbr.init.0
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/ratelimit/bbr/bbr.go:31 +0x35

goroutine 26 [select]:
github.com/bilibili/discovery/registry.(*Registry).proc(0xc0000985f0)
	/work/go/src/github.com/Bilibili/discovery/registry/registry.go:304 +0xde
created by github.com/bilibili/discovery/registry.NewRegistry
	/work/go/src/github.com/Bilibili/discovery/registry/registry.go:54 +0x125

goroutine 40 [IO wait, 15885 minutes]:
internal/poll.runtime_pollWait(0x7f6cac4f4e38, 0x72, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc0000f8f98, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0000f8f80, 0xc0003fc000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc0000f8f80, 0xc0003fc000, 0x1000, 0x1000, 0xc00002e000, 0xc0000b3b08, 0x7498ea)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00008ebf0, 0xc0003fc000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/net.go:177 +0x69
net/http.(*connReader).Read(0xc0003ea990, 0xc0003fc000, 0x1000, 0x1000, 0x0, 0x0, 0x72)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:787 +0x107
bufio.(*Reader).fill(0xc0003def00)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc0003def00, 0x4, 0x0, 0x0, 0x0, 0x0, 0x4ba64a)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:138 +0x4f
net/http.(*conn).readRequest(0xc000095180, 0xb71120, 0xc000093740, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:964 +0xb03
net/http.(*conn).serve(0xc000095180, 0xb71120, 0xc000093740)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1819 +0x6a8
created by net/http.(*Server).Serve
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2884 +0x2f4

goroutine 54 [IO wait, 15885 minutes]:
internal/poll.runtime_pollWait(0x7f6cac4f4f08, 0x72, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000336398, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000336380, 0xc000303000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000336380, 0xc000303000, 0x1000, 0x1000, 0xc0001a9740, 0xc0002ad938, 0x7498ea)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00000e448, 0xc000303000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/net.go:177 +0x69
net/http.(*connReader).Read(0xc0003a6180, 0xc000303000, 0x1000, 0x1000, 0x0, 0xc0002adc00, 0x74d2fb)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:787 +0x107
bufio.(*Reader).fill(0xc000063da0)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).ReadSlice(0xc000063da0, 0x43560a, 0xc00028e480, 0xc0002adb00, 0x40b9b9, 0xc000171700, 0x100)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:356 +0x3d
bufio.(*Reader).ReadLine(0xc000063da0, 0xc0002adb08, 0xc00009d880, 0x7f6cae761008, 0x0, 0x4ba002, 0xa6c640)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:385 +0x34
net/textproto.(*Reader).readLineSlice(0xc0003a61b0, 0xc000171700, 0xc000336380, 0x0, 0x0, 0x42c901)
	/usr/local/Cellar/go/1.12/libexec/src/net/textproto/reader.go:55 +0x6f
net/textproto.(*Reader).ReadLine(...)
	/usr/local/Cellar/go/1.12/libexec/src/net/textproto/reader.go:36
net/http.readRequest(0xc000063da0, 0x0, 0xc000171700, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/request.go:968 +0x8d
net/http.(*conn).readRequest(0xc00026a320, 0xb71120, 0xc0002b2940, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:967 +0x163
net/http.(*conn).serve(0xc00026a320, 0xb71120, 0xc0002b2940)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1819 +0x6a8
created by net/http.(*Server).Serve
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2884 +0x2f4

goroutine 34 [select]:
github.com/bilibili/discovery/discovery.(*Discovery).regSelf.func1(0xc00009ea50, 0xc000276ba0, 0xb71120, 0xc000092f80, 0x15c573c4fdf42382)
	/work/go/src/github.com/Bilibili/discovery/discovery/syncup.go:82 +0x10f
created by github.com/bilibili/discovery/discovery.(*Discovery).regSelf
	/work/go/src/github.com/Bilibili/discovery/discovery/syncup.go:78 +0x305

goroutine 42 [select]:
net/http.(*persistConn).writeLoop(0xc000433200)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/transport.go:1958 +0x113
created by net/http.(*Transport).dialConn
	/usr/local/Cellar/go/1.12/libexec/src/net/http/transport.go:1358 +0xb00

goroutine 35 [chan receive, 15885 minutes]:
github.com/bilibili/discovery/discovery.(*Discovery).nodesproc(0xc000276ba0)
	/work/go/src/github.com/Bilibili/discovery/discovery/syncup.go:127 +0x271
created by github.com/bilibili/discovery/discovery.New
	/work/go/src/github.com/Bilibili/discovery/discovery/discovery.go:33 +0x116

goroutine 213 [IO wait]:
internal/poll.runtime_pollWait(0x7f6cac4f4208, 0x72, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00016c498, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00016c480, 0xc0003e1000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00016c480, 0xc0003e1000, 0x1000, 0x1000, 0x1, 0x42f0dc, 0xc000089b88)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00000e0e8, 0xc0003e1000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/net.go:177 +0x69
net/http.(*persistConn).Read(0xc00031c360, 0xc0003e1000, 0x1000, 0x1000, 0xc000089c88, 0x404de5, 0xc0001c0b40)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/transport.go:1524 +0x7b
bufio.(*Reader).fill(0xc00037c600)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc00037c600, 0x1, 0x0, 0x0, 0x1, 0xc0001c1c00, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:138 +0x4f
net/http.(*persistConn).readLoop(0xc00031c360)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/transport.go:1677 +0x1a3
created by net/http.(*Transport).dialConn
	/usr/local/Cellar/go/1.12/libexec/src/net/http/transport.go:1357 +0xadb

goroutine 37 [IO wait, 15885 minutes]:
internal/poll.runtime_pollWait(0x7f6cac4f4c98, 0x72, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00016df98, 0x72, 0x0, 0x0, 0xa998c4)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc00016df80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:384 +0x1ba
net.(*netFD).accept(0xc00016df80, 0xa4c640, 0x50, 0xc000121220)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:238 +0x42
net.(*TCPListener).accept(0xc00000e250, 0xc000045c00, 0x7f6cae761008, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).AcceptTCP(0xc00000e250, 0x40c248, 0x30, 0xa4c640)
	/usr/local/Cellar/go/1.12/libexec/src/net/tcpsock.go:247 +0x48
net/http.tcpKeepAliveListener.Accept(0xc00000e250, 0xa4c640, 0xc00023bc50, 0x9ec580, 0xfb8930)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:3264 +0x2f
net/http.(*Server).Serve(0xc000114d00, 0xb6fc20, 0xc00000e250, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2859 +0x22d
net/http.(*Server).ListenAndServe(0xc000114d00, 0xc000114d00, 0xc00016df00)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2797 +0xe4
net/http.ListenAndServe(...)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:3037
github.com/bilibili/kratos/pkg/net/http/blademaster.startPerf.func1.1(0xc000093300)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/perf.go:41 +0x1a5
created by github.com/bilibili/kratos/pkg/net/http/blademaster.startPerf.func1
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/perf.go:36 +0x149

goroutine 38 [IO wait, 737 minutes]:
internal/poll.runtime_pollWait(0x7f6cac4f4d68, 0x72, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc0000f8d18, 0x72, 0x0, 0x0, 0xa998c4)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Accept(0xc0000f8d00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:384 +0x1ba
net.(*netFD).accept(0xc0000f8d00, 0xac1ff8, 0xc0002f7d90, 0xa47c5efc)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:238 +0x42
net.(*TCPListener).accept(0xc00008e2e0, 0x5d8fa9e1, 0xc0002f7db8, 0x4b19a6)
	/usr/local/Cellar/go/1.12/libexec/src/net/tcpsock_posix.go:139 +0x32
net.(*TCPListener).Accept(0xc00008e2e0, 0xc0002f7e08, 0x18, 0xc0002ca180, 0x753f94)
	/usr/local/Cellar/go/1.12/libexec/src/net/tcpsock.go:260 +0x48
net/http.(*Server).Serve(0xc0002c80d0, 0xb6f360, 0xc00008e2e0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2859 +0x22d
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).RunServer(0xc00007bee0, 0xc0002c80d0, 0xb6f360, 0xc00008e2e0, 0x0, 0x0)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:386 +0x97
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).Start.func1(0xc00007bee0, 0xc0002c80d0, 0xb6f360, 0xc00008e2e0)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:104 +0x5c
created by github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).Start
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:103 +0x26b

goroutine 41 [IO wait]:
internal/poll.runtime_pollWait(0x7f6cac4f4bc8, 0x72, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000336c98, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000336c80, 0xc000461000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000336c80, 0xc000461000, 0x1000, 0x1000, 0x1, 0x42f0dc, 0xc000084b88)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00008ee18, 0xc000461000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/net.go:177 +0x69
net/http.(*persistConn).Read(0xc000433200, 0xc000461000, 0x1000, 0x1000, 0xc000084c88, 0x404de5, 0xc0001c0e40)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/transport.go:1524 +0x7b
bufio.(*Reader).fill(0xc000454900)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc000454900, 0x1, 0x0, 0x0, 0x1, 0xc0004dea00, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:138 +0x4f
net/http.(*persistConn).readLoop(0xc000433200)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/transport.go:1677 +0x1a3
created by net/http.(*Transport).dialConn
	/usr/local/Cellar/go/1.12/libexec/src/net/http/transport.go:1357 +0xadb

goroutine 133 [IO wait, 15869 minutes]:
internal/poll.runtime_pollWait(0x7f6cac4f4958, 0x72, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00016c918, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00016c900, 0xc000212000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00016c900, 0xc000212000, 0x1000, 0x1000, 0xc000284260, 0xc00047f938, 0x7498ea)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00008f590, 0xc000212000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/net.go:177 +0x69
net/http.(*connReader).Read(0xc00038b740, 0xc000212000, 0x1000, 0x1000, 0x0, 0xc00047fc00, 0x74d2fb)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:787 +0x107
bufio.(*Reader).fill(0xc00054da40)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).ReadSlice(0xc00054da40, 0x43560a, 0xc00028ed80, 0xc00047fb00, 0x40b9b9, 0xc0000fb800, 0x100)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:356 +0x3d
bufio.(*Reader).ReadLine(0xc00054da40, 0xc00047fb08, 0xc00009dc00, 0x7f6cae7616d0, 0x0, 0x4ba002, 0xa6c640)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:385 +0x34
net/textproto.(*Reader).readLineSlice(0xc00038b770, 0xc0000fb800, 0xc00016c900, 0x0, 0x0, 0x42c901)
	/usr/local/Cellar/go/1.12/libexec/src/net/textproto/reader.go:55 +0x6f
net/textproto.(*Reader).ReadLine(...)
	/usr/local/Cellar/go/1.12/libexec/src/net/textproto/reader.go:36
net/http.readRequest(0xc00054da40, 0x0, 0xc0000fb800, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/request.go:968 +0x8d
net/http.(*conn).readRequest(0xc00026a500, 0xb71120, 0xc0002b3300, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:967 +0x163
net/http.(*conn).serve(0xc00026a500, 0xb71120, 0xc0002b3300)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1819 +0x6a8
created by net/http.(*Server).Serve
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2884 +0x2f4

goroutine 44 [IO wait]:
internal/poll.runtime_pollWait(0x7f6cac4f4af8, 0x72, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00016c018, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00016c000, 0xc0002c5000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00016c000, 0xc0002c5000, 0x1000, 0x1000, 0xc00002e000, 0xc0002a9b08, 0x7498ea)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00008e688, 0xc0002c5000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/net.go:177 +0x69
net/http.(*connReader).Read(0xc0003eb920, 0xc0002c5000, 0x1000, 0x1000, 0x0, 0x0, 0x72)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:787 +0x107
bufio.(*Reader).fill(0xc0003def60)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc0003def60, 0x4, 0x0, 0x0, 0x0, 0x0, 0x4ba64a)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:138 +0x4f
net/http.(*conn).readRequest(0xc000132000, 0xb71120, 0xc00005e0c0, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:964 +0xb03
net/http.(*conn).serve(0xc000132000, 0xb71120, 0xc00005e0c0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1819 +0x6a8
created by net/http.(*Server).Serve
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2884 +0x2f4

goroutine 214 [select]:
net/http.(*persistConn).writeLoop(0xc00031c360)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/transport.go:1958 +0x113
created by net/http.(*Transport).dialConn
	/usr/local/Cellar/go/1.12/libexec/src/net/http/transport.go:1358 +0xb00

goroutine 148 [IO wait, 15869 minutes]:
internal/poll.runtime_pollWait(0x7f6cac4f4a28, 0x72, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000336b18, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000336b00, 0xc000532000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000336b00, 0xc000532000, 0x1000, 0x1000, 0xc000284260, 0xc00053b938, 0x7498ea)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00000eba0, 0xc000532000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/net.go:177 +0x69
net/http.(*connReader).Read(0xc0003a8c90, 0xc000532000, 0x1000, 0x1000, 0x0, 0xc00053bc00, 0x74d2fb)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:787 +0x107
bufio.(*Reader).fill(0xc000455800)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).ReadSlice(0xc000455800, 0x43560a, 0xc00028e600, 0xc00053bb00, 0x40b9b9, 0xc0000fba00, 0x100)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:356 +0x3d
bufio.(*Reader).ReadLine(0xc000455800, 0xc00053bb08, 0xc000044700, 0x7f6cae7616d0, 0x0, 0x4ba002, 0xa6c640)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:385 +0x34
net/textproto.(*Reader).readLineSlice(0xc0003382a0, 0xc0000fba00, 0xc000336b00, 0x0, 0x0, 0x42c901)
	/usr/local/Cellar/go/1.12/libexec/src/net/textproto/reader.go:55 +0x6f
net/textproto.(*Reader).ReadLine(...)
	/usr/local/Cellar/go/1.12/libexec/src/net/textproto/reader.go:36
net/http.readRequest(0xc000455800, 0x0, 0xc0000fba00, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/request.go:968 +0x8d
net/http.(*conn).readRequest(0xc000132460, 0xb71120, 0xc00005ecc0, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:967 +0x163
net/http.(*conn).serve(0xc000132460, 0xb71120, 0xc00005ecc0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1819 +0x6a8
created by net/http.(*Server).Serve
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2884 +0x2f4

goroutine 150 [select]:
github.com/bilibili/discovery/http.polls(0xc0004eef00)
	/work/go/src/github.com/Bilibili/discovery/http/discovery.go:127 +0x366
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0004eef00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Logger.func1(0xc0004eef00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/logger.go:27 +0x127
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00b0, 0xc0004eef00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0004eef00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Trace.func1(0xc0004eef00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/trace.go:38 +0x60b
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00c8, 0xc0004eef00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0004eef00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Recovery.func1(0xc0004eef00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/recovery.go:30 +0x51
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00c0, 0xc0004eef00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0004eef00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).handleContext(0xc00007bee0, 0xc0004eef00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:277 +0x427
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).addRoute.func1(0xb6f620, 0xc000428460, 0xc0000fb600)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:215 +0x14d
net/http.HandlerFunc.ServeHTTP(0xc000093540, 0xb6f620, 0xc000428460, 0xc0000fb600)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1995 +0x44
net/http.(*ServeMux).ServeHTTP(0xc000093240, 0xb6f620, 0xc000428460, 0xc0000fb600)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2375 +0x1d6
net/http.serverHandler.ServeHTTP(0xc0002c80d0, 0xb6f620, 0xc000428460, 0xc0000fb600)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2774 +0xab
net/http.(*conn).serve(0xc0001320a0, 0xb71120, 0xc00005e180)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1878 +0x84c
created by net/http.(*Server).Serve
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2884 +0x2f4

goroutine 215 [runnable]:
encoding/json.structEncoder.encode(0xc00011f440, 0x4, 0x4, 0xc00015a0e0, 0xa532c0, 0xc000376960, 0x99, 0xa50100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:631 +0x444
encoding/json.(*encodeState).reflectValue(0xc00015a0e0, 0xa532c0, 0xc000376960, 0x99, 0xa10100)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:334 +0x82
encoding/json.(*encodeState).marshal(0xc00015a0e0, 0xa532c0, 0xc000376960, 0x100, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:306 +0xee
encoding/json.Marshal(0xa532c0, 0xc000376960, 0xfb86d0, 0x1, 0x1, 0xc00047b0b0, 0x4095bf)
	/usr/local/Cellar/go/1.12/libexec/src/encoding/json/encode.go:160 +0x52
github.com/bilibili/kratos/pkg/net/http/blademaster/render.writeJSON(0xb6f620, 0xc0003fa0e0, 0xa532c0, 0xc000376960, 0x9072a9, 0x412175)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/render/json.go:23 +0x7b
github.com/bilibili/kratos/pkg/net/http/blademaster/render.JSON.Render(...)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/render/json.go:39
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Render(0xc0000f8480, 0xc8, 0xb6a6a0, 0xc0003768d0)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:155 +0xf4
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).JSON(0xc0000f8480, 0x0, 0x0, 0x0, 0x0)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:180 +0x149
github.com/bilibili/discovery/http.set(0xc0000f8480)
	/work/go/src/github.com/Bilibili/discovery/http/discovery.go:152 +0x13f
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0000f8480)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Logger.func1(0xc0000f8480)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/logger.go:27 +0x127
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00b0, 0xc0000f8480)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0000f8480)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Trace.func1(0xc0000f8480)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/trace.go:38 +0x60b
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00c8, 0xc0000f8480)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0000f8480)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Recovery.func1(0xc0000f8480)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/recovery.go:30 +0x51
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00c0, 0xc0000f8480)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0000f8480)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).handleContext(0xc00007bee0, 0xc0000f8480)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:277 +0x427
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).addRoute.func1(0xb6f620, 0xc0003fa0e0, 0xc0000fad00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:215 +0x14d
net/http.HandlerFunc.ServeHTTP(0xc000093580, 0xb6f620, 0xc0003fa0e0, 0xc0000fad00)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1995 +0x44
net/http.(*ServeMux).ServeHTTP(0xc000093240, 0xb6f620, 0xc0003fa0e0, 0xc0000fad00)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2375 +0x1d6
net/http.serverHandler.ServeHTTP(0xc0002c80d0, 0xb6f620, 0xc0003fa0e0, 0xc0000fad00)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2774 +0xab
net/http.(*conn).serve(0xc00026a3c0, 0xb71120, 0xc00005f1c0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1878 +0x84c
created by net/http.(*Server).Serve
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2884 +0x2f4

goroutine 138 [select]:
github.com/bilibili/discovery/http.polls(0xc0000f9980)
	/work/go/src/github.com/Bilibili/discovery/http/discovery.go:127 +0x366
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0000f9980)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Logger.func1(0xc0000f9980)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/logger.go:27 +0x127
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00b0, 0xc0000f9980)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0000f9980)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Trace.func1(0xc0000f9980)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/trace.go:38 +0x60b
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00c8, 0xc0000f9980)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0000f9980)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Recovery.func1(0xc0000f9980)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/recovery.go:30 +0x51
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00c0, 0xc0000f9980)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0000f9980)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).handleContext(0xc00007bee0, 0xc0000f9980)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:277 +0x427
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).addRoute.func1(0xb6f620, 0xc0003fa700, 0xc000413200)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:215 +0x14d
net/http.HandlerFunc.ServeHTTP(0xc000093540, 0xb6f620, 0xc0003fa700, 0xc000413200)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1995 +0x44
net/http.(*ServeMux).ServeHTTP(0xc000093240, 0xb6f620, 0xc0003fa700, 0xc000413200)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2375 +0x1d6
net/http.serverHandler.ServeHTTP(0xc0002c80d0, 0xb6f620, 0xc0003fa700, 0xc000413200)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2774 +0xab
net/http.(*conn).serve(0xc00026a1e0, 0xb71120, 0xc0002b2c80)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1878 +0x84c
created by net/http.(*Server).Serve
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2884 +0x2f4

goroutine 157 [IO wait]:
internal/poll.runtime_pollWait(0x7f6cac4f4888, 0x72, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000336998, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000336980, 0xc000382000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000336980, 0xc000382000, 0x1000, 0x1000, 0xc000030500, 0xc000481b08, 0x7498ea)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00008ecf0, 0xc000382000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/net.go:177 +0x69
net/http.(*connReader).Read(0xc0003d3740, 0xc000382000, 0x1000, 0x1000, 0x0, 0x0, 0x72)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:787 +0x107
bufio.(*Reader).fill(0xc000062720)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc000062720, 0x4, 0x0, 0x0, 0x0, 0x0, 0x4ba64a)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:138 +0x4f
net/http.(*conn).readRequest(0xc000132320, 0xb71120, 0xc00005ef40, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:964 +0xb03
net/http.(*conn).serve(0xc000132320, 0xb71120, 0xc00005ef40)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1819 +0x6a8
created by net/http.(*Server).Serve
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2884 +0x2f4

goroutine 954658 [select]:
context.propagateCancel.func1(0xb71320, 0xc0000f8080, 0xb68920, 0xc000092680)
	/usr/local/Cellar/go/1.12/libexec/src/context/context.go:259 +0xd8
created by context.propagateCancel
	/usr/local/Cellar/go/1.12/libexec/src/context/context.go:258 +0x18a

goroutine 910212 [semacquire]:
sync.runtime_Semacquire(0xc000376550)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/sema.go:56 +0x39
sync.(*WaitGroup).Wait(0xc000376548)
	/usr/local/Cellar/go/1.12/libexec/src/sync/waitgroup.go:130 +0x65
golang.org/x/sync/errgroup.(*Group).Wait(0xc000376540, 0xc0003a6e70, 0xc00047d168)
	/work/go/pkg/mod/github.com/golang/[email protected]/errgroup/errgroup.go:40 +0x31
github.com/bilibili/discovery/registry.(*Nodes).ReplicateSet(0xc0003a6ea0, 0xb71320, 0xc0000f8080, 0xc000132140, 0x9f4600, 0xc00047d230, 0x40c248)
	/work/go/src/github.com/Bilibili/discovery/registry/nodes.go:93 +0x40e
github.com/bilibili/discovery/discovery.(*Discovery).Set(0xc000276ba0, 0xb71320, 0xc0000f8080, 0xc000132140, 0xfe74b0, 0x0)
	/work/go/src/github.com/Bilibili/discovery/discovery/register.go:100 +0xec
github.com/bilibili/discovery/http.set(0xc0000f8080)
	/work/go/src/github.com/Bilibili/discovery/http/discovery.go:152 +0x115
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0000f8080)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Logger.func1(0xc0000f8080)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/logger.go:27 +0x127
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00b0, 0xc0000f8080)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0000f8080)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Trace.func1(0xc0000f8080)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/trace.go:38 +0x60b
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00c8, 0xc0000f8080)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0000f8080)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Recovery.func1(0xc0000f8080)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/recovery.go:30 +0x51
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00c0, 0xc0000f8080)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0000f8080)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).handleContext(0xc00007bee0, 0xc0000f8080)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:277 +0x427
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).addRoute.func1(0xb6f620, 0xc0003fa000, 0xc0000fa300)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:215 +0x14d
net/http.HandlerFunc.ServeHTTP(0xc000093580, 0xb6f620, 0xc0003fa000, 0xc0000fa300)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1995 +0x44
net/http.(*ServeMux).ServeHTTP(0xc000093240, 0xb6f620, 0xc0003fa000, 0xc0000fa300)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2375 +0x1d6
net/http.serverHandler.ServeHTTP(0xc0002c80d0, 0xb6f620, 0xc0003fa000, 0xc0000fa300)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2774 +0xab
net/http.(*conn).serve(0xc00026a780, 0xb71120, 0xc0005686c0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1878 +0x84c
created by net/http.(*Server).Serve
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2884 +0x2f4

goroutine 954654 [IO wait]:
internal/poll.runtime_pollWait(0x7f6cac4f4618, 0x72, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc0000f8918, 0x72, 0x0, 0x1, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0000f8900, 0xc0003d3121, 0x1, 0x1, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc0000f8900, 0xc0003d3121, 0x1, 0x1, 0xc000093058, 0xc0004a0768, 0x46f944)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00008ee58, 0xc0003d3121, 0x1, 0x1, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/net.go:177 +0x69
net/http.(*connReader).backgroundRead(0xc0003d3110)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:677 +0x58
created by net/http.(*connReader).startBackgroundRead
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:673 +0xca

goroutine 954645 [IO wait]:
internal/poll.runtime_pollWait(0x7f6cac4f47b8, 0x72, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000336018, 0x72, 0x0, 0x1, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000336000, 0xc00048c0a1, 0x1, 0x1, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000336000, 0xc00048c0a1, 0x1, 0x1, 0xc0002b2f98, 0xc00035e768, 0x46f944)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00008e018, 0xc00048c0a1, 0x1, 0x1, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/net.go:177 +0x69
net/http.(*connReader).backgroundRead(0xc00048c090)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:677 +0x58
created by net/http.(*connReader).startBackgroundRead
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:673 +0xca

goroutine 954659 [select]:
net/http.(*persistConn).roundTrip(0xc00031c360, 0xc000376660, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/transport.go:2174 +0x531
net/http.(*Transport).roundTrip(0xc000351320, 0xc0000fa900, 0x9fd0e0, 0x1, 0xc00006f900)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/transport.go:481 +0xa9a
net/http.(*Transport).RoundTrip(0xc000351320, 0xc0000fa900, 0xfe74b0, 0x9bffe0, 0xf8f8e0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/roundtrip.go:17 +0x35
github.com/bilibili/kratos/pkg/net/http/blademaster.(*TraceTransport).RoundTrip(0xc0002b3000, 0xc0000fa900, 0xc0002b3000, 0x0, 0x0)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/trace.go:100 +0x4fe
net/http.send(0xc0000fa900, 0xb62c20, 0xc0002b3000, 0x0, 0x0, 0x0, 0xc00008e0e0, 0x412874, 0x1, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/client.go:250 +0x202
net/http.(*Client).send(0xc0003a6d80, 0xc0000fa900, 0x0, 0x0, 0x0, 0xc00008e0e0, 0x0, 0x1, 0x17)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/client.go:174 +0xfb
net/http.(*Client).do(0xc0003a6d80, 0xc0000fa900, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/client.go:641 +0x279
net/http.(*Client).Do(...)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/client.go:509
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Client).Raw(0xc00033faa0, 0xb71120, 0xc000092680, 0xc0000fa800, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/client.go:261 +0x6c1
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Client).Do(0xc00033faa0, 0xb71120, 0xc000092680, 0xc0000fa800, 0x9b07c0, 0xc00049c378, 0x0, 0x0, 0x0, 0x0, ...)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/client.go:282 +0x8e
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Client).Post(0xc00033faa0, 0xb71120, 0xc000092680, 0xc00021d950, 0x26, 0x0, 0x0, 0xc0002f9d68, 0x9b07c0, 0xc00049c378, ...)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/client.go:178 +0x105
github.com/bilibili/discovery/registry.(*Node).setCall(0xc0003422d0, 0xb71120, 0xc000092680, 0xc000132140, 0xc00021d950, 0x26, 0x0, 0xc000304790)
	/work/go/src/github.com/Bilibili/discovery/registry/node.go:175 +0x786
github.com/bilibili/discovery/registry.(*Node).Set(...)
	/work/go/src/github.com/Bilibili/discovery/registry/node.go:107
github.com/bilibili/discovery/registry.(*Nodes).ReplicateSet.func1(0x8, 0xac2018)
	/work/go/src/github.com/Bilibili/discovery/registry/nodes.go:79 +0x5e
golang.org/x/sync/errgroup.(*Group).Go.func1(0xc000376540, 0xc000078500)
	/work/go/pkg/mod/github.com/golang/[email protected]/errgroup/errgroup.go:57 +0x57
created by golang.org/x/sync/errgroup.(*Group).Go
	/work/go/pkg/mod/github.com/golang/[email protected]/errgroup/errgroup.go:54 +0x66

goroutine 954657 [runnable]:
net/http.(*connReader).backgroundRead(0xc000339f20)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:676
created by net/http.(*connReader).startBackgroundRead
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:673 +0xca

goroutine 954660 [runnable]:
net/http.(*connReader).backgroundRead(0xc000206930)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:676
created by net/http.(*connReader).startBackgroundRead
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:673 +0xca

goroutine 88835 [select]:
github.com/bilibili/discovery/http.polls(0xc0004efe00)
	/work/go/src/github.com/Bilibili/discovery/http/discovery.go:127 +0x366
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0004efe00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Logger.func1(0xc0004efe00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/logger.go:27 +0x127
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00b0, 0xc0004efe00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0004efe00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Trace.func1(0xc0004efe00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/trace.go:38 +0x60b
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00c8, 0xc0004efe00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0004efe00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Recovery.func1(0xc0004efe00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/recovery.go:30 +0x51
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00c0, 0xc0004efe00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0004efe00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).handleContext(0xc00007bee0, 0xc0004efe00)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:277 +0x427
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).addRoute.func1(0xb6f620, 0xc0004287e0, 0xc000170900)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:215 +0x14d
net/http.HandlerFunc.ServeHTTP(0xc000093540, 0xb6f620, 0xc0004287e0, 0xc000170900)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1995 +0x44
net/http.(*ServeMux).ServeHTTP(0xc000093240, 0xb6f620, 0xc0004287e0, 0xc000170900)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2375 +0x1d6
net/http.serverHandler.ServeHTTP(0xc0002c80d0, 0xb6f620, 0xc0004287e0, 0xc000170900)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2774 +0xab
net/http.(*conn).serve(0xc000095680, 0xb71120, 0xc000414800)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1878 +0x84c
created by net/http.(*Server).Serve
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2884 +0x2f4

goroutine 771140 [select]:
github.com/bilibili/discovery/http.polls(0xc0004eff80)
	/work/go/src/github.com/Bilibili/discovery/http/discovery.go:127 +0x366
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0004eff80)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Logger.func1(0xc0004eff80)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/logger.go:27 +0x127
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00b0, 0xc0004eff80)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0004eff80)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Trace.func1(0xc0004eff80)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/trace.go:38 +0x60b
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00c8, 0xc0004eff80)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0004eff80)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.Recovery.func1(0xc0004eff80)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/recovery.go:30 +0x51
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xac00c0, 0xc0004eff80)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc0004eff80)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:70 +0x47
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).handleContext(0xc00007bee0, 0xc0004eff80)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:277 +0x427
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).addRoute.func1(0xb6f620, 0xc0004288c0, 0xc0003dc000)
	/work/go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:215 +0x14d
net/http.HandlerFunc.ServeHTTP(0xc000093540, 0xb6f620, 0xc0004288c0, 0xc0003dc000)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1995 +0x44
net/http.(*ServeMux).ServeHTTP(0xc000093240, 0xb6f620, 0xc0004288c0, 0xc0003dc000)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2375 +0x1d6
net/http.serverHandler.ServeHTTP(0xc0002c80d0, 0xb6f620, 0xc0004288c0, 0xc0003dc000)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2774 +0xab
net/http.(*conn).serve(0xc00026a640, 0xb71120, 0xc000092f40)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1878 +0x84c
created by net/http.(*Server).Serve
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2884 +0x2f4

goroutine 954627 [IO wait]:
internal/poll.runtime_pollWait(0x7f6cac4f46e8, 0x72, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00016c398, 0x72, 0x0, 0x1, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00016c380, 0xc000430881, 0x1, 0x1, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00016c380, 0xc000430881, 0x1, 0x1, 0xc00005e258, 0xc0002ba768, 0x46f944)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00000e9c8, 0xc000430881, 0x1, 0x1, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/net.go:177 +0x69
net/http.(*connReader).backgroundRead(0xc000430870)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:677 +0x58
created by net/http.(*connReader).startBackgroundRead
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:673 +0xca

goroutine 954655 [IO wait]:
internal/poll.runtime_pollWait(0x7f6cac4f4068, 0x72, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc0000f8e98, 0x72, 0x0, 0x1, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0000f8e80, 0xc0002d38a1, 0x1, 0x1, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc0000f8e80, 0xc0002d38a1, 0x1, 0x1, 0xc000568798, 0xc000043768, 0x46f944)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00008e400, 0xc0002d38a1, 0x1, 0x1, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/net.go:177 +0x69
net/http.(*connReader).backgroundRead(0xc0002d3890)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:677 +0x58
created by net/http.(*connReader).startBackgroundRead
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:673 +0xca

goroutine 954656 [IO wait]:
internal/poll.runtime_pollWait(0x7f6cac4b97a8, 0x72, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc000336d18, 0x72, 0x0, 0x1, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc000336d00, 0xc0003a9811, 0x1, 0x1, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc000336d00, 0xc0003a9811, 0x1, 0x1, 0xc000304f78, 0x962795, 0xc000342240)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00000e190, 0xc0003a9811, 0x1, 0x1, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/net.go:177 +0x69
net/http.(*connReader).backgroundRead(0xc0003a9800)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:677 +0x58
created by net/http.(*connReader).startBackgroundRead
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:673 +0xca

goroutine 88883 [IO wait]:
internal/poll.runtime_pollWait(0x7f6cac4f42d8, 0x72, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/runtime/netpoll.go:182 +0x56
internal/poll.(*pollDesc).wait(0xc00016de98, 0x72, 0x1000, 0x1000, 0xffffffffffffffff)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:87 +0x9b
internal/poll.(*pollDesc).waitRead(...)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc00016de80, 0xc00023d000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/internal/poll/fd_unix.go:169 +0x19b
net.(*netFD).Read(0xc00016de80, 0xc00023d000, 0x1000, 0x1000, 0xc000030500, 0xc000505b08, 0x7498ea)
	/usr/local/Cellar/go/1.12/libexec/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc00000e550, 0xc00023d000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/net.go:177 +0x69
net/http.(*connReader).Read(0xc0003380f0, 0xc00023d000, 0x1000, 0x1000, 0x0, 0x0, 0x72)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:787 +0x107
bufio.(*Reader).fill(0xc0003b8360)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc0003b8360, 0x4, 0x0, 0x0, 0x0, 0x0, 0x4ba64a)
	/usr/local/Cellar/go/1.12/libexec/src/bufio/bufio.go:138 +0x4f
net/http.(*conn).readRequest(0xc00026ab40, 0xb71120, 0xc000414b80, 0x0, 0x0, 0x0)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:964 +0xb03
net/http.(*conn).serve(0xc00026ab40, 0xb71120, 0xc000414b80)
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:1819 +0x6a8
created by net/http.(*Server).Serve
	/usr/local/Cellar/go/1.12/libexec/src/net/http/server.go:2884 +0x2f4

fatal error: concurrent map iteration and map write

discovery 运行一段时间,发生了panic。 使用的是当前 master 分支的代码。

错误日志如下:

fatal error: concurrent map iteration and map write

goroutine 184 [running]:
runtime.throw(0xb15481, 0x26)
        /usr/local/go/src/runtime/panic.go:1116 +0x72 fp=0xc00051a940 sp=0xc00051a910 pc=0x439152
runtime.mapiternext(0xc000892ae0)
        /usr/local/go/src/runtime/map.go:853 +0x554 fp=0xc00051a9c0 sp=0xc00051a940 pc=0x412874
reflect.mapiternext(0xc000892ae0)
        /usr/local/go/src/runtime/map.go:1337 +0x2b fp=0xc00051a9d8 sp=0xc00051a9c0 pc=0x46afab
reflect.Value.MapKeys(0xa58200, 0xc0002125f8, 0x195, 0x0, 0xc000843560, 0x18)
        /usr/local/go/src/reflect/value.go:1226 +0x10c fp=0xc00051aa68 sp=0xc00051a9d8 pc=0x4a036c
encoding/json.mapEncoder.encode(0xb2b2d0, 0xc000990980, 0xa58200, 0xc0002125f8, 0x195, 0x100)
        /usr/local/go/src/encoding/json/encode.go:785 +0xff fp=0xc00051abe0 sp=0xc00051aa68 pc=0x549fbf
encoding/json.mapEncoder.encode-fm(0xc000990980, 0xa58200, 0xc0002125f8, 0x195, 0x100)
        /usr/local/go/src/encoding/json/encode.go:777 +0x65 fp=0xc00051ac20 sp=0xc00051abe0 pc=0x555ce5
encoding/json.structEncoder.encode(0xc0004d8000, 0xe, 0x10, 0xc000570a20, 0xc000990980, 0xadfb00, 0xc000212580, 0x199, 0xa50100)
        /usr/local/go/src/encoding/json/encode.go:759 +0x2ab fp=0xc00051acb8 sp=0xc00051ac20 pc=0x549c6b
encoding/json.structEncoder.encode-fm(0xc000990980, 0xadfb00, 0xc000212580, 0x199, 0xc000210100)
        /usr/local/go/src/encoding/json/encode.go:730 +0x7f fp=0xc00051ad10 sp=0xc00051acb8 pc=0x555c5f
encoding/json.ptrEncoder.encode(0xc000570a80, 0xc000990980, 0xa4d2c0, 0xc000212580, 0x16, 0xa40100)
        /usr/local/go/src/encoding/json/encode.go:915 +0x125 fp=0xc00051add0 sp=0xc00051ad10 pc=0x54b1e5
encoding/json.ptrEncoder.encode-fm(0xc000990980, 0xa4d2c0, 0xc000212580, 0x16, 0xc000210100)
        /usr/local/go/src/encoding/json/encode.go:900 +0x65 fp=0xc00051ae10 sp=0xc00051add0 pc=0x555e65
encoding/json.(*encodeState).reflectValue(0xc000990980, 0xa4d2c0, 0xc000212580, 0x16, 0xc000210100)
        /usr/local/go/src/encoding/json/encode.go:358 +0x82 fp=0xc00051ae48 sp=0xc00051ae10 pc=0x547362
encoding/json.interfaceEncoder(0xc000990980, 0xa4a1a0, 0xc0006411f0, 0x94, 0x100)
        /usr/local/go/src/encoding/json/encode.go:714 +0xac fp=0xc00051ae90 sp=0xc00051ae48 pc=0x5497cc
encoding/json.structEncoder.encode(0xc00066a480, 0x4, 0x4, 0xc0006417d0, 0xc000990980, 0xab8be0, 0xc0006411d0, 0x99, 0xab0100)
        /usr/local/go/src/encoding/json/encode.go:759 +0x2ab fp=0xc00051af28 sp=0xc00051ae90 pc=0x549c6b
encoding/json.structEncoder.encode-fm(0xc000990980, 0xab8be0, 0xc0006411d0, 0x99, 0xf20100)
        /usr/local/go/src/encoding/json/encode.go:730 +0x7f fp=0xc00051af80 sp=0xc00051af28 pc=0x555c5f
encoding/json.(*encodeState).reflectValue(0xc000990980, 0xab8be0, 0xc0006411d0, 0x99, 0xc000510100)
        /usr/local/go/src/encoding/json/encode.go:358 +0x82 fp=0xc00051afb8 sp=0xc00051af80 pc=0x547362
encoding/json.(*encodeState).marshal(0xc000990980, 0xab8be0, 0xc0006411d0, 0x100, 0x0, 0x0)
        /usr/local/go/src/encoding/json/encode.go:330 +0xf4 fp=0xc00051b018 sp=0xc00051afb8 pc=0x546f54
encoding/json.Marshal(0xab8be0, 0xc0006411d0, 0xf1cbf0, 0x1, 0x1, 0xc00051b0f0, 0x40cc7f)
        /usr/local/go/src/encoding/json/encode.go:161 +0x52 fp=0xc00051b090 sp=0xc00051b018 pc=0x546592
github.com/bilibili/kratos/pkg/net/http/blademaster/render.writeJSON(0xbc3120, 0xc0006aa000, 0xab8be0, 0xc0006411d0, 0x95262a, 0x415693)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/render/json.go:23 +0x7b fp=0xc00051b100 sp=0xc00051b090 pc=0x951c9b
github.com/bilibili/kratos/pkg/net/http/blademaster/render.JSON.Render(...)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/render/json.go:39
github.com/bilibili/kratos/pkg/net/http/blademaster/render.(*JSON).Render(0xc000641140, 0xbc3120, 0xc0006aa000, 0x0, 0xf629e0)
        <autogenerated>:1 +0xd1 fp=0xc00051b1a0 sp=0xc00051b100 pc=0x9533b1
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Render(0xc00032c6e0, 0xc8, 0xbbdf80, 0xc000641140)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:150 +0x102 fp=0xc00051b208 sp=0xc00051b1a0 pc=0x9c1802
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).JSON(0xc00032c6e0, 0xa4d2c0, 0xc000212580, 0x0, 0x0)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:175 +0x149 fp=0xc00051b280 sp=0xc00051b208 pc=0x9c1ba9
github.com/bilibili/discovery/http.renew(0xc00032c6e0)
        /app/discovery/http/discovery.go:51 +0xd4 fp=0xc00051b2d0 sp=0xc00051b280 pc=0x9e08b4
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc00032c6e0)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:64 +0x3b fp=0xc00051b2f0 sp=0xc00051b2d0 pc=0x9c145b
github.com/bilibili/kratos/pkg/net/http/blademaster.Logger.func1(0xc00032c6e0)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/logger.go:27 +0x127 fp=0xc00051b960 sp=0xc00051b2f0 pc=0x9cc9c7
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xb2b648, 0xc00032c6e0)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30 fp=0xc00051b978 sp=0xc00051b960 pc=0x9c4ff0
github.com/bilibili/kratos/pkg/net/http/blademaster.Handler.ServeHTTP-fm(0xc00032c6e0)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:64 +0x39 fp=0xc00051b998 sp=0xc00051b978 pc=0x9d12d9
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc00032c6e0)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:64 +0x3b fp=0xc00051b9b8 sp=0xc00051b998 pc=0x9c145b
github.com/bilibili/kratos/pkg/net/http/blademaster.Trace.func1(0xc00032c6e0)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/trace.go:38 +0x610 fp=0xc00051ba68 sp=0xc00051b9b8 pc=0x9cfd70
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xb2b670, 0xc00032c6e0)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30 fp=0xc00051ba80 sp=0xc00051ba68 pc=0x9c4ff0
github.com/bilibili/kratos/pkg/net/http/blademaster.Handler.ServeHTTP-fm(0xc00032c6e0)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:64 +0x39 fp=0xc00051baa0 sp=0xc00051ba80 pc=0x9d12d9
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc00032c6e0)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:64 +0x3b fp=0xc00051bac0 sp=0xc00051baa0 pc=0x9c145b
github.com/bilibili/kratos/pkg/net/http/blademaster.Recovery.func1(0xc00032c6e0)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/recovery.go:30 +0x4e fp=0xc00051baf0 sp=0xc00051bac0 pc=0x9cf18e
github.com/bilibili/kratos/pkg/net/http/blademaster.HandlerFunc.ServeHTTP(0xb2b668, 0xc00032c6e0)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:72 +0x30 fp=0xc00051bb08 sp=0xc00051baf0 pc=0x9c4ff0
github.com/bilibili/kratos/pkg/net/http/blademaster.Handler.ServeHTTP-fm(0xc00032c6e0)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:64 +0x39 fp=0xc00051bb28 sp=0xc00051bb08 pc=0x9d12d9
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Context).Next(0xc00032c6e0)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/context.go:64 +0x3b fp=0xc00051bb48 sp=0xc00051bb28 pc=0x9c145b
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).handleContext(0xc0001b6500, 0xc00032c6e0)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:323 +0x417 fp=0xc00051bbd0 sp=0xc00051bb48 pc=0x9c6917
github.com/bilibili/kratos/pkg/net/http/blademaster.(*Engine).ServeHTTP(0xc0001b6500, 0xbc3120, 0xc0006aa000, 0xc0003be300)
        /go/pkg/mod/github.com/bilibili/[email protected]/pkg/net/http/blademaster/server.go:494 +0xb9 fp=0xc00051bbf0 sp=0xc00051bbd0 pc=0x9c81d9
net/http.serverHandler.ServeHTTP(0xc00063e0e0, 0xbc3120, 0xc0006aa000, 0xc0003be300)
        /usr/local/go/src/net/http/server.go:2843 +0xa3 fp=0xc00051bc20 sp=0xc00051bbf0 pc=0x7b7b83
net/http.(*conn).serve(0xc0001b4500, 0xbc4ea0, 0xc000150c40)
        /usr/local/go/src/net/http/server.go:1925 +0x8ad fp=0xc00051bfc8 sp=0xc00051bc20 pc=0x7b338d
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1374 +0x1 fp=0xc00051bfd0 sp=0xc00051bfc8 pc=0x471521
created by net/http.(*Server).Serve
        /usr/local/go/src/net/http/server.go:2969 +0x36c
...
...
...

go get github.com/bilibili/discovery 报错无法解决

D:\ideaProject\kratos>go get github.com/bilibili/discovery
go: github.com/bilibili/discovery upgrade => v1.1.2
go get: github.com/bilibili/[email protected] requires
github.com/bilibili/[email protected] requires
github.com/prometheus/[email protected]: invalid pseudo-version: does not match version-control timestamp (2019-01-29T23:31:27Z)

然后编辑go.mod 添加 replace github.com/prometheus/client_model => github.com/prometheus/client_model v0.1.0
继续
D:\ideaProject\kratos>go get github.com/bilibili/discovery
go: github.com/prometheus/[email protected] requires
github.com/prometheus/[email protected]/go.mod: verifying module: github.com/prometheus/[email protected]/go.mod: Get "https://sum.golang.org/lookup/github.com/prometh
eus/[email protected]": dial tcp 172.217.160.113:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or esta
blished connection failed because connected host has failed to respond.

D:\ideaProject\kratos>go env
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\51656\AppData\Local\go-build
set GOENV=C:\Users\51656\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\ckh\GOPATH
set GOPRIVATE=
set GOPROXY=direct
set GOROOT=C:\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=D:\ideaProject\kratos\go.mod
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\51656\AppData\Local\Temp\go-build287291146=/tmp/go-build -gn
o-record-gcc-switches

D:\ideaProject\kratos>set GOPROXY=https://goproxy.cn

D:\ideaProject\kratos>go get github.com/bilibili/discovery
go: github.com/bilibili/discovery upgrade => v1.1.2
go get: github.com/bilibili/[email protected] requires
github.com/bilibili/[email protected] requires
github.com/remyoudompheng/bigfft@v0.0.0-20190806203942-babf20351dd7e3ac320adedbbe5eb311aec8763c: reading https://goproxy.cn/github.com/remyoudompheng/bigfft/@v/v0.0.0-2019
0806203942-babf20351dd7e3ac320adedbbe5eb311aec8763c.mod: 404 Not Found
server response: not found: github.com/remyoudompheng/bigfft@v0.0.0-20190806203942-babf20351dd7e3ac320adedbbe5eb311aec8763c: invalid pseudo-version: revision is longer tha
n canonical
(babf20351dd7)

flaky unit test

单元测试偶尔需要 30秒 执行。偶尔只需要1秒钟。

服务反注册不会触发 poll 返回

考虑有两个 discovery client,发生了这样的事件

  1. clientA.Register()
  2. clientB.Polls(ts = 0) => 返回 ts = 1
  3. clientB.Polls(ts = 1)
  4. clientA.Cancel()

第 4 步不会让 第 3 步的长轮询返回,第三步的 polls 要等到长轮询超时。

go build 的时候发生错误

按照Quick Start 指导进行以下步骤时

cd $GOPATH/src
git clone https://github.com/bilibili/discovery.git
cd discovery/cmd/discovery
go build

在最后一步 go build 发生错误, 报错信息如下:

$ go build
go: github.com/bilibili/[email protected] requires
	github.com/prometheus/[email protected]: reading https://goproxy.cn/github.com/prometheus/client_model/@v/v0.0.0-20190220174349-fd36f4220a90.mod: 404 Not Found

go version:
go version go1.13.5 darwin/amd6
go env:

GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/User/Library/Caches/go-build"
GOENV="/Users/User/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/User/Projects/gopath"
GOPRIVATE=""
GOPROXY="https://goproxy.cn"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/User/Projects/gopath/src/github.com/bilibili/discovery/go.mod"
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/z1/cy2f80nj0qb1h52_14zr8cx00000gn/T/go-build432037684=/tmp/go-build -gno-record-gcc-switches -fno-common"

http-access-log 出错

ERROR 03/17-03:19:56.618 http-access-log method=GET ip=127.0.0.1 path=/discovery/polls ts=30.00105143 traceid= err=-304 user=no_user params=appid=infra.discovery&env=dev&hostname=cloud1&latest_timestamp=1615864005461352591 stack=-304 ret=-304 msg=-304 timeout_quota=39.999991718
INFO 03/17-03:19:56.618 /home/avit/code/discovery/registry/registry.go:235 Polls from(cloud1) reuse connection(6)
INFO 03/17-03:19:56.625 /home/avit/code/discovery/registry/registry.go:382 DelConns from(cloud1) count decr(6)
ERROR 03/17-03:19:56.625 http-access-log params=appid=infra.discovery&env=dev&hostname=cloud1&latest_timestamp=1615864005461352591 traceid= ip=127.0.0.1 err=-304 ts=30.001147202 ret=-304 stack=-304 path=/discovery/polls user=no_user msg=-304 timeout_quota=39.999992338 method=GET
INFO 03/17-03:19:56.626 /home/avit/code/discovery/registry/registry.go:235 Polls from(cloud1) reuse connection(6)
INFO 03/17-03:19:56.648 /home/avit/code/discovery/registry/registry.go:382 DelConns from(cloud1) count decr(6)
INFO 03/17-03:19:56.648 /home/avit/code/discovery/registry/registry.go:385 DelConns from(cloud1) delete(1)
ERROR 03/17-03:19:56.648 http-access-log stack=-304 traceid= method=GET ret=-304 msg=-304 ts=30.001125872 ip=127.0.0.1 path=/discovery/polls err=-304 params=appid=infra.discovery&appid=goim.comet&env=dev&hostname=cloud1&latest_timestamp=1615864005461352591&latest_timestamp=1615865003212927403 user=no_user timeout_quota=39.999992267

请问这个出错是怎么发生的,然后应该怎么解决?

discovery集群节点配置文件错误

discovery-example.toml下

同一discovery集群的所有node节点地址,包含本node

nodes = ["127.0.0.1:7171"]应放于最前面。
在conf包conf.go文件config结构中,nodes与env为同级别

README.md issue

log_dir should change to log.dir in verion 1.1.0 in this string '-alsologtostderr is glog's flag,means print into stderr. If you hope print into file, can use -log_dir="/tmp"'

=====================================
[root@k8s-discovery1 discovery]# discovery
ERROR 08/09-02:48:39.217 /work/go/src/github.com/Bilibili/discovery/cmd/discovery/main.go:19 conf.Init() error(open discovery-example.toml: no such file or directory)
panic: open discovery-example.toml: no such file or directory

goroutine 1 [running]:
main.main()
/work/go/src/github.com/Bilibili/discovery/cmd/discovery/main.go:20 +0x3c5
[root@k8s-discovery1 discovery]# discovery -h
Usage of discovery:
-appid string
appid is global unique application id, register by service tree. or use APP_ID env variable.
-conf string
config path (default "discovery-example.toml")
-deploy.color string
deploy.color is the identification of different experimental group.
-deploy.env string
deploy env. or use DEPLOY_ENV env variable, value: dev/fat1/uat/pre/prod etc. (default "dev")
-discovery.nodes string
discovery.nodes is seed nodes. value: 127.0.0.1:7171,127.0.0.2:7171 etc.
-hostname string
machine hostname (default "k8s-discovery1")
-http string
listen http dsn, or use HTTP env variable. (default "tcp://0.0.0.0:8000/?timeout=1s")
-http.perf string
listen http perf dsn, or use HTTP_PERF env variable. (default "tcp://0.0.0.0:2333")
-log.agent string
log agent dsn, or use LOG_AGENT env variable.
-log.dir string
log file `path, or use LOG_DIR env variable.
-log.filter value
log field for sensitive message, or use LOG_FILTER env variable, format: field1,field2.
-log.module value
log verbose for specified module, or use LOG_MODULE env variable, format: file=1,file2=2.
-log.noagent
force disable log agent print log to stderr, or use LOG_NO_AGENT
-log.stdout
log enable stdout or not, or use LOG_STDOUT env variable.
-log.v int
log verbose level, or use LOG_V env variable.
-prom_summary
use summary in prometheus
-region string
avaliable region. or use REGION env variable, value: sh etc. (default "region01")
-scheduler string
scheduler info (default "scheduler.json")
-trace string
trace report dsn, or use TRACE env. (default "unixgram:///var/run/dapper-collect/dapper-collect.sock")
-zone string
avaliable zone. or use ZONE env variable, value: sh001/sh002 etc. (default "zone01")

优化的计划?

是否有下面优化的计划呢?
1.数据持久化
2.服务集群化
3.poll换成websocket

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.