Hi.

Your patch have fixed the bug on my side, thanks!


On Fri, Aug 15, 2014 at 4:11 PM, Mark Hindley <[email protected]> wrote:

> On Fri, Jul 18, 2014 at 06:19:50PM +0300, Sergii Pylypenko wrote:
> > Package: apt-cacher
> > Version: 1.7.9.1
> > Severity: normal
> >
> > Apt-cacher fails when downloading package
> libgphoto2-2_2.4.14-2_armhf.deb.
> >
> > Steps to reproduce:
> >
> > Install apt-cacher with default configuration.
> >
> > Run command:
> >
> > wget
> >
> http://localhost:3142/ftp.de.debian.org/debian/pool/main/libg/libgphoto2/libgphoto2-2_2.4.14-2_armhf.deb
> >
> > wget will report 'connection closed' near the end of the download, and
> retry
> > downloading in an infinite loop, with the same error.
> >
> > /var/log/apt-cacher/error.log contains this message for each failed
> download:
> >
> > Fri Jul 18 17:57:18 2014|info [13139]: ALARM! /var/cache/apt-
> > cacher/packages/libgphoto2-2_2.4.14-2_armhf.deb file size mismatch (found
> > 933504, expected 933508). Renaming to /var/cache/apt-
> > cacher/packages/libgphoto2-2_2.4.14-2_armhf.deb.corrupted.
>
> Thanks for this. Sorry for being slow -- I have been away.
>
> Please could you try this patch which fixes it for me
>
> Mark
>
>
> commit 5c67363061b92b1bc1e0d9eefe7b848d04a48773
> Author: Mark Hindley <[email protected]>
> Date:   Fri Aug 15 14:09:48 2014 +0100
>
>     Protect an "\r\n\r\n" sequences from being chomp()ed by the reading
> process.
>
> diff --git a/apt-cacher b/apt-cacher
> index 3dd1eef..bd5edf9 100755
> --- a/apt-cacher
> +++ b/apt-cacher
> @@ -1360,9 +1360,11 @@ sub body_callback {
>      # Just add separators to the stream. The reading process will chomp
>      # these. This prevents consuming amounts of memory by getting the
> whole
>      # file in a single chunk.
> +    my $length = length($chunk);
> +    $chunk =~ s/\r\n\r\n/\r\r\n\r\n\n\r\r\n\r\n\n/g; # Protect any
> \r\n\r\n in the stream
>      local $\ = "\r\n\r\n";
>      print $fh $chunk;
> -    return length($chunk);
> +    return $length;
>  }
>
>  sub debug_callback {
>

Reply via email to