[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Debian installer build: failed or old builds



APT seems to be misbehaving on other architectures too:

http://d-i.debian.org/daily-images/i386/daily/build_netboot-xen.log
> Err http://ftp.gr.debian.org/debian/ unstable/main/debian-installer xserver-xorg-video-fbdev-udeb i386 1:0.4.3-2
>   Could not open file /build/installer-PBPsQ7/build/apt.udeb/cache/archives/partial/ - open (21: Is a directory)

Instead of opening the output file, it tries to open the output
directory for writing (as if the filename part is null).  There is one
place in code that tests for this:

>       if (PkgFile.empty() == true)
>          return _error->Error(_("The package index files are corrupted. No Filename: "

but I wouldn't be surprised if similar code is repeated elsewhere
without this check;  it suggests a corrupted package index.  This code
is pretty insane though.  If StoreFilename is unset, it might try to
stat the 'partial/' directory, realise it doesn't match the expected
size of the .deb, and even try to unlink it.

I notice within a 'fix cppcheck warnings' commit something alarming that
looks like it would cause a functional change.

http://anonscm.debian.org/gitweb/?p=apt/apt.git;a=commitdiff;h=69c2ecbdc937e3c73fe67d3c9bce12a80d3ec7ec#patch2
> -   for (; Vf.end() == false; Vf++)
> +   for (; Vf.end() == false; ++Vf)

If that is some kind of iterator won't it now skip over the first
element?  Otherwise how did it ever work before?  And confusingly, the
same iterator is incremented if it gets to the end of that 'loop', in
which case it could definitely skip over something, if the function is
meant to be re-entrant.

Regards,
-- 
Steven Chamberlain
steven@pyro.eu.org


Reply to: