Skip to content

Possible data race in tsi1 package #19664

@stuartcarnie

Description

@stuartcarnie

What

CircleCI reported the following data race running the TestShard_WritePoints_FieldConflictConcurrent test:

Failed
=== RUN   TestShard_WritePoints_FieldConflictConcurrent
==================
WARNING: DATA RACE
Write at 0x00c000a00090 by goroutine 336:
  runtime.mapassign_faststr()
      /usr/local/go/src/runtime/map_faststr.go:202 +0x0
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*LogFile).execDeleteTagValueEntry()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/log_file.go:663 +0x48e
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*LogFile).execEntry()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/log_file.go:633 +0x87
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*LogFile).DeleteTagValue()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/log_file.go:510 +0x1d9
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Partition).DropMeasurement.func2()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/partition.go:610 +0x1d5
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Partition).DropMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/partition.go:611 +0x2ab
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Index).DropMeasurement.func1()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/index.go:609 +0x84

Previous read at 0x00c000a00090 by goroutine 439:
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*logTagKey).TagValueIterator()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/log_file.go:1365 +0x8a
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.tagKeyMergeElem.TagValueIterator()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/tsi1.go:271 +0x101
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*tagKeyMergeElem).TagValueIterator()
      <autogenerated>:1 +0x76
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Partition).DropMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/partition.go:604 +0x1b7
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Index).DropMeasurement.func1()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/index.go:609 +0x84

Goroutine 336 (running) created at:
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Index).DropMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/index.go:603 +0x17d
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Index).DropMeasurementIfSeriesNotExist()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/index.go:841 +0xca
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).deleteSeriesRange()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1734 +0xdf7
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).DeleteSeriesRangeWithPredicate()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1495 +0x904
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).DeleteSeriesRange()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1387 +0x91
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).DeleteMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1832 +0x324
  github.com/influxdata/influxdb/v2/tsdb.(*Shard).DeleteMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/shard.go:743 +0xb0
  github.com/influxdata/influxdb/v2/tsdb_test.TestShard_WritePoints_FieldConflictConcurrent.func2()
      /go/src/github.com/influxdata/influxdb/tsdb/shard_test.go:471 +0x104

Goroutine 439 (running) created at:
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Index).DropMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/index.go:603 +0x17d
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Index).DropMeasurementIfSeriesNotExist()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/index.go:841 +0xca
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).deleteSeriesRange()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1734 +0xdf7
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).DeleteSeriesRangeWithPredicate()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1495 +0x904
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).DeleteSeriesRange()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1387 +0x91
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).DeleteMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1832 +0x324
  github.com/influxdata/influxdb/v2/tsdb.(*Shard).DeleteMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/shard.go:743 +0xb0
  github.com/influxdata/influxdb/v2/tsdb_test.TestShard_WritePoints_FieldConflictConcurrent.func1()
      /go/src/github.com/influxdata/influxdb/tsdb/shard_test.go:455 +0x104
==================
==================
WARNING: DATA RACE
Write at 0x00c00036fdc8 by goroutine 336:
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*LogFile).execDeleteTagValueEntry()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/log_file.go:663 +0x4af
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*LogFile).execEntry()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/log_file.go:633 +0x87
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*LogFile).DeleteTagValue()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/log_file.go:510 +0x1d9
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Partition).DropMeasurement.func2()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/partition.go:610 +0x1d5
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Partition).DropMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/partition.go:611 +0x2ab
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Index).DropMeasurement.func1()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/index.go:609 +0x84

Previous read at 0x00c00036fdc8 by goroutine 439:
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*logTagKey).TagValueIterator()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/log_file.go:1366 +0x1a7
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.tagKeyMergeElem.TagValueIterator()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/tsi1.go:271 +0x101
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*tagKeyMergeElem).TagValueIterator()
      <autogenerated>:1 +0x76
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Partition).DropMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/partition.go:604 +0x1b7
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Index).DropMeasurement.func1()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/index.go:609 +0x84

Goroutine 336 (running) created at:
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Index).DropMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/index.go:603 +0x17d
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Index).DropMeasurementIfSeriesNotExist()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/index.go:841 +0xca
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).deleteSeriesRange()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1734 +0xdf7
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).DeleteSeriesRangeWithPredicate()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1495 +0x904
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).DeleteSeriesRange()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1387 +0x91
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).DeleteMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1832 +0x324
  github.com/influxdata/influxdb/v2/tsdb.(*Shard).DeleteMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/shard.go:743 +0xb0
  github.com/influxdata/influxdb/v2/tsdb_test.TestShard_WritePoints_FieldConflictConcurrent.func2()
      /go/src/github.com/influxdata/influxdb/tsdb/shard_test.go:471 +0x104

Goroutine 439 (running) created at:
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Index).DropMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/index.go:603 +0x17d
  github.com/influxdata/influxdb/v2/tsdb/index/tsi1.(*Index).DropMeasurementIfSeriesNotExist()
      /go/src/github.com/influxdata/influxdb/tsdb/index/tsi1/index.go:841 +0xca
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).deleteSeriesRange()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1734 +0xdf7
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).DeleteSeriesRangeWithPredicate()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1495 +0x904
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).DeleteSeriesRange()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1387 +0x91
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).DeleteMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1832 +0x324
  github.com/influxdata/influxdb/v2/tsdb.(*Shard).DeleteMeasurement()
      /go/src/github.com/influxdata/influxdb/tsdb/shard.go:743 +0xb0
  github.com/influxdata/influxdb/v2/tsdb_test.TestShard_WritePoints_FieldConflictConcurrent.func1()
      /go/src/github.com/influxdata/influxdb/tsdb/shard_test.go:455 +0x104
==================
    testing.go:1042: race detected during execution of test
--- FAIL: TestShard_WritePoints_FieldConflictConcurrent (2.10s)

Metadata

Metadata

Labels

1.xarea/2.xOSS 2.0 related issues and PRsflaky testThis is a flaky test. These issues should be groomed at the next opportunitykind/bugteam/storage

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions