influxdata / influxdb

Scalable datastore for metrics, events, and real-time analytics
https://influxdata.com
Apache License 2.0
28.71k stars 3.54k forks source link

GET /checks causes panic #16988

Closed russorat closed 4 years ago

russorat commented 4 years ago
curl --location --request GET 'http://localhost:9999/api/v2/checks?org=$INFLUX_ORG' \
--header 'Authorization: Token $INFLUX_TOKEN' \
--data-raw ''
2020-02-24T21:41:44.425498Z error   a panic has occurred    {"log_id": "0LAHkDYG000", "handler": "panic", "error": "runtime error: invalid memory address or nil pointer dereference"}
goroutine 14903 [running]:
runtime/debug.Stack(0xc006b82420, 0xc00400d702, 0x5af6588)
    /usr/local/Cellar/go/1.13.7/libexec/src/runtime/debug/stack.go:24 +0x9d
github.com/influxdata/influxdb/http.baseHandler.panic(0x6a17d40, 0x69db068, 0x6a46ae0, 0xc0048c6520, 0xc0064d8a00, 0x57e5480, 0x7a1efc0)
    /Users/rsavage/go/src/github.com/influxdata/influxdb/http/router.go:81 +0x1e6
github.com/influxdata/httprouter.(*Router).recv(0xc0077670e0, 0x6a46ae0, 0xc0048c6520, 0xc0064d8a00)
    /Users/rsavage/go/pkg/mod/github.com/influxdata/httprouter@v1.3.1-0.20191122104820-ee83e2772f69/router.go:361 +0x79
panic(0x57e5480, 0x7a1efc0)
    /usr/local/Cellar/go/1.13.7/libexec/src/runtime/panic.go:679 +0x1b2
github.com/influxdata/influxdb/http.decodeCheckFilter(0x6a573a0, 0xc006e85560, 0xc0064d8b00, 0x0, 0xc006a567c8, 0x0, 0x57e20c0)
    /Users/rsavage/go/src/github.com/influxdata/influxdb/http/check_service.go:380 +0x132
github.com/influxdata/influxdb/http.(*CheckHandler).handleGetChecks(0xc007748380, 0x6a46ae0, 0xc0048c6520, 0xc0064d8b00)
    /Users/rsavage/go/src/github.com/influxdata/influxdb/http/check_service.go:266 +0x74
net/http.HandlerFunc.ServeHTTP(0xc0077748f0, 0x6a46ae0, 0xc0048c6520, 0xc0064d8b00)
    /usr/local/Cellar/go/1.13.7/libexec/src/net/http/server.go:2007 +0x44
github.com/influxdata/httprouter.(*Router).Handler.func1(0x6a46ae0, 0xc0048c6520, 0xc0064d8b00, 0x0, 0x0, 0x0)
    /Users/rsavage/go/pkg/mod/github.com/influxdata/httprouter@v1.3.1-0.20191122104820-ee83e2772f69/router.go:325 +0x1c8
github.com/influxdata/httprouter.(*Router).ServeHTTP(0xc0077670e0, 0x6a46ae0, 0xc0048c6520, 0xc0064d8a00)
    /Users/rsavage/go/pkg/mod/github.com/influxdata/httprouter@v1.3.1-0.20191122104820-ee83e2772f69/router.go:453 +0x896
github.com/go-chi/chi.(*Mux).Mount.func1(0x6a46ae0, 0xc0048c6520, 0xc0064d8a00)
    /Users/rsavage/go/pkg/mod/github.com/go-chi/chi@v4.0.2+incompatible/mux.go:292 +0x124
net/http.HandlerFunc.ServeHTTP(0xc007777c40, 0x6a46ae0, 0xc0048c6520, 0xc0064d8a00)
    /usr/local/Cellar/go/1.13.7/libexec/src/net/http/server.go:2007 +0x44
github.com/go-chi/chi.(*Mux).routeHTTP(0xc00778a2a0, 0x6a46ae0, 0xc0048c6520, 0xc0064d8a00)
    /Users/rsavage/go/pkg/mod/github.com/go-chi/chi@v4.0.2+incompatible/mux.go:425 +0x278
net/http.HandlerFunc.ServeHTTP(0xc007774710, 0x6a46ae0, 0xc0048c6520, 0xc0064d8a00)
    /usr/local/Cellar/go/1.13.7/libexec/src/net/http/server.go:2007 +0x44
github.com/influxdata/influxdb/kit/transport/http.SetCORS.func1(0x6a46ae0, 0xc0048c6520, 0xc0064d8a00)
    /Users/rsavage/go/src/github.com/influxdata/influxdb/kit/transport/http/middleware.go:25 +0xa7
net/http.HandlerFunc.ServeHTTP(0xc007777300, 0x6a46ae0, 0xc0048c6520, 0xc0064d8a00)
    /usr/local/Cellar/go/1.13.7/libexec/src/net/http/server.go:2007 +0x44
github.com/go-chi/chi/middleware.StripSlashes.func1(0x6a46ae0, 0xc0048c6520, 0xc0064d8a00)
    /Users/rsavage/go/pkg/mod/github.com/go-chi/chi@v4.0.2+incompatible/middleware/strip.go:25 +0xee
net/http.HandlerFunc.ServeHTTP(0xc007777320, 0x6a46ae0, 0xc0048c6520, 0xc0064d8a00)
    /usr/local/Cellar/go/1.13.7/libexec/src/net/http/server.go:2007 +0x44
github.com/influxdata/influxdb/kit/transport/http.SkipOptions.func1(0x6a46ae0, 0xc0048c6520, 0xc0064d8a00)
    /Users/rsavage/go/src/github.com/influxdata/influxdb/kit/transport/http/middleware.go:63 +0xbd
net/http.HandlerFunc.ServeHTTP(0xc007777340, 0x6a46ae0, 0xc0048c6520, 0xc0064d8a00)
    /usr/local/Cellar/go/1.13.7/libexec/src/net/http/server.go:2007 +0x44
github.com/go-chi/chi.(*Mux).ServeHTTP(0xc00778a2a0, 0x6a46ae0, 0xc0048c6520, 0xc0064d8a00)
    /Users/rsavage/go/pkg/mod/github.com/go-chi/chi@v4.0.2+incompatible/mux.go:70 +0x513
github.com/influxdata/influxdb/http.(*AuthenticationHandler).ServeHTTP(0xc001daae70, 0x6a46ae0, 0xc0048c6520, 0xc0064d8900)
    /Users/rsavage/go/src/github.com/influxdata/influxdb/http/authentication_middleware.go:120 +0x2a5
github.com/influxdata/influxdb/kit/transport/http.SetCORS.func1(0x6a46ae0, 0xc0048c6520, 0xc0064d8900)
    /Users/rsavage/go/src/github.com/influxdata/influxdb/kit/transport/http/middleware.go:25 +0xa7
net/http.HandlerFunc.ServeHTTP(0xc0077d3900, 0x6a46ae0, 0xc0048c6520, 0xc0064d8900)
    /usr/local/Cellar/go/1.13.7/libexec/src/net/http/server.go:2007 +0x44
github.com/influxdata/influxdb/kit/transport/http.SkipOptions.func1(0x6a46ae0, 0xc0048c6520, 0xc0064d8900)
    /Users/rsavage/go/src/github.com/influxdata/influxdb/kit/transport/http/middleware.go:63 +0xbd
net/http.HandlerFunc.ServeHTTP(0xc0077d3920, 0x6a46ae0, 0xc0048c6520, 0xc0064d8900)
    /usr/local/Cellar/go/1.13.7/libexec/src/net/http/server.go:2007 +0x44
github.com/influxdata/influxdb/http.(*PlatformHandler).ServeHTTP(0xc0077d3960, 0x6a46ae0, 0xc0048c6520, 0xc0064d8900)
    /Users/rsavage/go/src/github.com/influxdata/influxdb/http/platform_handler.go:62 +0xe6
github.com/go-chi/chi.(*Mux).Mount.func1(0x6a46ae0, 0xc0048c6520, 0xc0064d8900)
    /Users/rsavage/go/pkg/mod/github.com/go-chi/chi@v4.0.2+incompatible/mux.go:292 +0x124
net/http.HandlerFunc.ServeHTTP(0xc0077d3d60, 0x6a46ae0, 0xc0048c6520, 0xc0064d8900)
    /usr/local/Cellar/go/1.13.7/libexec/src/net/http/server.go:2007 +0x44
github.com/go-chi/chi.(*Mux).routeHTTP(0xc007898900, 0x6a46ae0, 0xc0048c6520, 0xc0064d8900)
    /Users/rsavage/go/pkg/mod/github.com/go-chi/chi@v4.0.2+incompatible/mux.go:425 +0x278
net/http.HandlerFunc.ServeHTTP(0xc007775d20, 0x6a46ae0, 0xc0048c6520, 0xc0064d8900)
    /usr/local/Cellar/go/1.13.7/libexec/src/net/http/server.go:2007 +0x44
github.com/influxdata/influxdb/kit/transport/http.Metrics.func1.1(0x6a4cf20, 0xc006700b60, 0xc0064d8900)
    /Users/rsavage/go/src/github.com/influxdata/influxdb/kit/transport/http/middleware.go:48 +0x19f
net/http.HandlerFunc.ServeHTTP(0xc00789b9c0, 0x6a4cf20, 0xc006700b60, 0xc0064d8900)
    /usr/local/Cellar/go/1.13.7/libexec/src/net/http/server.go:2007 +0x44
github.com/influxdata/influxdb/kit/transport/http.Trace.func1.1(0x6a4cf20, 0xc006700b60, 0xc0064d8900)
    /Users/rsavage/go/src/github.com/influxdata/influxdb/kit/transport/http/middleware.go:88 +0x3a5
net/http.HandlerFunc.ServeHTTP(0xc000472600, 0x6a4cf20, 0xc006700b60, 0xc0064d8800)
    /usr/local/Cellar/go/1.13.7/libexec/src/net/http/server.go:2007 +0x44
github.com/go-chi/chi.(*Mux).ServeHTTP(0xc007898900, 0x6a4cf20, 0xc006700b60, 0xc002c16f00)
    /Users/rsavage/go/pkg/mod/github.com/go-chi/chi@v4.0.2+incompatible/mux.go:82 +0x2b2
github.com/influxdata/influxdb/http.(*Handler).ServeHTTP(0xc00789b980, 0x6a4cf20, 0xc006700b60, 0xc002c16f00)
    /Users/rsavage/go/src/github.com/influxdata/influxdb/http/handler.go:130 +0x55
net/http.serverHandler.ServeHTTP(0xc0076349a0, 0x6a4cf20, 0xc006700b60, 0xc002c16f00)
    /usr/local/Cellar/go/1.13.7/libexec/src/net/http/server.go:2802 +0xa4
net/http.(*conn).serve(0xc00788bb80, 0x6a572e0, 0xc0016fe180)
    /usr/local/Cellar/go/1.13.7/libexec/src/net/http/server.go:1890 +0x875
created by net/http.(*Server).Serve
    /usr/local/Cellar/go/1.13.7/libexec/src/net/http/server.go:2928 +0x384
docmerlin commented 4 years ago

Some triage:

https://github.com/influxdata/influxdb/blob/9f71cad96629fc47ce99d79bcfe9e0ad5c4e3028/http/check_service.go#L380

Should be f.Org = &orgNameStr not *f.Org = orgNameStr