influxdata / influxdata/influxdb

UnmarshalBinary panic: index out of range

Open
#21,250 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.