influxdata / influxdata/influxdb
Crash when looking at Graylog status page on Grafana
- Dominant language
- Rust
- Stars
- 31.7k
- Forks
- 3.7k
- Avg merge
- 13h 37m
- Merged PRs (30d)
- 8
Description
__Expected behavior:__
Influx shouldn't crash
__Actual behavior:__
Graylog crashed two times on opening the same Grafana Dashboard
__Environment info:__
* System info: Debian 11
* InfluxDB version: 2.1.1
__Config:__
Copy any non-default config values here or attach the full config as a gist or file.
__Logs:__
The last query executed:
```
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: ts=2023-09-07T15:52:54.968231Z lvl=info msg="Executing query" log_id=0k0HgnPl000 service=query query="SELECT max(rate_one_minute) FROM graylog.autogen./^org\\.gray
```
The Error log:
```
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: panic: runtime error: invalid memory address or nil pointer dereference
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: [signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0xc1fc0f]
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: goroutine 2970798915 [running]:
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: github.com/influxdata/influxdb/v2/influxql/query.Iterators.Close({0xc062ba0480, 0x16, 0x47})
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: /home/circleci/go/src/github.com/influxdata/influxdb/influxql/query/iterator.go:48 +0x4f
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: github.com/influxdata/influxdb/v2/v1/coordinator.(*LocalShardMapping).CreateIterator(_, {_, _}, _, {0xa19ccdcbe4115d19, {0x4079bc0, 0xc0d634e090}, {0x0, 0x0, 0x0},
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: /home/circleci/go/src/github.com/influxdata/influxdb/v1/coordinator/shard_mapper.go:214 +0x377
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: github.com/influxdata/influxdb/v2/influxql/query.(*exprIteratorBuilder).callIterator.func1(0xc014e39ac8, {0x40a6bc0, 0xc04c2adf50}, 0xc014e38a98, 0xc014e38a70, 0xc
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: /home/circleci/go/src/github.com/influxdata/influxdb/influxql/query/select.go:614 +0x3a4
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: github.com/influxdata/influxdb/v2/influxql/query.(*exprIteratorBuilder).callIterator(_, {_, _}, _, {0xa19ccdcbe4115d19, {0x4079bc0, 0xc0d634e090}, {0x0, 0x0, 0x0},
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: /home/circleci/go/src/github.com/influxdata/influxdb/influxql/query/select.go:639 +0xbf
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: github.com/influxdata/influxdb/v2/influxql/query.(*exprIteratorBuilder).buildCallIterator.func1(0xc0baf72c38, {0x40a6bc0, 0xc04c2adf50}, 0x101b480, 0xc0baf73180)
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: /home/circleci/go/src/github.com/influxdata/influxdb/influxql/query/select.go:546 +0x6e5
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: github.com/influxdata/influxdb/v2/influxql/query.(*exprIteratorBuilder).buildCallIterator(0xc014e39ac8, {0x40a6bc0, 0xc04c2adf50}, 0xc0d634e090)
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: /home/circleci/go/src/github.com/influxdata/influxdb/influxql/query/select.go:590 +0x214f
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: github.com/influxdata/influxdb/v2/influxql/query.buildExprIterator({_, _}, {_, _}, {_, _}, {_, _, _}, {0xa19ccdcbe4115d19, ...}, ...)
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: /home/circleci/go/src/github.com/influxdata/influxdb/influxql/query/select.go:185 +0x178
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: github.com/influxdata/influxdb/v2/influxql/query.buildFieldIterator({_, _}, {_, _}, {_, _}, {_, _, _}, {0xa19ccdcbe4115d19, ...}, ...)
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: /home/circleci/go/src/github.com/influxdata/influxdb/influxql/query/select.go:862 +0xc5
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: github.com/influxdata/influxdb/v2/influxql/query.buildCursor.func1()
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: /home/circleci/go/src/github.com/influxdata/influxdb/influxql/query/select.go:766 +0x165
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: golang.org/x/sync/errgroup.(*Group).Go.func1()
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: /home/circleci/go/pkg/mod/golang.org/x/sync@v0.0.0-20210220032951-036812b2e83c/errgroup/errgroup.go:57 +0x67
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: created by golang.org/x/sync/errgroup.(*Group).Go
Sep 07 17:52:54 mgmtdus1 influxd-systemd-start.sh[46290]: /home/circleci/go/pkg/mod/golang.org/x/sync@v0.0.0-20210220032951-036812b2e83c/errgroup/errgroup.go:54 +0x92
Sep 07 17:52:55 mgmtdus1 systemd[1]: influxdb.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Sep 07 17:52:55 mgmtdus1 systemd[1]: influxdb.service: Failed with result 'exit-code'.
```
Contributor guide
Research direction
Begin with influxql/query/iterator.go:48 and trace iterator cleanup through v1/coordinator/shard_mapper.go:214 and influxql/query/select.go:546-862. Reproduce the reported Graylog Grafana query on InfluxDB 2.1.1 and verify that opening the dashboard no longer causes the nil-pointer panic or service exit.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100