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

Bug#401017: think i found it



looking at the source, i think i see the problem:

root@copelandia:/# apt-get -o Debug::pkgAcquire::Diffs=true update
Get:1 http://ftp.se.debian.org sid Release.gpg [378B]
Get:2 http://ftp.se.debian.org sid Release [79.6kB]
99% [2 Release gpgv 79562]pkgAcqDiffIndex:
http://ftp.se.debian.org/debian/dists/sid/main/binary-amd64/Packages.diff/Index
pkgAcqIndexDiffs::pkgAcqIndexDiffs(): /var/lib/apt/lists/ftp.se.debian.org_debian_dists_sid_main_binary-amd64_Packages
Custom600Header-IMS: /var/lib/apt/lists/ftp.se.debian.org_debian_dists_sid_main_binary-amd64_Packages.IndexDiff
Get:3 http://ftp.se.debian.org sid/main Packages/DiffIndex [2038B]
97% [3 Packages 0/2038B 0%]pkgAcqDiffIndex::Done():
http://ftp.se.debian.org/debian/dists/sid/main/binary-amd64/Packages.diff/Index
Renaming: /var/lib/apt/lists/partial/ftp.se.debian.org_debian_dists_sid_main_binary-amd64_Packages.DiffIndex -> /var/lib/apt/lists/ftp.se.debian.org_debian_dists_sid_main_binary-amd64_Packages.IndexDiff
pkgAcqIndexDiffs::ParseIndexDiff() /var/lib/apt/lists/ftp.se.debian.org_debian_dists_sid_main_binary-amd64_Packages.IndexDiff
SHA1-Current: 5e2f68bec8b76e723623f268fe72fb714540c986
Can't find a patch in the index file
pkgAcqDiffIndex failed:
http://ftp.se.debian.org/debian/dists/sid/main/binary-amd64/Packages.diff/Index
Falling back to normal index file aquire
pkgAcqDiffIndex failed:
http://ftp.se.debian.org/debian/dists/sid/main/binary-amd64/Packages.diff/Index
Falling back to normal index file aquire
Get:4 http://ftp.se.debian.org sid/main Packages [5779kB]
Get:5 http://ftp.se.debian.org sid/main Packages [5779kB]



the file is being queued twice by some broken login in the
acquire-item.cc code.  if you look in the function 

pkgAcqDiffIndex::ParseDiffIndex()

you'll find:

      // no information how to get the patches, bail out
      if(!found)
      {
         if(Debug)
            std::clog << "Can't find a patch in the index file" <<
std::endl;
         // Failed will queue a big package file
         Failed("", NULL);
      }

which would make sense, *except*, later on it will return false.
outside in the calling function pkgAcqDiffIndex::Done(), we have

   if(!ParseDiffIndex(DestFile))
      return Failed("", NULL);

and Failed seems to queue a file each time it's called, and i'll bet you
the same file being queued twice in a row is the cause of all this
trouble, and probably also the wierd 0-byte type errors.



	sean

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: