influxdata / influxdata/influxdb

panic: interface conversion: tsm1.Value

Open
#24,155 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
31.7k
Forks
3.7k
Avg merge
13h 37m
Merged PRs (30d)
8

Description

It looks like same issue as #8085

You not prevent two different field types for the same measurement.

```
service=storage-reads error="panic: interface conversion: tsm1.Value is tsm1.FloatValue, not tsm1.StringValue" stacktrace="goroutine 9515 [running]:
runtime/debug.Stack()
/go/src/runtime/debug/stack.go:24 +0x68
github.com/influxdata/flux/execute.(*executionState).recover(0x40022099e0)
/go/pkg/mod/github.com/influxdata/flux@v0.191.0/execute/recover.go:32 +0x1e0
panic({0x7f9d6e7e80, 0x40054d6c60})
/go/src/runtime/panic.go:838 +0x204
github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*stringArrayAscendingCursor).Next(0x4004c60730)
/root/project/tsdb/engine/tsm1/array_cursor.gen.go:977 +0x6e0
github.com/influxdata/influxdb/v2/storage/reads.(*stringMultiShardArrayCursor).Next(0x40006a53c8)
/root/project/storage/reads/array_cursor.gen.go:2942 +0x3c
github.com/influxdata/influxdb/v2/storage/flux.(*stringTable).advance(0x4002703340)
/root/project/storage/flux/table.gen.go:3034 +0x34
github.com/influxdata/influxdb/v2/storage/flux.(*table).init(...)
/root/project/storage/flux/table.go:74
github.com/influxdata/influxdb/v2/storage/flux.newStringTable(0x400286f440, {0x7f640d4908?, 0x40006a53c8}, {0x5?, 0x8?}, {0x7f9da9fea8, 0x4004c608c0}, {0x4003852090, 0x6, 0x6}, ...)
/root/project/storage/flux/table.gen.go:3001 +0x250
github.com/influxdata/influxdb/v2/storage/flux.(*filterIterator).handleRead(0x4002b72fc0, 0x40018764c0, {0x7f9da94a10, 0x40021e4d00})
/root/project/storage/flux/reader.go:221 +0x544
github.com/influxdata/influxdb/v2/storage/flux.(*filterIterator).Do(0x4002b72fc0, 0x7f9d935ac0?)
/root/project/storage/flux/reader.go:174 +0x130
github.com/influxdata/influxdb/v2/query/stdlib/influxdata/influxdb.(*Source).processTables(0x400492a780, {0x7f9da88858?, 0x40054d6360}, {0x7f9da7c0c0, 0x4002b72fc0}, 0x174fa2054d6dc738?)
/root/project/query/stdlib/influxdata/influxdb/source.go:69 +0xb8
github.com/influxdata/influxdb/v2/query/stdlib/influxdata/influxdb.(*readFilterSource).run(0x400492a780, {0x7f9da88858, 0x40054d6360})
/root/project/query/stdlib/influxdata/influxdb/source.go:146 +0xb8
github.com/influxdata/influxdb/v2/query/stdlib/influxdata/influxdb.(*Source).Run(0x400492a780, {0x7f9da88858, 0x40054d6360})
/root/project/query/stdlib/influxdata/influxdb/source.go:50 +0x7c
github.com/influxdata/flux/execute.(*executionState).do.func2({0x7f9da8a7d8?, 0x400492a780})
/go/pkg/mod/github.com/influxdata/flux@v0.191.0/execute/executor.go:535 +0x310
created by github.com/influxdata/flux/execute.(*executionState).do
/go/pkg/mod/github.com/influxdata/flux@v0.191.0/execute/executor.go:515 +0x398

```
Linux 6.1.19-v8+ aarch64
InfluxDB v2.6.1 (git: 9dcf880fe0) build_date: 2022-12-29T15:52:06Z

Contributor guide

Open the contributing guide

Research direction

Start with the related issue #8085 and the stack trace entry at tsdb/engine/tsm1/array_cursor.gen.go in stringArrayAscendingCursor.Next, then trace how values reach storage/reads/array_cursor.gen.go and storage/flux/table.gen.go. Done means different field types for the same measurement no longer cause this interface-conversion panic.

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
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.