Skip to content

server/systemconfigwatcher/systemconfigwatchertest: fix race#83642

Merged
craig[bot] merged 1 commit intocockroachdb:masterfrom
ajwerner:ajwerner/fix-83258
Jul 1, 2022
Merged

server/systemconfigwatcher/systemconfigwatchertest: fix race#83642
craig[bot] merged 1 commit intocockroachdb:masterfrom
ajwerner:ajwerner/fix-83258

Conversation

@ajwerner
Copy link
Copy Markdown
Contributor

Fixes #83258

==================
WARNING: DATA RACE
Write at 0x00c001b75c00 by goroutine 264:
  github.com/cockroachdb/cockroach/pkg/roachpb.KeyValueByKey.Swap()
      github.com/cockroachdb/cockroach/pkg/roachpb/pkg/roachpb/data.go:2400 +0x190
  github.com/cockroachdb/cockroach/pkg/roachpb.(*KeyValueByKey).Swap()
      <autogenerated>:1 +0xb3
  sort.medianOfThree()
      GOROOT/src/sort/sort.go:90 +0x72
  sort.doPivot()
      GOROOT/src/sort/sort.go:114 +0x9e
  sort.quickSort()
      GOROOT/src/sort/sort.go:203 +0xac
  sort.Sort()
      GOROOT/src/sort/sort.go:231 +0x64
  github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest.runTest.func2()
      github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest/test_system_config_watcher.go:110 +0x4d1
  github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest.runTest.func3.1()
      github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest/test_system_config_watcher.go:118 +0x4e
  github.com/cockroachdb/cockroach/pkg/testutils.SucceedsWithinError.func1()
      github.com/cockroachdb/cockroach/pkg/testutils/soon.go:69 +0x7a
  github.com/cockroachdb/cockroach/pkg/util/retry.ForDuration()
      github.com/cockroachdb/cockroach/pkg/util/retry/retry.go:207 +0x191
  github.com/cockroachdb/cockroach/pkg/testutils.SucceedsWithinError()
      github.com/cockroachdb/cockroach/pkg/testutils/soon.go:75 +0x1d1
  github.com/cockroachdb/cockroach/pkg/testutils.SucceedsWithin()
      github.com/cockroachdb/cockroach/pkg/testutils/soon.go:57 +0x96
  github.com/cockroachdb/cockroach/pkg/testutils.SucceedsSoon()
      github.com/cockroachdb/cockroach/pkg/testutils/soon.go:40 +0x8d
  github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest.runTest.func3()
      github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest/test_system_config_watcher.go:117 +0x164
  github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest.runTest()
      github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest/test_system_config_watcher.go:121 +0x5cf
  github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest.TestSystemConfigWatcher.func1()
      github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest/test_system_config_watcher.go:62 +0xdc
  testing.tRunner()
      GOROOT/src/testing/testing.go:1259 +0x22f
  testing.(*T).Run·dwrap·21()
      GOROOT/src/testing/testing.go:1306 +0x47

Previous read at 0x00c001b75c00 by goroutine 502:
  runtime.slicecopy()
      GOROOT/src/runtime/slice.go:284 +0x0
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedbuffer.MergeKVs()
      github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedbuffer/kvs.go:47 +0x354
  github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher.(*Cache).handleUpdate()
      github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/cache.go:253 +0x431
  github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher.(*Cache).handleUpdate-fm()
      github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/cache.go:232 +0x11e
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedcache.(*Watcher).handleUpdate()
      github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedcache/watcher.go:346 +0x277
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedcache.(*Watcher).Run()
      github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedcache/watcher.go:327 +0x1b04
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedcache.Start.func1()
      github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedcache/watcher.go:189 +0x3d1
  github.com/cockroachdb/cockroach/pkg/util/stop.(*Stopper).RunAsyncTaskEx.func2()
      github.com/cockroachdb/cockroach/pkg/util/stop/stopper.go:494 +0x551

Clone the values to make sure we don't have a race.

Release note: None

@ajwerner ajwerner marked this pull request as ready for review June 30, 2022 13:04
@ajwerner ajwerner requested review from a team as code owners June 30, 2022 13:04
@cockroach-teamcity
Copy link
Copy Markdown
Member

This change is Reviewable

Fixes cockroachdb#83258

```
==================
WARNING: DATA RACE
Write at 0x00c001b75c00 by goroutine 264:
  github.com/cockroachdb/cockroach/pkg/roachpb.KeyValueByKey.Swap()
      github.com/cockroachdb/cockroach/pkg/roachpb/pkg/roachpb/data.go:2400 +0x190
  github.com/cockroachdb/cockroach/pkg/roachpb.(*KeyValueByKey).Swap()
      <autogenerated>:1 +0xb3
  sort.medianOfThree()
      GOROOT/src/sort/sort.go:90 +0x72
  sort.doPivot()
      GOROOT/src/sort/sort.go:114 +0x9e
  sort.quickSort()
      GOROOT/src/sort/sort.go:203 +0xac
  sort.Sort()
      GOROOT/src/sort/sort.go:231 +0x64
  github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest.runTest.func2()
      github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest/test_system_config_watcher.go:110 +0x4d1
  github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest.runTest.func3.1()
      github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest/test_system_config_watcher.go:118 +0x4e
  github.com/cockroachdb/cockroach/pkg/testutils.SucceedsWithinError.func1()
      github.com/cockroachdb/cockroach/pkg/testutils/soon.go:69 +0x7a
  github.com/cockroachdb/cockroach/pkg/util/retry.ForDuration()
      github.com/cockroachdb/cockroach/pkg/util/retry/retry.go:207 +0x191
  github.com/cockroachdb/cockroach/pkg/testutils.SucceedsWithinError()
      github.com/cockroachdb/cockroach/pkg/testutils/soon.go:75 +0x1d1
  github.com/cockroachdb/cockroach/pkg/testutils.SucceedsWithin()
      github.com/cockroachdb/cockroach/pkg/testutils/soon.go:57 +0x96
  github.com/cockroachdb/cockroach/pkg/testutils.SucceedsSoon()
      github.com/cockroachdb/cockroach/pkg/testutils/soon.go:40 +0x8d
  github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest.runTest.func3()
      github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest/test_system_config_watcher.go:117 +0x164
  github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest.runTest()
      github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest/test_system_config_watcher.go:121 +0x5cf
  github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest.TestSystemConfigWatcher.func1()
      github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/systemconfigwatchertest/test_system_config_watcher.go:62 +0xdc
  testing.tRunner()
      GOROOT/src/testing/testing.go:1259 +0x22f
  testing.(*T).Run·dwrap·21()
      GOROOT/src/testing/testing.go:1306 +0x47

Previous read at 0x00c001b75c00 by goroutine 502:
  runtime.slicecopy()
      GOROOT/src/runtime/slice.go:284 +0x0
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedbuffer.MergeKVs()
      github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedbuffer/kvs.go:47 +0x354
  github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher.(*Cache).handleUpdate()
      github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/cache.go:253 +0x431
  github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher.(*Cache).handleUpdate-fm()
      github.com/cockroachdb/cockroach/pkg/server/systemconfigwatcher/cache.go:232 +0x11e
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedcache.(*Watcher).handleUpdate()
      github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedcache/watcher.go:346 +0x277
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedcache.(*Watcher).Run()
      github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedcache/watcher.go:327 +0x1b04
  github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedcache.Start.func1()
      github.com/cockroachdb/cockroach/pkg/kv/kvclient/rangefeed/rangefeedcache/watcher.go:189 +0x3d1
  github.com/cockroachdb/cockroach/pkg/util/stop.(*Stopper).RunAsyncTaskEx.func2()
      github.com/cockroachdb/cockroach/pkg/util/stop/stopper.go:494 +0x551
```

Clone the values to make sure we don't have a race.

Release note: None
Copy link
Copy Markdown
Collaborator

@arulajmani arulajmani left a comment

Choose a reason for hiding this comment

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

Reviewed 2 of 2 files at r1, all commit messages.
Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (waiting on @ajwerner)

@ajwerner
Copy link
Copy Markdown
Contributor Author

both unrelated flakes

bors r+

@craig
Copy link
Copy Markdown
Contributor

craig bot commented Jun 30, 2022

Build failed (retrying...):

@craig
Copy link
Copy Markdown
Contributor

craig bot commented Jul 1, 2022

Build failed (retrying...):

@craig
Copy link
Copy Markdown
Contributor

craig bot commented Jul 1, 2022

Build succeeded:

@craig craig bot merged commit 78caa5c into cockroachdb:master Jul 1, 2022
@blathers-crl
Copy link
Copy Markdown

blathers-crl bot commented Jul 1, 2022

Encountered an error creating backports. Some common things that can go wrong:

  1. The backport branch might have already existed.
  2. There was a merge conflict.
  3. The backport branch contained merge commits.

You might need to create your backport manually using the backport tool.


error creating merge commit from 7216291 to blathers/backport-release-22.1-83642: POST https://api.github.com/repos/cockroachdb/cockroach/merges: 409 Merge conflict []

you may need to manually resolve merge conflicts with the backport tool.

Backport to branch 22.1.x failed. See errors above.


🦉 Hoot! I am a Blathers, a bot for CockroachDB. My owner is otan.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ccl/serverccl: TestSystemConfigWatcherCache failed

3 participants