Skip to content

Remote Write 2.0 panics with an incorrect symbols table #17149

@roidelapluie

Description

@roidelapluie

What did you do?

Ran an invalid query, with an empty symbols table

What did you expect to see?

HTTP 400

What did you see instead? Under which circumstances?

Prometheus panics

System information

Linux 6.15.8 x86_64

Prometheus version

prometheus, version 3.5.0 (branch: main, revision: 43c1535bdfdd6368d01513459cf5790af8b50f05)
  build user:       reproducible@reproducible
  build date:       19800101-00:00:00
  go version:       go1.25.0
  platform:         linux/amd64
  tags:             netgo,builtinassets

Prometheus configuration file

Alertmanager version


Alertmanager configuration file

Logs

time=2025-09-05T12:08:20.981+02:00 level=ERROR source=server.go:3677 msg="http: panic serving [::1]:45162: runtime error: index out of range [15] with length 15\ngoroutine 721 [running]:\nnet/http
.(*conn).serve.func1()\n\t/nix/store/x322dk8vnsfbr9p31175zhqcc9534iql-go-1.25.0/share/go/src/net/http/server.go:1943 +0xd3\npanic({0x4fe0b20?, 0xc0018f40f0?})\n\t/nix/store/x322dk8vnsfbr9p31175zhq
cc9534iql-go-1.25.0/share/go/src/runtime/panic.go:783 +0x132\ngithub.com/prometheus/prometheus/web.(*Handler).Run.withStackTracer.func9.1()\n\t/home/roidelapluie/dev/prometheus/web/web.go:125 +0x1
d4\npanic({0x4fe0b20?, 0xc0018f40f0?})\n\t/nix/store/x322dk8vnsfbr9p31175zhqcc9534iql-go-1.25.0/share/go/src/runtime/panic.go:783 +0x132\ngithub.com/prometheus/prometheus/prompb/io/prometheus/writ
e/v2.desymbolizeLabels(0xc000df4710, {0xc0018f40d8, 0x6, 0x7?}, {0xc00023ad00, 0xf, 0x0?})\n\t/home/roidelapluie/dev/prometheus/prompb/io/prometheus/write/v2/symbols.go:79 +0x205\ngithub.com/prome
theus/prometheus/prompb/io/prometheus/write/v2.TimeSeries.ToLabels(...)\n\t/home/roidelapluie/dev/prometheus/prompb/io/prometheus/write/v2/codec.go:29\ngithub.com/prometheus/prometheus/storage/rem
ote.(*writeHandler).appendV2(0xc00062a960, {0x5e530c0, 0xc000198648}, 0xc00080c4b0, 0xc000df4b10)\n\t/home/roidelapluie/dev/prometheus/storage/remote/write_handler.go:391 +0x1db\ngithub.com/promet
heus/prometheus/storage/remote.(*writeHandler).writeV2(0xc00062a960, {0x5e34140?, 0xc000f1d650?}, 0xc00080c4b0)\n\t/home/roidelapluie/dev/prometheus/storage/remote/write_handler.go:353 +0x149\ngit
hub.com/prometheus/prometheus/storage/remote.(*writeHandler).ServeHTTP(0xc00062a960, {0x7fffb0c8aed8, 0xc00080c460}, 0xc0004d92c0)\n\t/home/roidelapluie/dev/prometheus/storage/remote/write_handler
.go:212 +0x725\ngithub.com/prometheus/prometheus/web/api/v1.(*API).remoteWrite(0xc000f1d6b0?, {0x7fffb0c8aed8?, 0xc00080c460?}, 0x47e49a?)\n\t/home/roidelapluie/dev/prometheus/web/api/v1/api.go:19
11 +0x32\ngithub.com/prometheus/prometheus/web.(*Handler).testReady-fm.(*Handler).testReady.func1({0x7fffb0c8aed8, 0xc00080c460}, 0xc0004d92c0)\n\t/home/roidelapluie/dev/prometheus/web/web.go:618
+0x11e\nnet/http.HandlerFunc.ServeHTTP(0x824f5d0?, {0x7fffb0c8aed8?, 0xc00080c460?}, 0x0?)\n\t/nix/store/x322dk8vnsfbr9p31175zhqcc9534iql-go-1.25.0/share/go/src/net/http/server.go:2322 +0x29\ngith
ub.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerResponseSize.func1({0x7fffb0c8aed8?, 0xc00080c410?}, 0xc0004d92c0)\n\t/home/roidelapluie/go/pkg/mod/github.com/prometheus/clien
[email protected]/prometheus/promhttp/instrument_server.go:296 +0xcf\nnet/http.HandlerFunc.ServeHTTP(0x7fffb12a1cc8?, {0x7fffb0c8aed8?, 0xc00080c410?}, 0xc000108808?)\n\t/nix/store/x322dk8vnsf
br9p31175zhqcc9534iql-go-1.25.0/share/go/src/net/http/server.go:2322 +0x29\ngithub.com/prometheus/client_golang/prometheus/promhttp.InstrumentHandlerDuration.func2({0x7fffb0c8aed8, 0xc00080c410},
0xc0004d92c0)\n\t/home/roidelapluie/go/pkg/mod/github.com/prometheus/[email protected]/prometheus/promhttp/instrument_server.go:109 +0xc5\nnet/http.HandlerFunc.ServeHTTP(0x824f590?, {0x7f
ffb0c8aed8?, 0xc00080c410?}, 0xc0007492c8?)\n\t/nix/store/x322dk8vnsfbr9p31175zhqcc9534iql-go-1.25.0/share/go/src/net/http/server.go:2322 +0x29\ngithub.com/prometheus/client_golang/prometheus/prom
http.InstrumentHandlerCounter.func1({0x5e243f0?, 0xc00120e480?}, 0xc0004d92c0)\n\t/home/roidelapluie/go/pkg/mod/github.com/prometheus/[email protected]/prometheus/promhttp/instrument_serv
er.go:147 +0xc3\ngithub.com/prometheus/prometheus/web.(*Handler).Run.setPathWithPrefix.func5.1({0x5e243f0, 0xc00120e480}, 0xc0004d9180)\n\t/home/roidelapluie/dev/prometheus/web/web.go:907 +0xb3\ng
ithub.com/prometheus/common/route.(*Router).handle.func1({0x5e243f0, 0xc00120e480}, 0xc0004d9040, {0x0, 0x0, 0x0?})\n\t/home/roidelapluie/go/pkg/mod/github.com/prometheus/[email protected]/route/rout
e.go:83 +0x1e9\ngithub.com/julienschmidt/httprouter.(*Router).ServeHTTP(0xc0006e8240, {0x5e243f0, 0xc00120e480}, 0xc0004d9040)\n\t/home/roidelapluie/go/pkg/mod/github.com/julienschmidt/httprouter@
v1.3.0/router.go:387 +0x815\ngithub.com/prometheus/common/route.(*Router).ServeHTTP(0x0?, {0x5e243f0?, 0xc00120e480?}, 0x7?)\n\t/home/roidelapluie/go/pkg/mod/github.com/prometheus/[email protected]/r
oute/route.go:126 +0x25\ngithub.com/prometheus/prometheus/web.(*Handler).Run.StripPrefix.func7({0x5e243f0, 0xc00120e480}, 0xc0004d8f00)\n\t/nix/store/x322dk8vnsfbr9p31175zhqcc9534iql-go-1.25.0/sha
re/go/src/net/http/server.go:2384 +0x262\nnet/http.HandlerFunc.ServeHTTP(0xc000170000?, {0x5e243f0?, 0xc00120e480?}, 0xc000749698?)\n\t/nix/store/x322dk8vnsfbr9p31175zhqcc9534iql-go-1.25.0/share/g
o/src/net/http/server.go:2322 +0x29\nnet/http.(*ServeMux).ServeHTTP(0x5e34140?, {0x5e243f0, 0xc00120e480}, 0xc0004d8f00)\n\t/nix/store/x322dk8vnsfbr9p31175zhqcc9534iql-go-1.25.0/share/go/src/net/h
ttp/server.go:2861 +0x1c7\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.(*middleware).serveHTTP(0xc0008c2000, {0x5e17a20, 0xc000d300f0}, 0xc0004d8b40, {0x5dd2980, 0xc000170000})\n
\t/home/roidelapluie/go/pkg/mod/go.opentelemetry.io/contrib/instrumentation/net/http/[email protected]/handler.go:180 +0x1303\ngo.opentelemetry.io/contrib/instrumentation/net/http/otelhttp.NewMiddl
eware.func1.1({0x5e17a20?, 0xc000d300f0?}, 0xc000930b28?)\n\t/home/roidelapluie/go/pkg/mod/go.opentelemetry.io/contrib/instrumentation/net/http/[email protected]/handler.go:67 +0x35\nnet/http.Handl
erFunc.ServeHTTP(0xc000628400?, {0x5e17a20?, 0xc000d300f0?}, 0xc000930b38?)\n\t/nix/store/x322dk8vnsfbr9p31175zhqcc9534iql-go-1.25.0/share/go/src/net/http/server.go:2322 +0x29\ngithub.com/promethe
us/prometheus/web.(*Handler).Run.withStackTracer.func9({0x5e17a20?, 0xc000d300f0?}, 0x4bb953?)\n\t/home/roidelapluie/dev/prometheus/web/web.go:128 +0x6b\nnet/http.HandlerFunc.ServeHTTP(0x41d9e5?,
{0x5e17a20?, 0xc000d300f0?}, 0xc000d30001?)\n\t/nix/store/x322dk8vnsfbr9p31175zhqcc9534iql-go-1.25.0/share/go/src/net/http/server.go:2322 +0x29\nnet/http.serverHandler.ServeHTTP({0x5de70f0?}, {0x5
e17a20?, 0xc000d300f0?}, 0x1?)\n\t/nix/store/x322dk8vnsfbr9p31175zhqcc9534iql-go-1.25.0/share/go/src/net/http/server.go:3340 +0x8e\nnet/http.(*conn).serve(0xc000df8240, {0x5e34140, 0xc0008ca0f0})\
n\t/nix/store/x322dk8vnsfbr9p31175zhqcc9534iql-go-1.25.0/share/go/src/net/http/server.go:2109 +0x665\ncreated by net/http.(*Server).Serve in goroutine 481\n\t/nix/store/x322dk8vnsfbr9p31175zhqcc95
34iql-go-1.25.0/share/go/src/net/http/server.go:3493 +0x485" component=web

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions