[pacman-dev] bug in pacman 3.3.2 retrieving of repos?

Marc - A. Dahlhaus [ Administration | Westermann GmbH ] mad at wol.de
Mon Oct 12 10:12:03 EDT 2009


Hello Dan,

Am Montag, den 12.10.2009, 07:20 -0500 schrieb Dan McGee:
> On Mon, Oct 12, 2009 at 7:14 AM, Marc - A. Dahlhaus [ Administration |
> Westermann GmbH ] <mad at wol.de> wrote:
> > Hello List,
> >
> >
> > pacman 3.3.2 libfetch backend doesn't retrieve an updated repo via http
> > (tested with "touch repo.db.tar.gz" on the http server) here.
> >
> > I checked the http headers with curl just to be sure that my setup isn't
> > f***ed up in some way and they are updated just fine after every touch
> > on the file, so i has to be a problem with libfetch or pacman itself.
> >
> > A local revert to pacman 3.3.0 (no build-changes or libfetch changes and
> > the exact same build-environment) fixes this problem here so it looks
> > like a messed up usage of libfetch in pacman 3.3.2 release.
> >
> > Can someone else reproduce this behaviour?
> 
> No. I can't reproduce this *at all*, anywhere.
> 
> > Because i have no clue on how to use libfetch the right way without
> > reading the documentation and analyse the code in pacman afterwards, i
> > hope someone else wants to hound it down.
> 
> This is one of those emails that is slightly aggravating. You tried to
> generalize the problem so much, assuming everyone else saw it, that
> you didn't include anything to even reproduce it!

sorry, i'm not a native english writer and i often loose some details
during translation because of that, i'll try to clarify it below.

> What mirror? What repo? What does it look like? What commands did you
> run? Did you try with '--debug' to see if any helpful messages showed
> up there during the download?

It is a local mirror served on lighttpd.

Pacman 3.3.2 doesn't retrieve an regular (with repo-add or repo-remove)
updated repo tarball on "pacman -Sy" even if it changed the size or was
touched serval times with "touch repo.db.tar.gz" on the http server.

The mtime exposed in the http response headers would be the information
on which pacmans libfetch download determines if a repo was updated and
should be downloaded, right?

I checked with "curl -v http://server/repo.db.tar.gz" and the timestamps
exposed via http header are updated after every repo update or touch on
the repo file, which was the case.

Steps to reproduce:

client$ pavman -V # is 3.3.2

# to get the actual version before the following touch
client$ pacman -Syy

# update mtime on repo
server$ touch repo.db.tar.gz

# this is where it fails
client$ pacman -Sy
# it doesn't download repo and debug says:
# debug: mtimes are identical, skipping repo.db.tar.gz

# local downgrade to pacman 3.3.0
client$ pacman -U pacman-3.3.0-i686.pkg.tar.xz

client$ pavman -V # is 3.3.0

# works just fine, mtime updates are spotted
client$ pacman -Sy
# debug: sync: new mtime for repo: 1255352714

After the pacman -Sy calls i checked the http response headers and they
stayed the same.

I also deactivated ShowSize and TotalDownload options in pacman.conf for
this test but it looks unrelated as it doesn't change without this
non-default options.

I checked 3.3.1 as well and it looks like the problem i'm facing was
introduced with it.

Well it could be a local problem with my environment of course, but
shouldn't 3.3.0 then suffer from the same problem then? As there were
some fiddling with the libfetch download code in pacman on version 3.3.1
and 3.3.2 i thought it might be related to that.

Marc



More information about the pacman-dev mailing list