[Varnish] #1343: Storage file handling is confused if file exists
Varnish
varnish-bugs at varnish-cache.org
Wed Oct 29 14:59:11 CET 2014
#1343: Storage file handling is confused if file exists
----------------------+-----------------------------------------------
Reporter: lkarsten | Owner: Martin Blix Grydeland <martin@…>
Type: defect | Status: closed
Priority: normal | Milestone:
Component: varnishd | Version: trunk
Severity: minor | Resolution: fixed
Keywords: |
----------------------+-----------------------------------------------
Comment (by kristian):
For the record and for future troubleshooters (we ran into this on
#varnish today and it took a while to map it to this bug):
The original description is correct but somewhat misses the bigger point.
It points out that the error message is misleading, but the real problem
is that the calculation is plain wrong, and the error message would have
been meaningful if the calculations to get there were correct.
Part of the problem here is that it DID take existing file size into
account, but incorrectly. If the old size was 4GB and the new size was
2GB, you'd check "if (2G-4G > fssize) { set size to 80% of fssize }". It
would seem that the subtraction was done unsigned, since all variables are
(correctly) unsigned. I'm somewhat surprised this wasn't caught by some
warning, as this should have been cast to some signed type if my
assumptions are correct...
The result was that reducing size of -s file would blow the file up to 80%
of fssize. Increasing file size would be treated fine, though still not
taking sparseness into account I suppose.
--
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1343#comment:5>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator
More information about the varnish-bugs
mailing list