[pacman-dev] [BUG] segfault when the download fails

Xavier shiningxc at gmail.com
Fri Dec 7 09:12:37 EST 2007

On Thu, Dec 06, 2007 at 06:24:55PM -0600, Aaron Griffin wrote:
> On Dec 6, 2007 5:46 PM, Xavier <shiningxc at gmail.com> wrote:
> > [00:27:01] debug: using 'hunspell-1.2.1-2-i686.pkg.tar.gz'
> > [00:27:02] debug: using 'openoffice-fr-2.3.1-1-i686.pkg.tar.gz'
> > [00:27:02] debug: using 'hunspell-1.2.1-2-i686.pkg.tar.gz'
> A cursory look here shows something important. We have the following logic:
> for s in servers:
>     for f in files:
>         if cant_get_file: continue
> Well that's just not right - we want to pop out to the parent loop,
> not move to the next file
> While that's wrong and all, it's actually not really the error... I
> mean, just looking at it... it should still WORK in this case, just
> much slower due to extra loop iterations.

This looked sane to me yesterday, so I included the s/continue/break change
in my patch, but I'm not sure anymore.
I think Nagy has a very valid point :

On Fri, Dec 07, 2007 at 02:25:28PM +0100, Nagy Gabor wrote:
> 1st server: fastest server
> 2nd server: "fallback1" server: slow(er), but contains old packages too
> 3nd server: "fallback2": ftp://ftp.archlinux.org <- this should be the most
> up2date
> So I would like you to use the fastest server as much as possible ;-) <-
> and I've synced my repo from there, so that "fits" better to my actual sync
> db...

And actually, in my example above, the mirror didn't have openoffice-fr, but
it did have hunspell. And there were probably many other packages available
from it, it's just that the syncing wasn't fully done yet.

Though, there is also the case where the mirror is totally unavailable, and
you want to download/install many packages. But in this case, the current
behavior still works, it just will just be slower and print a lot of
With the single mirror list file, it's also easy to temporarily disable that
dead mirror by commenting it.

More information about the pacman-dev mailing list