]> git.ipfire.org Git - thirdparty/squid.git/commit
Bug 4823: assertion failed: "lowestOffset () <= target_offset" (#370) M-staged-PR370
authorEduard Bagdasaryan <eduard.bagdasaryan@measurement-factory.com>
Sun, 24 Feb 2019 21:25:25 +0000 (21:25 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Sat, 2 Mar 2019 17:58:54 +0000 (17:58 +0000)
commit02ba667bd1199da8eb7a210eb50c577bd670d217
treee3711e7d6c0df6a63d939f76d0af27dcfd7bd18c
parentbc39d8dfadc7cb5a2ea993d651c3640aabf4d44f
Bug 4823: assertion failed: "lowestOffset () <= target_offset" (#370)

This assertion could be triggered by various swapout failures for
ufs/aufs/diskd cache_dir entries.

The bug was caused by 4310f8b change related to storeSwapOutFileClosed()
method. Before that change, swapout failures resulted in
StoreEntry::swap_status set to SWAPOUT_NONE, preventing
another/asserting iteration of StoreEntry::swapOut().

This fix adds SWAPOUT_FAILED swap status for marking swapout failures
(instead of reviving and abusing SWAPOUT_NONE), making the code more
reliable.

Also removed storeSwapOutFileNotify() implementation.  We should not
waste time on maintaining an unused method that now contains conflicting
assertions: swappingOut() and !hasDisk().
src/Store.h
src/enums.h
src/fs/ufs/UFSSwapDir.cc
src/store.cc
src/store_client.cc
src/store_swapin.cc
src/store_swapout.cc