Package: apt-cacher
Version: 1.7.6
Severity: normal
Dear Maintainer,
It appears that when an InRelease file disappears (as seems to have
happened to wheezy following its release), apt-cacher returns the old file
instead, albeit with the 404 message body overwriting the beginning of the
file:
michael@wibble:~$ curl -sD -
http://mirror.waia.asn.au/debian/dists/wheezy/InRelease|head -30
HTTP/1.1 404 Not Found
Date: Sun, 19 May 2013 11:11:31 GMT
Server: Apache/2.2.14 (Ubuntu)
Content-Length: 311
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /debian/dists/wheezy/InRelease was not found on this
server.</p>
<hr>
<address>Apache/2.2.14 (Ubuntu) Server at mirror.waia.asn.au Port
80</address>
</body></html>
michael@wibble:~$ http_proxy=http://yipyip:3142/ curl -sD -
http://mirror.waia.asn.au/debian/dists/wheezy/InRelease|head -30
HTTP/1.1 200 OK
Connection: Keep-Alive
Date: Sun, 05 May 2013 20:45:05 GMT
Via: 1.1 yipyip:3142 (apt-cacher/1.7.6)
Accept-Ranges: bytes
Age: 1175309
ETag: "d9d2003-3cd11-4dbe02bfcfd00"
Server: Apache/2.2.14 (Ubuntu)
Content-Length: 249105
Content-Type: text/plain
Last-Modified: Sat, 04 May 2013 08:22:44 GMT
Keep-Alive: timeout=15, max=100
X-AptCacher-URL: http://mirror.waia.asn.au/debian/dists/wheezy/InRelease
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /debian/dists/wheezy/InRelease was not found on this
server.</p>
<hr>
<address>Apache/2.2.14 (Ubuntu) Server at mirror.waia.asn.au Port
80</address>
</body></html>
n contrib non-free
Description: Debian x.y Testing distribution - Not Released
MD5Sum:
814fc8da206fc61184e03e8b66c9fc5f 22154933 Contents-amd64.gz
bb9b23179ec2f9ce47806464fe7712c3 21865030 Contents-armel.gz
4252daaadc6253738435d158288c3edf 21757234 Contents-armhf.gz
1e1cdd3d53cab26ef82bc738b41ebac7 22332659 Contents-i386.gz
While I unfortunately didn't have debugging enabled two weeks ago, I *can*
show you what error.log looks like fetching the file now:
Sun May 19 04:37:43 2013|debug [25263]: New INETD connection
Sun May 19 04:37:43 2013|debug [25263]: Processing a new request line
Sun May 19 04:37:43 2013|debug [25263]: got: 'HEAD
/mirror.waia.asn.au/debian/dists/wheezy/InRelease'
Sun May 19 04:37:43 2013|debug [25263]: Processing a new request line
Sun May 19 04:37:43 2013|debug [25263]: got: 'Cache-Control: max-age=0'
Sun May 19 04:37:43 2013|debug [25263]: Processing a new request line
Sun May 19 04:37:43 2013|debug [25263]: got: 'Connection: Close'
Sun May 19 04:37:43 2013|debug [25263]: Processing a new request line
Sun May 19 04:37:43 2013|debug [25263]: got: ''
Sun May 19 04:37:43 2013|debug [25263]: Resolved request is
http://mirror.waia.asn.au/debian/dists/wheezy/InRelease
Sun May 19 04:37:43 2013|debug [25263]: Index file:
mirror.waia.asn.au_debian_dists_wheezy_InRelease
Sun May 19 04:37:43 2013|debug [25263]: Locked header
/var/cache/apt-cacher/headers/mirror.waia.asn.au_debian_dists_wheezy_InRelease
Sun May 19 04:37:43 2013|debug [25263]: Freshness checks
Sun May 19 04:37:43 2013|debug [25263]: Revalidating
mirror.waia.asn.au_debian_dists_wheezy_InRelease. Age: 1122758
Sun May 19 04:37:43 2013|debug [25263]: Sending If-Modified-Since request
Sun May 19 04:37:43 2013|debug [25263]: fetcher: GET
http://mirror.waia.asn.au/debian/dists/wheezy/InRelease
Sun May 19 04:37:43 2013|debug [25263]: Libcurl candidate:
http://mirror.waia.asn.au/debian/dists/wheezy/InRelease
Sun May 19 04:37:43 2013|debug [25263]: Global lock: Connect libcurl
Sun May 19 04:37:43 2013|debug [25263]: Connection to running libcurl
process found on /var/cache/apt-cacher/libcurl.socket
Sun May 19 04:37:43 2013|debug [25263]: Release global lock
[skipped libcurl process doing its stuff here]
Sun May 19 04:37:43 2013|debug [25263]: libcurl reading of headers
complete: 404
Sun May 19 04:37:43 2013|debug [25263]: Found EOF marker and status 0 (No
error)
Sun May 19 04:37:43 2013|debug [25263]: libcurl returned 404 for
http://mirror.waia.asn.au/debian/dists/wheezy/InRelease
Sun May 19 04:37:43 2013|debug [25263]: Got 404
Sun May 19 04:37:43 2013|debug [25263]: Complete check
Sun May 19 04:37:43 2013|debug [25263]: cached file is complete: 249105
Sun May 19 04:37:43 2013|debug [25263]: OFFLINE
Sun May 19 04:37:43 2013|debug [25263]: Unlocked header, checks done, can
return now
Sun May 19 04:37:43 2013|debug [25263]: Response: 200 OK
Sun May 19 04:37:43 2013|debug [25263]: Headers: Connection: Keep-Alive
Date: Sun, 05 May 2013 20:45:05 GMT
Via: 1.1 yipyip:3142 (apt-cacher/1.7.6)
Accept-Ranges: bytes
Age: 1122758
ETag: "d9d2003-3cd11-4dbe02bfcfd00"
Server: Apache/2.2.14 (Ubuntu)
Content-Length: 249105
Content-Type: text/plain
Last-Modified: Sat, 04 May 2013 08:22:44 GMT
Keep-Alive: timeout=15, max=100
X-AptCacher-URL: http://mirror.waia.asn.au/debian/dists/wheezy/InRelease
Sun May 19 04:37:43 2013|debug [25263]: Package sent
Sun May 19 04:37:43 2013|debug [25263]: Processing a new request line
Sun May 19 04:37:43 2013|debug [25263]: Clean up before exiting.
The result of this is expired release file errors from every apt-get
update since wheezy's release.
A glance at the code around line 770 suggests that all errors result in the
cached file being returned (and an 'OFFLINE' status). I'm not convinced
that this is a good idea, at least with 404s. :P
I suspect the returned cached file being contaminated by the 404 response
body is a separate bug...
-- System Information:
Debian Release: 7.0
APT prefers stable
APT policy: (500, 'stable'), (490, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 3.2.0-4-amd64 (SMP w/1 CPU core)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages apt-cacher depends on:
ii debconf [debconf-2.0] 1.5.49
ii dpkg 1.16.10
ii ed 1.6-2
ii libfilesys-df-perl 0.92-4+b1
ii libfreezethaw-perl 0.5001-1
ii libio-interface-perl 1.06-1+b1
ii libnetaddr-ip-perl 4.062+dfsg-1
ii libsys-syscall-perl 0.23-1
ii libwww-curl-perl 4.15-1+b2
ii libwww-perl 6.04-1
ii lsb-base 4.1+Debian8
ii perl 5.14.2-21
ii ucf 3.0025+nmu3
ii update-inetd 4.43
Versions of packages apt-cacher recommends:
pn libberkeleydb-perl <none>
Versions of packages apt-cacher suggests:
ii libio-socket-inet6-perl 2.69-2
-- Configuration Files:
/etc/apt-cacher/apt-cacher.conf changed:
group = www-data
user = www-data
debug=1
allowed_hosts=192.168.0.0/24,192.168.1.0/24,192.168.2.0/24,134.115.83.129,134.115.68.21
limit=10000k
/etc/default/apt-cacher changed:
AUTOSTART=1
-- debconf information:
* apt-cacher/mode: daemon
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]