]> 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)
committerSquid Anubis <squid-anubis@squid-cache.org>
Wed, 23 Jan 2019 04:30:45 +0000 (04:30 +0000)
commita12f1a4c6ca6e058d1bc10113a59be7fa6ee5c2d
treecc281ed99db15784811305a0de5ebef8b3c6ce97
parentc203754768afb698246d9dd1f9f650403eca0382
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