-
Notifications
You must be signed in to change notification settings - Fork 37
[Filestore] Fix data corruption on unaligned requests exceeding file size #4630
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Note This is an automated comment that will be appended during run. 🔴 linux-x86_64-relwithdebinfo: some tests FAILED for commit e8846bb.
🔴 linux-x86_64-relwithdebinfo: some tests FAILED for commit e8846bb.
🔴 linux-x86_64-relwithdebinfo: some tests FAILED for commit e8846bb.
|
123d554 to
f517195
Compare
|
Note This is an automated comment that will be appended during run. 🔴 linux-x86_64-relwithdebinfo: some tests FAILED for commit f517195.
🔴 linux-x86_64-relwithdebinfo: some tests FAILED for commit f517195.
🔴 linux-x86_64-relwithdebinfo: some tests FAILED for commit f517195.
|
| ui64 handle = CreateHandle(tablet, id); | ||
|
|
||
| // the numbers were adjusted to have the tail block in | ||
| // the same blob as other blocks from fresh bytes list |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Лучше явно убедиться, что rangeId / BlockGroupSize отличаются
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Добавил проверку что блок хвоста совпадает с одним из блоков для которого вызывается FlushBytes
issue: #4695
Mark the last block that exceeds the file size as deleted.
STR:
fresh blocks and fresh bytes lists. A 16 KB unaligned write that
extends beyond the current file size produces one fresh-bytes record
and four fresh blocks, since the current implementation pads the last
block with zeros to align it.
unaligned request. This time the write does not extend the file size
and results in two fresh-bytes records and three fresh blocks.