On Wed, 18 Aug 2010 00:06:44 -0700 mike rosset <schizoid29@gmail.com> wrote:
How would I best go about researching this? I have all the components right here, and it's easy enough to trigger, but I have no experience whatsoever in debugging libraries or C code in general.
I could try and set up a chroot to bisect pacman / lib{fetch,archive,alpm} but I have no clue how good or bad random pacman versions interact with the rest of the system.
What I did to replicate this was create a chroot ie
sudo mkdir -p archtest/var/lib/pacman
and then test with a large group something like this
sudo pacman -Sy gnome --cachedir $(pwd)/archtest/var/cache/pacman/pkg/ -r ./archtest/
if you need to download again you can just purge chroot cachedir. after that I'm not sure how best to debug libfetch possibly using netstat, lsof and strace?
After playing around i a throwaway-chroot, the problem seems to be libfetch >=2.30. I just modified the PKGBUILD to different versions (without replacing or rebuilding pacman at all). Libfetch 2.26 fetches files without a problem, 2.30+ fails after downloading 5 files while MaxInstances in proftpd is set to 8. If I set MaxInstances to 3, downloading fails outright (also only for 2.30+), so something there seems to consume 3 connections before actually downloading something at all. I'd try to break it down further, but NetBSDs CVS server isn't talking to me at the moment.