influxdata / influxdata/influxdb
UnmarshalBinary panic: index out of range
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 31.7k
- Forks
- 3.7k
- Avg merge
- 13h 37m
- Merged PRs (30d)
- 8
Description
__Environment info:__
* System info: Windows 10
* InfluxDB version: 1.7.10
* Running without problems for several months
#### Starting InfluxDB
```
panic: runtime error: index out of range
goroutine 39 [running]:
github.com/influxdata/influxdb/tsdb/engine/tsm1.(*indirectIndex).UnmarshalBinary(0xc0007363f0, 0x100000000, 0x80000f25, 0x80000f2d, 0x0, 0x0)
/go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/reader.go:1262 +0x8d3 github.com/influxdata/influxdb/tsdb/engine/tsm1.(*mmapAccessor).init(0xc000654a20, 0x0, 0x0, 0x0)
/go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/reader.go:1359 +0x337
github.com/influxdata/influxdb/tsdb/engine/tsm1.NewTSMReader(0xc000618000, 0xc000f3ba80, 0x1, 0x1, 0x153fad2, 0x6, 0x0)
/go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/reader.go:239 +0x19b
github.com/influxdata/influxdb/tsdb/engine/tsm1.(*FileStore).Open.func1(0xc000152000, 0xc00046e000, 0x0, 0xc000618000)
/go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/file_store.go:535 +0x11d
created by github.com/influxdata/influxdb/tsdb/engine/tsm1.(*FileStore).Open
/go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/file_store.go:527 +0x436
```
#### Running influx-inspect:
```
panic: runtime error: index out of range
goroutine 1 [running]:
github.com/influxdata/influxdb/tsdb/engine/tsm1.(*indirectIndex).UnmarshalBinary(0xc000102480, 0x7fff0000, 0x80000d8b, 0x80000d93, 0x0, 0x0)
/go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/reader.go:1262 +0x8d3
github.com/influxdata/influxdb/tsdb/engine/tsm1.(*mmapAccessor).init(0xc0000ac360, 0x0, 0x0, 0x0)
/go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/reader.go:1359 +0x337
github.com/influxdata/influxdb/tsdb/engine/tsm1.NewTSMReader(0xc00009e028, 0x0, 0x0, 0x0, 0xc00009e028, 0x0, 0x0)
/go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/reader.go:239 +0x19b
github.com/influxdata/influxdb/cmd/influx_inspect/verify/tsm.(*Command).Run(0xc000069080, 0xc00006e0e0, 0x2, 0x2, 0x1, 0xc00006e0e0)
/go/src/github.com/influxdata/influxdb/cmd/influx_inspect/verify/tsm/verify.go:77 +0xa54
main.(*Main).Run(0xc00009df50, 0xc00006e0e0, 0x2, 0x2, 0x9a6c42, 0xace200)
/go/src/github.com/influxdata/influxdb/cmd/influx_inspect/main.go:107 +0x813
main.main()
/go/src/github.com/influxdata/influxdb/cmd/influx_inspect/main.go:27 +0x159
```
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in tsdb/engine/tsm1/reader.go at indirectIndex.UnmarshalBinary line 1262 and follow mmapAccessor.init. Run influx_inspect verify/tsm against an affected TSM file, then check startup through FileStore.Open. Done means the affected input no longer causes an index-out-of-range panic and the command or server reports the problem safely.
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
- 25/100