]> git.ipfire.org Git - thirdparty/squid.git/commit
Fail Rock swapout if the disk dropped some of the write requests (#352)
authorEduard Bagdasaryan <eduard.bagdasaryan@measurement-factory.com>
Wed, 23 Jan 2019 04:30:40 +0000 (04:30 +0000)
committerAmos Jeffries <yadij@users.noreply.github.com>
Mon, 28 Jan 2019 05:11:46 +0000 (18:11 +1300)
commita374216b3262b6b40dc19b8ea5423cd2f27f94a3
tree5176a9c069935a2a8ca8b122a8125d47e84a3e1a
parent8e022a61922053764fd1627ba4b65a1617a1bd8a
Fail Rock swapout if the disk dropped some of the write requests (#352)

Detecting dropped writes earlier is more than a TODO: If the last entry
write was successful, the whole entry becomes available for hits
immediately.  IpcIoFile::checkTimeouts() that runs every 7 seconds
(IpcIoFile::Timeout) would eventually notify Rock about the timeout,
allowing Rock to release the failed entry, but that notification may
be too late.

The precise outcome of hitting an entry with a missing on-disk slice is
unknown (because the bug was detected by temporary hit validation code
that turned such hits into misses), but SWAPFAIL is the best we could
hope for.
src/fs/rock/RockSwapDir.cc
src/fs/rock/RockSwapDir.h
src/fs/rock/forward.h