diff options
author | chertus <[email protected]> | 2023-05-24 22:54:42 +0300 |
---|---|---|
committer | chertus <[email protected]> | 2023-05-24 22:54:42 +0300 |
commit | 7fb2e761e9c5e85a24a6d9119e1b81435941f4ce (patch) | |
tree | 3080110ab9f2b042e0071d446729304c6f92ec0b | |
parent | 756e733d881b8d4aaba2e2ab6a51e715fb9d435a (diff) |
fix read before write for exported blobs
ExternBlob раньше заполнялся после записи и соответствовал состоянию EEvictState::EXTERN
Это поведение пришлось поменять - теперь ExternBlob пишется сразу при записи блоба. Проверка IsExternal() оказалась сломанной и ведет к форсированию чтения из S3 потенциально незаписанных блобов.
-rw-r--r-- | ydb/core/tx/columnshard/blob.h | 6 |
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 { |