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 debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to