Giter Club home page Giter Club logo

discovery's Issues

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"]

example_test.go例子请教

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

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

run

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

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

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)

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")

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)

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"

为什么返回请求数据需要做深拷贝呢?代码中存在多余的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
}

使用discovery出错

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

image

block
image

关于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

缺少获取所有的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
}

优化的计划?

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

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

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

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

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

flaky unit test

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

discovery集群节点配置文件错误

discovery-example.toml下

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

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

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"

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
...
...
...

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 Polls API 可用性问题

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

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会直接穿透
我可以提交这些问题的修复吗?

技术支持

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

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

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

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.