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

Fixes race condition in tailer since logql v2. #2917

Merged
merged 1 commit into from
Nov 11, 2020

Conversation

cyriltovena
Copy link
Contributor

Signed-off-by: Cyril Tovena cyril.tovena@gmail.com

before:

Click to expand!
 go test -race github.com/grafana/loki/pkg/ingester -run Test_TailerSendRace
==================
WARNING: DATA RACE
Read at 0x00c0005b9120 by goroutine 98:
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0xa6
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c0005b9120 by goroutine 97:
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x146
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 98 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Read at 0x00c0005b9120 by goroutine 99:
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0xa6
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c0005b9120 by goroutine 97:
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x146
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 99 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Write at 0x00c000298400 by goroutine 98:
  runtime.slicestringcopy()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/slice.go:281 +0x0
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:183 +0x1f3
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c000298400 by goroutine 97:
  runtime.slicestringcopy()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/slice.go:281 +0x0
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:183 +0x1f3
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 98 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Write at 0x00c000298400 by goroutine 99:
  runtime.slicestringcopy()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/slice.go:281 +0x0
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:183 +0x1f3
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c000298400 by goroutine 97:
  runtime.slicestringcopy()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/slice.go:281 +0x0
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:183 +0x1f3
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 99 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Write at 0x00c000298403 by goroutine 98:
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:184 +0x23a
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c000298403 by goroutine 97:
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:184 +0x23a
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 98 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Write at 0x00c000298403 by goroutine 100:
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:184 +0x23a
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c000298403 by goroutine 97:
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:184 +0x23a
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 100 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Write at 0x00c000298407 by goroutine 101:
  runtime.slicestringcopy()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/slice.go:281 +0x0
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:185 +0x304
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c000298407 by goroutine 98:
  runtime.slicestringcopy()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/slice.go:281 +0x0
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:185 +0x304
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 101 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 98 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Write at 0x00c000298408 by goroutine 98:
  runtime.slicestringcopy()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/slice.go:281 +0x0
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:185 +0x304
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c000298408 by goroutine 97:
  runtime.slicestringcopy()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/slice.go:281 +0x0
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:185 +0x304
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 98 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Write at 0x00c000298403 by goroutine 99:
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:184 +0x23a
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c000298403 by goroutine 97:
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:184 +0x23a
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 99 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Write at 0x00c00029840d by goroutine 101:
  runtime.slicestringcopy()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/slice.go:281 +0x0
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:185 +0x304
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c00029840d by goroutine 97:
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:186 +0x34f
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 101 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Write at 0x00c000298406 by goroutine 100:
  runtime.slicestringcopy()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/slice.go:281 +0x0
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:185 +0x304
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c000298406 by goroutine 101:
  runtime.slicestringcopy()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/slice.go:281 +0x0
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:185 +0x304
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 100 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 101 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Write at 0x00c000298418 by goroutine 98:
  runtime.slicestringcopy()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/slice.go:281 +0x0
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:185 +0x304
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c00029841f by goroutine 97:
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:186 +0x34f
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 98 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Write at 0x00c000298415 by goroutine 101:
  runtime.slicestringcopy()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/slice.go:281 +0x0
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:183 +0x1f3
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c000298415 by goroutine 98:
  github.com/prometheus/prometheus/pkg/labels.Labels.HashWithoutLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/vendor/github.com/prometheus/prometheus/pkg/labels/labels.go:184 +0x23a
  github.com/grafana/loki/pkg/logql/log.(*hasher).Hash()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:58 +0x104
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:101 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 101 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 98 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Read at 0x00c00055f200 by goroutine 99:
  runtime.mapaccess2_fast64()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/map_fast64.go:52 +0x0
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:102 +0x1c6
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c00055f200 by goroutine 97:
  runtime.mapassign_fast64()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/map_fast64.go:92 +0x0
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:110 +0x384
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 99 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Read at 0x00c00055f1d0 by goroutine 100:
  runtime.mapaccess2_fast64()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/map_fast64.go:52 +0x0
  github.com/grafana/loki/pkg/logql/log.(*BaseLabelsBuilder).ForLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:107 +0x92
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:108 +0x25e
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c00055f1d0 by goroutine 97:
  runtime.mapassign_fast64()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/map_fast64.go:92 +0x0
  github.com/grafana/loki/pkg/logql/log.(*BaseLabelsBuilder).ForLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:116 +0x374
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:108 +0x25e
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 100 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Read at 0x00c00055f1d0 by goroutine 52:
  runtime.mapaccess2_fast64()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/map_fast64.go:52 +0x0
  github.com/grafana/loki/pkg/logql/log.(*BaseLabelsBuilder).ForLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:107 +0x92
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:108 +0x25e
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c00055f1d0 by goroutine 97:
  runtime.mapassign_fast64()
      /usr/local/Cellar/go/1.15.2/libexec/src/runtime/map_fast64.go:92 +0x0
  github.com/grafana/loki/pkg/logql/log.(*BaseLabelsBuilder).ForLabels()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:116 +0x374
  github.com/grafana/loki/pkg/logql/log.(*pipeline).ForStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:108 +0x25e
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:160 +0x265
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 52 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Read at 0x00c0002e9ce0 by goroutine 99:
  github.com/grafana/loki/pkg/logql/log.(*LabelsBuilder).Reset()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:127 +0xa4
  github.com/grafana/loki/pkg/logql/log.(*streamPipeline).Process()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:116 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:162 +0x389
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c0002e9ce0 by goroutine 97:
  github.com/grafana/loki/pkg/logql/log.(*LabelsBuilder).Reset()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:127 +0xd1
  github.com/grafana/loki/pkg/logql/log.(*streamPipeline).Process()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:116 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:162 +0x389
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 99 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Read at 0x00c0002e9cf8 by goroutine 99:
  github.com/grafana/loki/pkg/logql/log.(*LabelsBuilder).Reset()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:128 +0x10a
  github.com/grafana/loki/pkg/logql/log.(*streamPipeline).Process()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:116 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:162 +0x389
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c0002e9cf8 by goroutine 97:
  github.com/grafana/loki/pkg/logql/log.(*LabelsBuilder).Reset()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:128 +0x13b
  github.com/grafana/loki/pkg/logql/log.(*streamPipeline).Process()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:116 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:162 +0x389
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 99 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Read at 0x00c0002e9cf8 by goroutine 100:
  github.com/grafana/loki/pkg/logql/log.(*LabelsBuilder).Reset()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:128 +0x10a
  github.com/grafana/loki/pkg/logql/log.(*streamPipeline).Process()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:116 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:162 +0x389
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c0002e9cf8 by goroutine 97:
  github.com/grafana/loki/pkg/logql/log.(*LabelsBuilder).Reset()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:128 +0x13b
  github.com/grafana/loki/pkg/logql/log.(*streamPipeline).Process()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:116 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:162 +0x389
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 100 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Write at 0x00c0002e9d10 by goroutine 99:
  github.com/grafana/loki/pkg/logql/log.(*LabelsBuilder).Reset()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:129 +0x184
  github.com/grafana/loki/pkg/logql/log.(*streamPipeline).Process()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:116 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:162 +0x389
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c0002e9d10 by goroutine 97:
  github.com/grafana/loki/pkg/logql/log.(*LabelsBuilder).Reset()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:129 +0x184
  github.com/grafana/loki/pkg/logql/log.(*streamPipeline).Process()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:116 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:162 +0x389
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 99 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Read at 0x00c0002e9cf8 by goroutine 101:
  github.com/grafana/loki/pkg/logql/log.(*LabelsBuilder).Reset()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:128 +0x10a
  github.com/grafana/loki/pkg/logql/log.(*streamPipeline).Process()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:116 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:162 +0x389
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c0002e9cf8 by goroutine 97:
  github.com/grafana/loki/pkg/logql/log.(*LabelsBuilder).Reset()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:128 +0x13b
  github.com/grafana/loki/pkg/logql/log.(*streamPipeline).Process()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:116 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:162 +0x389
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 101 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Read at 0x00c0002e9cf8 by goroutine 98:
  github.com/grafana/loki/pkg/logql/log.(*LabelsBuilder).Reset()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:128 +0x10a
  github.com/grafana/loki/pkg/logql/log.(*streamPipeline).Process()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:116 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:162 +0x389
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c0002e9cf8 by goroutine 97:
  github.com/grafana/loki/pkg/logql/log.(*LabelsBuilder).Reset()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:128 +0x13b
  github.com/grafana/loki/pkg/logql/log.(*streamPipeline).Process()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:116 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:162 +0x389
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 98 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
==================
WARNING: DATA RACE
Write at 0x00c0002e9d10 by goroutine 52:
  github.com/grafana/loki/pkg/logql/log.(*LabelsBuilder).Reset()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:129 +0x184
  github.com/grafana/loki/pkg/logql/log.(*streamPipeline).Process()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:116 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:162 +0x389
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Previous write at 0x00c0002e9d10 by goroutine 97:
  github.com/grafana/loki/pkg/logql/log.(*LabelsBuilder).Reset()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/labels.go:129 +0x184
  github.com/grafana/loki/pkg/logql/log.(*streamPipeline).Process()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/logql/log/pipeline.go:116 +0x45
  github.com/grafana/loki/pkg/ingester.(*tailer).processStream()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:162 +0x389
  github.com/grafana/loki/pkg/ingester.(*tailer).send()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer.go:129 +0x264
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace.func1()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:64 +0x312

Goroutine 52 (running) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202

Goroutine 97 (finished) created at:
  github.com/grafana/loki/pkg/ingester.Test_TailerSendRace()
      /Users/ctovena/go/src/github.com/grafana/loki/pkg/ingester/tailer_test.go:63 +0x147
Fixes race condition in tailer since logql v2.
  testing.tRunner()
      /usr/local/Cellar/go/1.15.2/libexec/src/testing/testing.go:1127 +0x202
==================
--- FAIL: Test_TailerSendRace (0.01s)
    testing.go:1042: race detected during execution of test
FAIL
FAIL	github.com/grafana/loki/pkg/ingester	0.091s
FAIL

after

❯ go test -race github.com/grafana/loki/pkg/ingester -run Test_TailerSendRace
ok  	github.com/grafana/loki/pkg/ingester	0.104s

Signed-off-by: Cyril Tovena <cyril.tovena@gmail.com>
@codecov-io
Copy link

Codecov Report

Merging #2917 (92f979f) into master (5738611) will increase coverage by 0.07%.
The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #2917      +/-   ##
==========================================
+ Coverage   61.61%   61.68%   +0.07%     
==========================================
  Files         181      181              
  Lines       14715    14717       +2     
==========================================
+ Hits         9066     9078      +12     
+ Misses       4820     4809      -11     
- Partials      829      830       +1     
Impacted Files Coverage Δ
pkg/ingester/tailer.go 40.94% <100.00%> (+8.94%) ⬆️
pkg/logql/evaluator.go 91.24% <0.00%> (-0.41%) ⬇️
pkg/querier/queryrange/downstreamer.go 97.64% <0.00%> (+2.35%) ⬆️

Copy link
Contributor

@sandeepsukhani sandeepsukhani left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@sandeepsukhani sandeepsukhani merged commit 6e79cee into grafana:master Nov 11, 2020
cyriltovena pushed a commit to cyriltovena/loki that referenced this pull request Jun 11, 2021
Signed-off-by: Owen Diehl <ow.diehl@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants