Skip to content

fix race condition #7689

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

fix race condition #7689

wants to merge 1 commit into from

Conversation

torcolvin
Copy link
Collaborator

Fixes data race since the HLV was a shallow copy:

5:40:07 ==================
15:40:07 
WARNING: DATA RACE
15:40:07 Read at 0x00c00236b530 by goroutine 40313:
15:40:07   reflect.mapdelete_faststr()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/runtime/map_swiss.go:279 +0x4c
15:40:07   reflect.Value.lenNonSlice()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/reflect/value.go:1772 +0x1bc
15:40:07   reflect.Value.Len()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/reflect/value.go:1761 +0xe4
15:40:07   internal/fmtsort.Sort()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/internal/fmtsort/sort.go:56 +0xd8
15:40:07   fmt.(*pp).printValue()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:816 +0xdc0
15:40:07   fmt.(*pp).printValue()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:853 +0x1718
15:40:07   fmt.(*pp).printArg()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:759 +0x8a0
15:40:07   fmt.(*pp).doPrintf()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:1074 +0x42c
15:40:07   fmt.Sprintf()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:239 +0x50
15:40:07   github.com/couchbase/sync_gateway/rest.proposeChangeBatchEntry.GoString()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1235 +0x198
15:40:07   github.com/couchbase/sync_gateway/rest.(*proposeChangeBatchEntry).GoString()
15:40:07       <autogenerated>:1 +0x90
15:40:07   fmt.(*pp).handleMethods()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:650 +0x398
15:40:07   fmt.(*pp).printValue()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:770 +0xcc
15:40:07   fmt.(*pp).printValue()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:901 +0x1e74
15:40:07   fmt.(*pp).printArg()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:759 +0x8a0
15:40:07   fmt.(*pp).doPrintf()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:1074 +0x42c
15:40:07   fmt.Appendf()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:249 +0x5c
15:40:07   github.com/couchbase/sync_gateway/base.(*ConsoleLogger).logf.(*Logger).Printf.func1()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/log/log.go:269 +0x78
15:40:07   log.(*Logger).output()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/log/log.go:238 +0x28c
15:40:07   log.(*Logger).Printf()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/log/log.go:268 +0x12c
15:40:07   github.com/couchbase/sync_gateway/base.(*ConsoleLogger).logf()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/base/logger_console.go:119 +0xb0
15:40:07   github.com/couchbase/sync_gateway/base.logTo()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/base/logging.go:236 +0x508
15:40:07   github.com/couchbase/sync_gateway/base.DebugfCtx()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/base/logging.go:173 +0x2fc
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTesterCollectionClient).sendProposeChanges()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1277 +0x260
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTesterCollectionClient).sendRevisions()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1342 +0x58
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTesterCollectionClient).StartPushWithOpts.func1()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1260 +0x328
15:40:07 
15:40:07 Previous write at 0x00c00236b530 by goroutine 40165:
15:40:07   runtime.mapaccess2_faststr()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/internal/runtime/maps/runtime_faststr_swiss.go:162 +0x29c
15:40:07   github.com/couchbase/sync_gateway/db.(*HybridLogicalVector).AddVersion()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/db/hybrid_logical_vector.go:284 +0x560
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTesterCollectionClient).upsertDoc()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1546 +0x89c
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTesterCollectionClient).AddRev()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1578 +0x78
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTestClientRunner).AddRev()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1907 +0x1c
15:40:07   github.com/couchbase/sync_gateway/rest.TestCBLRevposHandling.func1()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/attachment_test.go:2602 +0x5e0
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTestClientRunner).Run.func3()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1063 +0xc0
15:40:07   testing.tRunner()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/testing/testing.go:1792 +0x180
15:40:07   testing.(*T).Run.gowrap1()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/testing/testing.go:1851 +0x40
15:40:07 
15:40:07 Goroutine 40313 (running) created at:
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTesterCollectionClient).StartPushWithOpts()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1248 +0x3c8
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTesterCollectionClient).StartPush()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1171 +0x44
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTestClientRunner).StartPush()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1878 +0x28
15:40:07   github.com/couchbase/sync_gateway/rest.TestCBLRevposHandling.func1()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/attachment_test.go:2596 +0x41c
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTestClientRunner).Run.func3()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1063 +0xc0
15:40:07   testing.tRunner()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/testing/testing.go:1792 +0x180
15:40:07   testing.(*T).Run.gowrap1()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/testing/testing.go:1851 +0x40
15:40:07 
15:40:07 Goroutine 40165 (running) created at:
15:40:07   testing.(*T).Run()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/testing/testing.go:1851 +0x684
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTestClientRunner).Run()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1061 +0x214
15:40:07   github.com/couchbase/sync_gateway/rest.TestCBLRevposHandling()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/attachment_test.go:2579 +0x2b0
15:40:07   testing.tRunner()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/testing/testing.go:1792 +0x180
15:40:07   testing.(*T).Run.gowrap1()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/testing/testing.go:1851 +0x40
15:40:07 ==================
15:40:07 ==================
15:40:07 
WARNING: DATA RACE
15:40:07 Read at 0x00c0002f32c8 by goroutine 40313:
15:40:07   runtime.typedmemmove()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/runtime/mbarrier.go:152 +0x7c
15:40:07   reflect.copyVal()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/reflect/value.go:1792 +0x50
15:40:07   reflect.(*MapIter).Value()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/reflect/map_swiss.go:311 +0xf0
15:40:07   internal/fmtsort.Sort()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/internal/fmtsort/sort.go:60 +0x20c
15:40:07   fmt.(*pp).printValue()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:816 +0xdc0
15:40:07   fmt.(*pp).printValue()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:853 +0x1718
15:40:07   fmt.(*pp).printArg()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:759 +0x8a0
15:40:07   fmt.(*pp).doPrintf()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:1074 +0x42c
15:40:07   fmt.Sprintf()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:239 +0x50
15:40:07   github.com/couchbase/sync_gateway/rest.proposeChangeBatchEntry.GoString()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1235 +0x198
15:40:07   github.com/couchbase/sync_gateway/rest.(*proposeChangeBatchEntry).GoString()
15:40:07       <autogenerated>:1 +0x90
15:40:07   fmt.(*pp).handleMethods()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:650 +0x398
15:40:07   fmt.(*pp).printValue()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:770 +0xcc
15:40:07   fmt.(*pp).printValue()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:901 +0x1e74
15:40:07   fmt.(*pp).printArg()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:759 +0x8a0
15:40:07   fmt.(*pp).doPrintf()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:1074 +0x42c
15:40:07   fmt.Appendf()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/fmt/print.go:249 +0x5c
15:40:07   github.com/couchbase/sync_gateway/base.(*ConsoleLogger).logf.(*Logger).Printf.func1()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/log/log.go:269 +0x78
15:40:07   log.(*Logger).output()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/log/log.go:238 +0x28c
15:40:07   log.(*Logger).Printf()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/log/log.go:268 +0x12c
15:40:07   github.com/couchbase/sync_gateway/base.(*ConsoleLogger).logf()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/base/logger_console.go:119 +0xb0
15:40:07   github.com/couchbase/sync_gateway/base.logTo()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/base/logging.go:236 +0x508
15:40:07   github.com/couchbase/sync_gateway/base.DebugfCtx()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/base/logging.go:173 +0x2fc
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTesterCollectionClient).sendProposeChanges()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1277 +0x260
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTesterCollectionClient).sendRevisions()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1342 +0x58
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTesterCollectionClient).StartPushWithOpts.func1()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1260 +0x328
15:40:07 
15:40:07 Previous write at 0x00c0002f32c8 by goroutine 40165:
15:40:07   github.com/couchbase/sync_gateway/db.(*HybridLogicalVector).AddVersion()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/db/hybrid_logical_vector.go:284 +0x56c
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTesterCollectionClient).upsertDoc()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1546 +0x89c
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTesterCollectionClient).AddRev()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1578 +0x78
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTestClientRunner).AddRev()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1907 +0x1c
15:40:07   github.com/couchbase/sync_gateway/rest.TestCBLRevposHandling.func1()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/attachment_test.go:2602 +0x5e0
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTestClientRunner).Run.func3()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1063 +0xc0
15:40:07   testing.tRunner()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/testing/testing.go:1792 +0x180
15:40:07   testing.(*T).Run.gowrap1()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/testing/testing.go:1851 +0x40
15:40:07 
15:40:07 Goroutine 40313 (running) created at:
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTesterCollectionClient).StartPushWithOpts()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1248 +0x3c8
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTesterCollectionClient).StartPush()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1171 +0x44
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTestClientRunner).StartPush()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1878 +0x28
15:40:07   github.com/couchbase/sync_gateway/rest.TestCBLRevposHandling.func1()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/attachment_test.go:2596 +0x41c
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTestClientRunner).Run.func3()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1063 +0xc0
15:40:07   testing.tRunner()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/testing/testing.go:1792 +0x180
15:40:07   testing.(*T).Run.gowrap1()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/testing/testing.go:1851 +0x40
15:40:07 
15:40:07 Goroutine 40165 (running) created at:
15:40:07   testing.(*T).Run()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/testing/testing.go:1851 +0x684
15:40:07   github.com/couchbase/sync_gateway/rest.(*BlipTestClientRunner).Run()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/utilities_testing_blip_client.go:1061 +0x214
15:40:07   github.com/couchbase/sync_gateway/rest.TestCBLRevposHandling()
15:40:07       /home/ec2-user/workspace/sgw-unix-build/4.0.0/enterprise/sync_gateway/rest/attachment_test.go:2579 +0x2b0
15:40:07   testing.tRunner()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/testing/testing.go:1792 +0x180
15:40:07   testing.(*T).Run.gowrap1()
15:40:07       /home/ec2-user/cbdeps/go1.24.4/src/testing/testing.go:1851 +0x40
15:40:07 ==================
15:40:07 2025-08-18T19:36:15.672Z [DBG] TEST+: t:TestCBLRevposHandling/versionVector db:db proposeChanges request body: [["doc2","185cf394e9090000@rosmar1","185cf394e9090000@rosmar1"]], changes:[]rest.proposeChangeBatchEntry{proposeChangeBatchEntry{docID: "doc2", version:RevTreeID:,CV:Version{SourceID:rosmar1, Value:1755545775658041344},revTreeIDHistory:[],hlvHistory:{0 rosmar1 1755545775658041344 map[] map[rosmar1:1755545775658041344]},seq:2,latestServerVersion:RevTreeID:,CV:Version{SourceID:rosmar1, Value:1755545775658041344},isDelete: false}}

Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR fixes a data race condition in the BLIP testing client where a shallow copy of the Hybrid Logical Vector (HLV) was being shared across goroutines. The race occurred when one goroutine was reading the HLV for logging purposes while another was modifying it, leading to concurrent map access violations.

  • Updates the _proposeChangesEntryForDoc method to create a deep copy of the HLV instead of a shallow copy

@@ -295,7 +295,7 @@ func (cd *clientDoc) _proposeChangesEntryForDoc() *proposeChangeBatchEntry {
}
revTreeIDHistory = append(revTreeIDHistory, cd._revisionsBySeq[seq].version.RevTreeID)
}
return &proposeChangeBatchEntry{docID: cd.id, version: latestRev.version, revTreeIDHistory: revTreeIDHistory, hlvHistory: latestRev.HLV, latestServerVersion: cd._latestServerVersion, seq: cd._latestSeq, isDelete: latestRev.isDelete}
return &proposeChangeBatchEntry{docID: cd.id, version: latestRev.version, revTreeIDHistory: revTreeIDHistory, hlvHistory: *latestRev.HLV.Copy(), latestServerVersion: cd._latestServerVersion, seq: cd._latestSeq, isDelete: latestRev.isDelete}
Copy link
Preview

Copilot AI Aug 18, 2025

Choose a reason for hiding this comment

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

The dereferencing of latestRev.HLV.Copy() could lead to a panic if latestRev.HLV is nil. Consider adding a nil check or ensuring Copy() returns a non-nil pointer.

Suggested change
return &proposeChangeBatchEntry{docID: cd.id, version: latestRev.version, revTreeIDHistory: revTreeIDHistory, hlvHistory: *latestRev.HLV.Copy(), latestServerVersion: cd._latestServerVersion, seq: cd._latestSeq, isDelete: latestRev.isDelete}
var hlvCopy db.HybridLogicalVector
if latestRev.HLV != nil {
hlvCopy = *latestRev.HLV.Copy()
} else {
hlvCopy = *db.NewHybridLogicalVector()
}
return &proposeChangeBatchEntry{
docID: cd.id,
version: latestRev.version,
revTreeIDHistory: revTreeIDHistory,
hlvHistory: hlvCopy,
latestServerVersion: cd._latestServerVersion,
seq: cd._latestSeq,
isDelete: latestRev.isDelete,
}

Copilot uses AI. Check for mistakes.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I don't think this is is necessary for testing.

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.

2 participants