Skip to content

Commit 44af9e0

Browse files
craig[bot]RaduBerindemw5h
committed
145408: go.mod: bump Pebble to a909ca0112a8 r=RaduBerinde a=RaduBerinde Changes: * [`a909ca01`](cockroachdb/pebble@a909ca01) manifest: make virtual params field of TableMetadata a pointer * [`b0a0f0e2`](cockroachdb/pebble@b0a0f0e2) manifest: make internal range key bound of TableMetadata a pointer * [`36181068`](cockroachdb/pebble@36181068) manifest: use InternalKeyBounds struct in TableMetadata's point keys * [`a4e831fe`](cockroachdb/pebble@a4e831fe) manifest: use new InternalKeyBounds struct in TableMetadata's range keys * [`27eaac88`](cockroachdb/pebble@27eaac88) manifest: refactor {Smallest, Largest}Bound * [`a2f076b5`](cockroachdb/pebble@a2f076b5) db: add metrics for garbage due to point and range deletions * [`f098d82f`](cockroachdb/pebble@f098d82f) db: fix L0 blob reference depth calculation * [`06c3d702`](cockroachdb/pebble@06c3d702) db: deflake TestCompactionCorruption * [`14bdcd5b`](cockroachdb/pebble@14bdcd5b) github: disable fail-fast on nightlies Release note: none. Epic: none. 145434: backfill: fix a vector index backfill data race r=mw5h a=mw5h The vector index backfill process uses the KV memory allocated by the backfill reader. This works fine for the first attempt to write a vector index row but, if the transaction writing the row fails and has to retry, there is a chance that the kv still has a reference to IndexEntry when the writer swings around to try again, causing a data race. This patch changes the vector index writer to allocate new memory for the IndexEntry on subsequent attempts to write the value after the first. Informs: #143107 Release note: None Co-authored-by: Radu Berinde <[email protected]> Co-authored-by: Matt White <[email protected]>
3 parents dbca69f + d43f57d + c86c09f commit 44af9e0

File tree

5 files changed

+24
-8
lines changed

5 files changed

+24
-8
lines changed

DEPS.bzl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1915,10 +1915,10 @@ def go_deps():
19151915
patches = [
19161916
"@com_github_cockroachdb_cockroach//build/patches:com_github_cockroachdb_pebble.patch",
19171917
],
1918-
sha256 = "23d44c3d54c92fb354ddd445c17bebb09d159fe897e05c7b328b32efb2c5de68",
1919-
strip_prefix = "github.com/cockroachdb/[email protected]20250425152833-b751e8763d7b",
1918+
sha256 = "37cf022e26e06aed9fceeaa5ba619d8b3fecc3a30b432db16cbd2f020e35db64",
1919+
strip_prefix = "github.com/cockroachdb/[email protected]20250428185656-a909ca0112a8",
19201920
urls = [
1921-
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/pebble/com_github_cockroachdb_pebble-v0.0.0-20250425152833-b751e8763d7b.zip",
1921+
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/pebble/com_github_cockroachdb_pebble-v0.0.0-20250428185656-a909ca0112a8.zip",
19221922
],
19231923
)
19241924
go_repository(

build/bazelutil/distdir_files.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ DISTDIR_FILES = {
365365
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/gostdlib/com_github_cockroachdb_gostdlib-v1.19.0.zip": "c4d516bcfe8c07b6fc09b8a9a07a95065b36c2855627cb3514e40c98f872b69e",
366366
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/logtags/com_github_cockroachdb_logtags-v0.0.0-20241215232642-bb51bb14a506.zip": "920068af09e3846d9ebb4e4a7787ff1dd10f3989c5f940ad861b0f6a9f824f6e",
367367
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/metamorphic/com_github_cockroachdb_metamorphic-v0.0.0-20231108215700-4ba948b56895.zip": "28c8cf42192951b69378cf537be5a9a43f2aeb35542908cc4fe5f689505853ea",
368-
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/pebble/com_github_cockroachdb_pebble-v0.0.0-20250425152833-b751e8763d7b.zip": "23d44c3d54c92fb354ddd445c17bebb09d159fe897e05c7b328b32efb2c5de68",
368+
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/pebble/com_github_cockroachdb_pebble-v0.0.0-20250428185656-a909ca0112a8.zip": "37cf022e26e06aed9fceeaa5ba619d8b3fecc3a30b432db16cbd2f020e35db64",
369369
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/redact/com_github_cockroachdb_redact-v1.1.6.zip": "018eccb5fb9ca52d43ec9eaf213539d01c1f2b94e0e822406ebfb2e9321ef6cf",
370370
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/returncheck/com_github_cockroachdb_returncheck-v0.0.0-20200612231554-92cdbca611dd.zip": "ce92ba4352deec995b1f2eecf16eba7f5d51f5aa245a1c362dfe24c83d31f82b",
371371
"https://storage.googleapis.com/cockroach-godeps/gomod/github.com/cockroachdb/stress/com_github_cockroachdb_stress-v0.0.0-20220803192808-1806698b1b7b.zip": "3fda531795c600daf25532a4f98be2a1335cd1e5e182c72789bca79f5f69fcc1",

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ require (
138138
github.com/cockroachdb/go-test-teamcity v0.0.0-20191211140407-cff980ad0a55
139139
github.com/cockroachdb/gostdlib v1.19.0
140140
github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506
141-
github.com/cockroachdb/pebble v0.0.0-20250425152833-b751e8763d7b
141+
github.com/cockroachdb/pebble v0.0.0-20250428185656-a909ca0112a8
142142
github.com/cockroachdb/redact v1.1.6
143143
github.com/cockroachdb/returncheck v0.0.0-20200612231554-92cdbca611dd
144144
github.com/cockroachdb/stress v0.0.0-20220803192808-1806698b1b7b

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -593,8 +593,8 @@ github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506 h1:ASDL+UJcILM
593593
github.com/cockroachdb/logtags v0.0.0-20241215232642-bb51bb14a506/go.mod h1:Mw7HqKr2kdtu6aYGn3tPmAftiP3QPX63LdK/zcariIo=
594594
github.com/cockroachdb/metamorphic v0.0.0-20231108215700-4ba948b56895 h1:XANOgPYtvELQ/h4IrmPAohXqe2pWA8Bwhejr3VQoZsA=
595595
github.com/cockroachdb/metamorphic v0.0.0-20231108215700-4ba948b56895/go.mod h1:aPd7gM9ov9M8v32Yy5NJrDyOcD8z642dqs+F0CeNXfA=
596-
github.com/cockroachdb/pebble v0.0.0-20250425152833-b751e8763d7b h1:TewZeUNkhVfIGj8qB5nozXHbkK+lh6IjW/4bunX6WT8=
597-
github.com/cockroachdb/pebble v0.0.0-20250425152833-b751e8763d7b/go.mod h1:jyGqUZ9jl6TVX9HHi12f0JQ+h+oL75De//O43X898BA=
596+
github.com/cockroachdb/pebble v0.0.0-20250428185656-a909ca0112a8 h1:te6dfVW4VOJCOEbL2qXi+vMuzxuNrtkiDXLBcyz8K5I=
597+
github.com/cockroachdb/pebble v0.0.0-20250428185656-a909ca0112a8/go.mod h1:jyGqUZ9jl6TVX9HHi12f0JQ+h+oL75De//O43X898BA=
598598
github.com/cockroachdb/redact v1.1.3/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg=
599599
github.com/cockroachdb/redact v1.1.6 h1:zXJBwDZ84xJNlHl1rMyCojqyIxv+7YUpQiJLQ7n4314=
600600
github.com/cockroachdb/redact v1.1.6/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg=

pkg/sql/rowexec/indexbackfiller.go

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,8 +206,24 @@ func (ib *indexBackfiller) maybeReencodeAndWriteVectorIndexEntry(
206206
tmpEntry.Value.RawBytes = append(tmpEntry.Value.RawBytes[:0], indexEntry.Value.RawBytes...)
207207
tmpEntry.Family = indexEntry.Family
208208

209+
firstAttempt := true
209210
err = ib.flowCtx.Cfg.DB.Txn(ctx, func(ctx context.Context, txn isql.Txn) error {
210-
entry, err := vih.ReEncodeVector(ctx, txn.KV(), *tmpEntry, indexEntry)
211+
// If the first attempt failed, we need to provide a new buffer to KV for
212+
// subsequent attempts because KV might still be using the previous buffer.
213+
var entryBuffer *rowenc.IndexEntry
214+
if firstAttempt {
215+
entryBuffer = indexEntry
216+
firstAttempt = false
217+
} else {
218+
entryBuffer = &rowenc.IndexEntry{
219+
Key: make(roachpb.Key, len(tmpEntry.Key)),
220+
Value: roachpb.Value{
221+
RawBytes: make([]byte, len(tmpEntry.Value.RawBytes)),
222+
},
223+
Family: tmpEntry.Family,
224+
}
225+
}
226+
entry, err := vih.ReEncodeVector(ctx, txn.KV(), *tmpEntry, entryBuffer)
211227
if err != nil {
212228
return err
213229
}

0 commit comments

Comments
 (0)