aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralexvru <alexvru@ydb.tech>2022-11-22 13:33:52 +0300
committeralexvru <alexvru@ydb.tech>2022-11-22 13:33:52 +0300
commit3e5907562bf4dae9cf824bd61032a343e2d294fd (patch)
treeedbc00e11378f4b710ed6cc0dbd991014d750457
parent1514ef713e782b90e18b6c7bcdeeca36b2e2c2e8 (diff)
downloadydb-3e5907562bf4dae9cf824bd61032a343e2d294fd.tar.gz
Fix replication bugs
-rw-r--r--ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.cpp b/ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.cpp
index 3ffb46a550..875ee9920c 100644
--- a/ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.cpp
+++ b/ydb/core/blobstorage/vdisk/repl/blobstorage_hullrepljob.cpp
@@ -662,7 +662,11 @@ namespace NKikimr {
while (!PhantomChecksPending.empty() && PhantomChecksInFlight.size() < 32) {
const ui64 cookie = ++LastPhantomCheckId;
- size_t numItems = Min<size_t>(PhantomChecksPending.size(), 32);
+ size_t numItems = 0;
+ const ui64 tabletId = std::get<0>(PhantomChecksPending.front()).TabletID();
+ for (auto it = PhantomChecksPending.begin(); it != PhantomChecksPending.end() && numItems < 32 &&
+ std::get<0>(*it).TabletID() == tabletId; ++it, ++numItems) {}
+
TArrayHolder<TEvBlobStorage::TEvGet::TQuery> queries(new TEvBlobStorage::TEvGet::TQuery[numItems]);
for (size_t i = 0; i < numItems; ++i) {
auto& pending = PhantomChecksPending.front();