summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchertus <[email protected]>2023-05-24 22:54:42 +0300
committerchertus <[email protected]>2023-05-24 22:54:42 +0300
commit7fb2e761e9c5e85a24a6d9119e1b81435941f4ce (patch)
tree3080110ab9f2b042e0071d446729304c6f92ec0b
parent756e733d881b8d4aaba2e2ab6a51e715fb9d435a (diff)
fix read before write for exported blobs
ExternBlob раньше заполнялся после записи и соответствовал состоянию EEvictState::EXTERN Это поведение пришлось поменять - теперь ExternBlob пишется сразу при записи блоба. Проверка IsExternal() оказалась сломанной и ведет к форсированию чтения из S3 потенциально незаписанных блобов.
-rw-r--r--ydb/core/tx/columnshard/blob.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/ydb/core/tx/columnshard/blob.h b/ydb/core/tx/columnshard/blob.h
index d37c2cce0e1..f46c542ec83 100644
--- a/ydb/core/tx/columnshard/blob.h
+++ b/ydb/core/tx/columnshard/blob.h
@@ -357,7 +357,11 @@ struct TEvictedBlob {
}
bool IsExternal() const {
- return ExternBlob.IsValid();
+ if (State == EEvictState::EXTERN) {
+ Y_VERIFY(ExternBlob.IsValid());
+ return true;
+ }
+ return false;
}
TString ToString() const {