bfenetworks / bfe

A modern layer 7 load balancer from baidu
https://www.bfe-networks.net
Apache License 2.0
6.12k stars 946 forks source link

panic when request with ":8421/reload/server_data_conf" #678

Closed eryx closed 3 years ago

eryx commented 3 years ago

Describe the bug

git branch: master install: source make bfe -v: version: 1.0.0-dev

curl http://localhost:8421/reload/server_data_conf

{"error":"reload panic:interface conversion: bfe_http.RoundTripper is *bfe_http2.Transport, not *bfe_http.Transport"}

console log output:

[12/18/20 11:29:07] [WARN] MonitorServer:reloadHandler():interface conversion: bfe_http.RoundTripper is *bfe_fcgi.Transport, not *bfe_http.Transport
goroutine 67 [running]:
github.com/baidu/go-lib/gotrack.CurrentStackTrace(0x0, 0xf, 0xc0000df500, 0x1)
    /opt/gopath/pkg/mod/github.com/baidu/go-lib@v0.0.0-20200819072111-21df249f5e6a/gotrack/stack.go:33 +0x78
github.com/baidu/go-lib/web-monitor/web_monitor.(*MonitorServer).reloadHandler.func1(0xc0000dfaf8)
    /opt/gopath/pkg/mod/github.com/baidu/go-lib@v0.0.0-20200819072111-21df249f5e6a/web-monitor/web_monitor/web_monitor.go:231 +0xe8
panic(0x10d9de0, 0xc00040e150)
    /usr/local/go/src/runtime/panic.go:969 +0x1b9
github.com/bfenetworks/bfe/bfe_server.(*ReverseProxy).setTransports(0xc000033f80, 0xc00040e0c0)
    /opt/gopath/src/github.com/baidu/bfe/bfe_server/reverseproxy.go:153 +0x428
github.com/bfenetworks/bfe/bfe_server.(*BfeServer).serverDataConfReload(0xc0000a2a80, 0xc00013d4a0, 0x2b, 0xc00013d530, 0x2a, 0xc00013d5c0, 0x2c, 0xc00013d770, 0x2e, 0xc0002c6a18, ...)
    /opt/gopath/src/github.com/baidu/bfe/bfe_server/bfe_confdata_load.go:115 +0x1d5
github.com/bfenetworks/bfe/bfe_server.(*BfeServer).ServerDataConfReload(0xc0000a2a80, 0xc0001ed3b0, 0x0, 0x0)
    /opt/gopath/src/github.com/baidu/bfe/bfe_server/bfe_confdata_load.go:101 +0xe5
github.com/baidu/go-lib/web-monitor/web_monitor.(*MonitorServer).reloadHandler(0xc0004c4140, 0xc0004cc00c, 0x10, 0xc0001ed3b0, 0xc000386040, 0xf, 0x0, 0x0, 0x0, 0x12e3860, ...)
    /opt/gopath/pkg/mod/github.com/baidu/go-lib@v0.0.0-20200819072111-21df249f5e6a/web-monitor/web_monitor/web_monitor.go:256 +0x58f
github.com/baidu/go-lib/web-monitor/web_monitor.(*MonitorServer).webHandler(0xc0004c4140, 0x12fc0c0, 0xc000012000, 0xc00077c000)
    /opt/gopath/pkg/mod/github.com/baidu/go-lib@v0.0.0-20200819072111-21df249f5e6a/web-monitor/web_monitor/web_monitor.go:345 +0x3e6
net/http.HandlerFunc.ServeHTTP(0xc000115260, 0x12fc0c0, 0xc000012000, 0xc00077c000)
    /usr/local/go/src/net/http/server.go:2042 +0x44
net/http.(*ServeMux).ServeHTTP(0x1863460, 0x12fc0c0, 0xc000012000, 0xc00077c000)
    /usr/local/go/src/net/http/server.go:2417 +0x1ad
net/http.serverHandler.ServeHTTP(0xc000148540, 0x12fc0c0, 0xc000012000, 0xc00077c000)
    /usr/local/go/src/net/http/server.go:2843 +0xa3
net/http.(*conn).serve(0xc0004660a0, 0x12ff3c0, 0xc000286140)
    /usr/local/go/src/net/http/server.go:1925 +0x8ad
created by net/http.(*Server).Serve
    /usr/local/go/src/net/http/server.go:2969 +0x36c

To Reproduce Steps to reproduce the behavior.

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

Additional context Add any other context about the problem here.

iyangsj commented 3 years ago

Thanks for your feedback! It will be resolved soon.

iyangsj commented 3 years ago

Resolved by #679

eryx commented 3 years ago

pretty good!