Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Data race between FileStore and Tombstoner in tsm1 #20622

Closed
danxmoran opened this issue Jan 27, 2021 · 1 comment · Fixed by #20773
Closed

Data race between FileStore and Tombstoner in tsm1 #20622

danxmoran opened this issue Jan 27, 2021 · 1 comment · Fixed by #20773
Assignees
Labels
area/storage area/2.x OSS 2.0 related issues and PRs kind/bug

Comments

@danxmoran
Copy link
Contributor

Exposed by CI here. The race was:

WARNING: DATA RACE
Write at 0x00c00010ef60 by goroutine 151:
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Tombstoner).TombstoneFiles()
      /home/circleci/go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/tombstone.go:216 +0x430
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*TSMReader).TombstoneFiles()
      /home/circleci/go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/reader.go:547 +0x6b
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*FileStore).CreateSnapshot()
      /home/circleci/go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/file_store.go:1087 +0x722
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).CreateSnapshot()
      /home/circleci/go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1883 +0x1ce
  github.com/influxdata/influxdb/v2/tsdb.(*Shard).CreateSnapshot()
      /home/circleci/go/src/github.com/influxdata/influxdb/tsdb/shard.go:1141 +0xa6
  github.com/influxdata/influxdb/v2/tsdb_test.TestShard_WritePoints_FieldConflictConcurrent.func2()
      /home/circleci/go/src/github.com/influxdata/influxdb/tsdb/shard_test.go:434 +0x1ca

Previous read at 0x00c00010ef60 by goroutine 404:
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*FileStore).CreateSnapshot()
      /home/circleci/go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/file_store.go:1087 +0x7ca
  github.com/influxdata/influxdb/v2/tsdb/engine/tsm1.(*Engine).CreateSnapshot()
      /home/circleci/go/src/github.com/influxdata/influxdb/tsdb/engine/tsm1/engine.go:1883 +0x1ce
  github.com/influxdata/influxdb/v2/tsdb.(*Shard).CreateSnapshot()
      /home/circleci/go/src/github.com/influxdata/influxdb/tsdb/shard.go:1141 +0xa6
  github.com/influxdata/influxdb/v2/tsdb_test.TestShard_WritePoints_FieldConflictConcurrent.func1()
      /home/circleci/go/src/github.com/influxdata/influxdb/tsdb/shard_test.go:418 +0x1a4

Goroutine 151 (running) created at:
  github.com/influxdata/influxdb/v2/tsdb_test.TestShard_WritePoints_FieldConflictConcurrent()
      /home/circleci/go/src/github.com/influxdata/influxdb/tsdb/shard_test.go:425 +0xe97
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:1123 +0x202

Goroutine 404 (running) created at:
  github.com/influxdata/influxdb/v2/tsdb_test.TestShard_WritePoints_FieldConflictConcurrent()
      /home/circleci/go/src/github.com/influxdata/influxdb/tsdb/shard_test.go:409 +0xe31
  testing.tRunner()
      /usr/local/go/src/testing/testing.go:1123 +0x202
@danxmoran
Copy link
Contributor Author

I made #20780 to track backporting this for 1.9. @psteinbachs should we also include this fix in 1.8.5?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/storage area/2.x OSS 2.0 related issues and PRs kind/bug
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant