On 26/06/08 at 19:24 +0200, Lucas Nussbaum wrote:
> On 26/06/08 at 10:04 +0200, Lucas Nussbaum wrote:
> > Package: approx
> > Version: 3.2.0+b1
> > Severity: important
> > 
> > Hi,
> > 
> > I run regular rebuilds of all packages in Debian. My process is:
> > 1. Update my local mirror
> > 2. Install some build nodes
> > 3. build each package in Debian on one of the build nodes
> > 
> > Each node builds several packages (8) at the same time. So approx might
> > have to answer several requests at the same time.
> > 
> > I'm running etch with some packages from testing (including approx).
> > 
> > My local mirror is accessible using HTTP. Each build node runs a local
> > cache. I used to use apache's caching features, but I recently switched
> > to approx.
> > 
> > My problem is that sometimes, packages fail to be fetched with a 404
> > error. For example:
> > Get:21 http://localhost sid/main libxcb-xlib0-dev 1.1-1.1 [14.7kB]
> > Err http://localhost sid/main libx11-dev 2:1.1.4-2
> >   404 Not Found
> > 
> > This is a quite rare event: out of ~12000 source packages, 282 packages
> > failed to build because of that. But it's still super-annoying in my
> > case, of course :-)
> > 
> > The packages that fail to be fetched are available on my local mirror.
> > They don't systematically fail to be fetched. 280 packages failed to be
> > fetched at least once. (see attachment: failed_to_be_fetched.txt) As an
> > example, libfontconfig1 failed to be fetched 52 times, but was needed to
> > build 2745 packages.
> > 
> > I'll run another rebuild, with approx verbose and debug options on, and
> > I'll tell you if I can find something...
> 
> Here is the approx debug log for one of the failures 
> (/debian/pool/main/t/texlive-extra/texlive-publishers_2007.dfsg.2-1_all.deb)
> 
> Jun 26 10:35:33 bordemer-6 approx: Connection from 127.0.0.1 port 33542 
> Jun 26 10:35:33 bordemer-6 approx: Request 
> /debian/pool/main/t/texlive-extra/texlive-publishers_2007.dfsg.2-1_all.deb 
> Jun 26 10:35:33 bordemer-6 approx:   Host: localhost:9999 
> Jun 26 10:35:33 bordemer-6 approx:   Connection: keep-alive 
> Jun 26 10:35:33 bordemer-6 approx:   User-Agent: Debian APT-HTTP/1.3 (0.7.14) 
> Jun 26 10:35:33 bordemer-6 approx:   => cache miss 
> Jun 26 10:35:33 bordemer-6 approx: Command: /usr/bin/curl --fail --silent  
> --include 
> "http://idpot.grenoble.grid5000.fr/mirrors/debian/pool/main/t/texlive-extra/texlive-publishers_2007.dfsg.2-1_all.deb";
>  
> Jun 26 10:35:33 bordemer-6 approx: Connection from 127.0.0.1 port 33319 
> Jun 26 10:35:33 bordemer-6 approx: Request 
> /debian/pool/main/t/texlive-lang/texlive-lang-italian_2007.dfsg.3-2_all.deb 
> Jun 26 10:35:33 bordemer-6 approx:   Host: localhost:9999 
> Jun 26 10:35:33 bordemer-6 approx:   Connection: keep-alive 
> Jun 26 10:35:33 bordemer-6 approx:   User-Agent: Debian APT-HTTP/1.3 (0.7.14) 
> Jun 26 10:35:33 bordemer-6 approx:   => delivering from cache 
> Jun 26 10:35:33 bordemer-6 approx: Local response 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Type: text/plain 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Length: 26438 
> Jun 26 10:35:33 bordemer-6 approx:   Last-Modified: Mon, 28 Apr 2008 09:33:03 
> GMT 
> Jun 26 10:35:33 bordemer-6 approx: Connection from 127.0.0.1 port 33319 
> Jun 26 10:35:33 bordemer-6 approx: Request 
> /debian/pool/main/t/texlive-extra/texlive-publishers_2007.dfsg.2-1_all.deb 
> Jun 26 10:35:33 bordemer-6 approx:   Host: localhost:9999 
> Jun 26 10:35:33 bordemer-6 approx:   Connection: keep-alive 
> Jun 26 10:35:33 bordemer-6 approx:   User-Agent: Debian APT-HTTP/1.3 (0.7.14) 
> Jun 26 10:35:33 bordemer-6 approx:   => cache miss 
> Jun 26 10:35:33 bordemer-6 approx: Command: /usr/bin/curl --fail --silent  
> --include 
> "http://idpot.grenoble.grid5000.fr/mirrors/debian/pool/main/t/texlive-extra/texlive-publishers_2007.dfsg.2-1_all.deb";
>  
> Jun 26 10:35:33 bordemer-6 approx:   HTTP/1.1 200 OK 
> Jun 26 10:35:33 bordemer-6 approx:   Date: Thu, 26 Jun 2008 08:35:34 GMT 
> Jun 26 10:35:33 bordemer-6 approx:   Server: Apache/2.0.55 (Ubuntu) 
> Jun 26 10:35:33 bordemer-6 approx:   Last-Modified: Sun, 11 May 2008 09:47:05 
> GMT 
> Jun 26 10:35:33 bordemer-6 approx:   ETag: "4364072-1ae646-504e9840" 
> Jun 26 10:35:33 bordemer-6 approx:   Accept-Ranges: bytes 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Length: 1762886 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Type: 
> application/x-debian-package 
> Jun 26 10:35:33 bordemer-6 approx:   X-Pad: avoid browser bug 
> Jun 26 10:35:33 bordemer-6 approx:   open cache 
> debian/pool/main/t/texlive-extra/texlive-publishers_2007.dfsg.2-1_all.deb 
> Jun 26 10:35:33 bordemer-6 approx: Proxy response 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Type: text/plain 
> Jun 26 10:35:33 bordemer-6 approx:   Status: 200 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Length: 1762886 
> Jun 26 10:35:33 bordemer-6 approx:   Last-Modified: Sun, 11 May 2008 09:47:05 
> GMT 
> Jun 26 10:35:33 bordemer-6 approx:   HTTP/1.1 200 OK 
> Jun 26 10:35:33 bordemer-6 approx:   Date: Thu, 26 Jun 2008 08:35:34 GMT 
> Jun 26 10:35:33 bordemer-6 approx:   Server: Apache/2.0.55 (Ubuntu) 
> Jun 26 10:35:33 bordemer-6 approx:   Last-Modified: Sun, 11 May 2008 09:47:05 
> GMT 
> Jun 26 10:35:33 bordemer-6 approx:   ETag: "4364072-1ae646-504e9840" 
> Jun 26 10:35:33 bordemer-6 approx:   Accept-Ranges: bytes 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Length: 1762886 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Type: 
> application/x-debian-package 
> Jun 26 10:35:33 bordemer-6 approx:   X-Pad: avoid browser bug 
> Jun 26 10:35:33 bordemer-6 approx:   open cache 
> debian/pool/main/t/texlive-extra/texlive-publishers_2007.dfsg.2-1_all.deb 
> Jun 26 10:35:33 bordemer-6 approx: Cannot cache 
> debian/pool/main/t/texlive-extra/texlive-publishers_2007.dfsg.2-1_all.deb 
> Jun 26 10:35:33 bordemer-6 approx: 
> http://idpot.grenoble.grid5000.fr/mirrors/debian/pool/main/t/texlive-extra/texlive-publishers_2007.dfsg.2-1_all.deb:
>  not found 
> Jun 26 10:35:33 bordemer-6 approx: Connection from 127.0.0.1 port 33319 
> Jun 26 10:35:33 bordemer-6 approx: Request 
> /debian/pool/main/t/texlive-lang/texlive-lang-dutch_2007.dfsg.3-2_all.deb 
> Jun 26 10:35:33 bordemer-6 approx:   Host: localhost:9999 
> Jun 26 10:35:33 bordemer-6 approx:   Connection: keep-alive 
> Jun 26 10:35:33 bordemer-6 approx:   User-Agent: Debian APT-HTTP/1.3 (0.7.14) 
> Jun 26 10:35:33 bordemer-6 approx:   => cache miss 
> Jun 26 10:35:33 bordemer-6 approx: Command: /usr/bin/curl --fail --silent  
> --include 
> "http://idpot.grenoble.grid5000.fr/mirrors/debian/pool/main/t/texlive-lang/texlive-lang-dutch_2007.dfsg.3-2_all.deb";
>  
> Jun 26 10:35:33 bordemer-6 approx:   HTTP/1.1 200 OK 
> Jun 26 10:35:33 bordemer-6 approx:   Date: Thu, 26 Jun 2008 08:35:34 GMT 
> Jun 26 10:35:33 bordemer-6 approx:   Server: Apache/2.0.55 (Ubuntu) 
> Jun 26 10:35:33 bordemer-6 approx:   Last-Modified: Mon, 28 Apr 2008 09:33:03 
> GMT 
> Jun 26 10:35:33 bordemer-6 approx:   ETag: "52e804a-10316-9a2ed1c0" 
> Jun 26 10:35:33 bordemer-6 approx:   Accept-Ranges: bytes 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Length: 66326 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Type: 
> application/x-debian-package 
> Jun 26 10:35:33 bordemer-6 approx:   open cache 
> debian/pool/main/t/texlive-lang/texlive-lang-dutch_2007.dfsg.3-2_all.deb 
> Jun 26 10:35:33 bordemer-6 approx: Proxy response 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Type: text/plain 
> Jun 26 10:35:33 bordemer-6 approx:   Status: 200 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Length: 66326 
> Jun 26 10:35:33 bordemer-6 approx:   Last-Modified: Mon, 28 Apr 2008 09:33:03 
> GMT 
> Jun 26 10:35:33 bordemer-6 approx:   close cache 
> debian/pool/main/t/texlive-lang/texlive-lang-dutch_2007.dfsg.3-2_all.deb 
> Jun 26 10:35:33 bordemer-6 approx:   setting mtime to Mon, 28 Apr 2008 
> 09:33:03 GMT 
> Jun 26 10:35:33 bordemer-6 approx: 
> http://idpot.grenoble.grid5000.fr/mirrors/debian/pool/main/t/texlive-lang/texlive-lang-dutch_2007.dfsg.3-2_all.deb:
>  delivered 
> Jun 26 10:35:33 bordemer-6 approx: Connection from 127.0.0.1 port 33319 
> Jun 26 10:35:33 bordemer-6 approx: Request 
> /debian/pool/main/t/texlive-lang/texlive-lang-hungarian_2007.dfsg.3-2_all.deb 
> Jun 26 10:35:33 bordemer-6 approx:   Host: localhost:9999 
> Jun 26 10:35:33 bordemer-6 approx:   Connection: keep-alive 
> Jun 26 10:35:33 bordemer-6 approx:   User-Agent: Debian APT-HTTP/1.3 (0.7.14) 
> Jun 26 10:35:33 bordemer-6 approx:   => cache miss 
> Jun 26 10:35:33 bordemer-6 approx: Command: /usr/bin/curl --fail --silent  
> --include 
> "http://idpot.grenoble.grid5000.fr/mirrors/debian/pool/main/t/texlive-lang/texlive-lang-hungarian_2007.dfsg.3-2_all.deb";
>  
> Jun 26 10:35:33 bordemer-6 approx:   HTTP/1.1 200 OK 
> Jun 26 10:35:33 bordemer-6 approx:   Date: Thu, 26 Jun 2008 08:35:34 GMT 
> Jun 26 10:35:33 bordemer-6 approx:   Server: Apache/2.0.55 (Ubuntu) 
> Jun 26 10:35:33 bordemer-6 approx:   Last-Modified: Mon, 28 Apr 2008 09:33:03 
> GMT 
> Jun 26 10:35:33 bordemer-6 approx:   ETag: "52e8050-38eda-9a2ed1c0" 
> Jun 26 10:35:33 bordemer-6 approx:   Accept-Ranges: bytes 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Length: 233178 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Type: 
> application/x-debian-package 
> Jun 26 10:35:33 bordemer-6 approx:   open cache 
> debian/pool/main/t/texlive-lang/texlive-lang-hungarian_2007.dfsg.3-2_all.deb 
> Jun 26 10:35:33 bordemer-6 approx: Proxy response 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Type: text/plain 
> Jun 26 10:35:33 bordemer-6 approx:   Status: 200 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Length: 233178 
> Jun 26 10:35:33 bordemer-6 approx:   Last-Modified: Mon, 28 Apr 2008 09:33:03 
> GMT 
> Jun 26 10:35:33 bordemer-6 approx:   close cache 
> debian/pool/main/t/texlive-lang/texlive-lang-hungarian_2007.dfsg.3-2_all.deb 
> Jun 26 10:35:33 bordemer-6 approx:   setting mtime to Mon, 28 Apr 2008 
> 09:33:03 GMT 
> Jun 26 10:35:33 bordemer-6 approx: 
> http://idpot.grenoble.grid5000.fr/mirrors/debian/pool/main/t/texlive-lang/texlive-lang-hungarian_2007.dfsg.3-2_all.deb:
>  delivered 
> Jun 26 10:35:33 bordemer-6 approx: Connection from 127.0.0.1 port 33319 
> Jun 26 10:35:33 bordemer-6 approx: Request 
> /debian/pool/main/t/texlive-lang/texlive-lang-latin_2007.dfsg.3-2_all.deb 
> Jun 26 10:35:33 bordemer-6 approx:   Host: localhost:9999 
> Jun 26 10:35:33 bordemer-6 approx:   Connection: keep-alive 
> Jun 26 10:35:33 bordemer-6 approx:   User-Agent: Debian APT-HTTP/1.3 (0.7.14) 
> Jun 26 10:35:33 bordemer-6 approx:   => cache miss 
> Jun 26 10:35:33 bordemer-6 approx: Command: /usr/bin/curl --fail --silent  
> --include 
> "http://idpot.grenoble.grid5000.fr/mirrors/debian/pool/main/t/texlive-lang/texlive-lang-latin_2007.dfsg.3-2_all.deb";
>  
> Jun 26 10:35:33 bordemer-6 approx:   HTTP/1.1 200 OK 
> Jun 26 10:35:33 bordemer-6 approx:   Date: Thu, 26 Jun 2008 08:35:34 GMT 
> Jun 26 10:35:33 bordemer-6 approx:   Server: Apache/2.0.55 (Ubuntu) 
> Jun 26 10:35:33 bordemer-6 approx:   Last-Modified: Mon, 28 Apr 2008 09:33:03 
> GMT 
> Jun 26 10:35:33 bordemer-6 approx:   ETag: "52e8052-6f12-9a2ed1c0" 
> Jun 26 10:35:33 bordemer-6 approx:   Accept-Ranges: bytes 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Length: 28434 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Type: 
> application/x-debian-package 
> Jun 26 10:35:33 bordemer-6 approx:   open cache 
> debian/pool/main/t/texlive-lang/texlive-lang-latin_2007.dfsg.3-2_all.deb 
> Jun 26 10:35:33 bordemer-6 approx: Proxy response 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Type: text/plain 
> Jun 26 10:35:33 bordemer-6 approx:   Status: 200 
> Jun 26 10:35:33 bordemer-6 approx:   Content-Length: 28434 
> Jun 26 10:35:33 bordemer-6 approx:   Last-Modified: Mon, 28 Apr 2008 09:33:03 
> GMT 
> Jun 26 10:35:33 bordemer-6 approx:   close cache 
> debian/pool/main/t/texlive-lang/texlive-lang-latin_2007.dfsg.3-2_all.deb 
> Jun 26 10:35:33 bordemer-6 approx:   setting mtime to Mon, 28 Apr 2008 
> 09:33:03 GMT 
> Jun 26 10:35:33 bordemer-6 approx: 
> http://idpot.grenoble.grid5000.fr/mirrors/debian/pool/main/t/texlive-lang/texlive-lang-latin_2007.dfsg.3-2_all.deb:
>  delivered 
> Jun 26 10:35:33 bordemer-6 approx: Connection from 127.0.0.1 port 33319 
> Jun 26 10:35:33 bordemer-6 approx: Request 
> /debian/pool/main/t/texlive-base/tetex-extra_2007.dfsg.1-1_all.deb 
> Jun 26 10:35:33 bordemer-6 approx:   Host: localhost:9999 
> Jun 26 10:35:33 bordemer-6 approx:   Connection: keep-alive 
> Jun 26 10:35:33 bordemer-6 approx:   User-Agent: Debian APT-HTTP/1.3 (0.7.14) 
> Jun 26 10:35:33 bordemer-6 approx:   => cache miss 
> Jun 26 10:35:33 bordemer-6 approx: Command: /usr/bin/curl --fail --silent  
> --include 
> "http://idpot.grenoble.grid5000.fr/mirrors/debian/pool/main/t/texlive-base/tetex-extra_2007.dfsg.1-1_all.deb";
>  
> Jun 26 10:35:33 bordemer-6 approx:   close cache 
> debian/pool/main/t/texlive-extra/texlive-publishers_2007.dfsg.2-1_all.deb 
> Jun 26 10:35:33 bordemer-6 approx:   setting mtime to Sun, 11 May 2008 
> 09:47:05 GMT 
> Jun 26 10:35:33 bordemer-6 approx: 
> http://idpot.grenoble.grid5000.fr/mirrors/debian/pool/main/t/texlive-extra/texlive-publishers_2007.dfsg.2-1_all.deb:
>  delivered 
> 
> 
> Looking at the log, it seems that approx has a problem with handling 
> concurrent
> requests for the same file.

The bug was easily reproduced using:

rm /var/cache/approx/debian/pool/main/i/ia32-libs/ia32-libs_2.5_amd64.deb
for i in $(seq 1 5); do wget -O /dev/null
http://localhost:9999/debian/pool/main/i/ia32-libs/ia32-libs_2.5_amd64.deb & 
done

Looks like a nice race condition...
-- 
| Lucas Nussbaum
| [EMAIL PROTECTED]   http://www.lucas-nussbaum.net/ |
| jabber: [EMAIL PROTECTED]             GPG: 1024D/023B3F4F |



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to