From c5b2b384dabc08b12c8e2f5fefa74d4c66c38a54 Mon Sep 17 00:00:00 2001 From: Josh Slocum Date: Wed, 8 Dec 2021 08:42:27 -0600 Subject: [PATCH] Fixing ASAN issues --- fdbclient/NativeAPI.actor.cpp | 1 + fdbserver/BlobManager.actor.cpp | 5 +++-- fdbserver/BlobWorker.actor.cpp | 3 +-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/fdbclient/NativeAPI.actor.cpp b/fdbclient/NativeAPI.actor.cpp index 6468b9a4ea..529eac5b45 100644 --- a/fdbclient/NativeAPI.actor.cpp +++ b/fdbclient/NativeAPI.actor.cpp @@ -6532,6 +6532,7 @@ ACTOR Future>> getBlobGranuleRangesActor(Trans KeyRangeRef(blobGranuleMapping[i].key, blobGranuleMapping[i + 1].key)); } } + results.arena().dependsOn(blobGranuleMapping.arena()); if (blobGranuleMapping.more) { currentRange = KeyRangeRef(blobGranuleMapping.back().key, currentRange.end); } else { diff --git a/fdbserver/BlobManager.actor.cpp b/fdbserver/BlobManager.actor.cpp index 088c6bdbc3..ca17045bba 100644 --- a/fdbserver/BlobManager.actor.cpp +++ b/fdbserver/BlobManager.actor.cpp @@ -1172,15 +1172,16 @@ ACTOR Future chaosRangeMover(BlobManagerData* bmData) { // FIXME: with low probability, could immediately revoke it from the new assignment and move // it back right after to test that race + state KeyRange range = randomRange.range(); RangeAssignment revokeOld; revokeOld.isAssign = false; - revokeOld.keyRange = randomRange.range(); + revokeOld.keyRange = range; revokeOld.revoke = RangeRevokeData(false); bmData->rangesToAssign.send(revokeOld); RangeAssignment assignNew; assignNew.isAssign = true; - assignNew.keyRange = randomRange.range(); + assignNew.keyRange = range; assignNew.assign = RangeAssignmentData(); // not a continue bmData->rangesToAssign.send(assignNew); break; diff --git a/fdbserver/BlobWorker.actor.cpp b/fdbserver/BlobWorker.actor.cpp index 19a8349246..b04649fa7f 100644 --- a/fdbserver/BlobWorker.actor.cpp +++ b/fdbserver/BlobWorker.actor.cpp @@ -86,6 +86,7 @@ struct GranuleStartState { Optional history; }; +// TODO add global byte limit for pending and buffered deltas struct GranuleMetadata : NonCopyable, ReferenceCounted { KeyRange keyRange; @@ -2064,12 +2065,10 @@ ACTOR Future handleBlobGranuleFileRequest(Reference bwData j--; } j++; - [[maybe_unused]] Version latestDeltaVersion = invalidVersion; while (j <= i) { BlobFileIndex deltaF = chunkFiles.deltaFiles[j]; chunk.deltaFiles.emplace_back_deep(rep.arena, deltaF.filename, deltaF.offset, deltaF.length); bwData->stats.readReqDeltaBytesReturned += deltaF.length; - latestDeltaVersion = deltaF.version; j++; }