Git-Core Problem Getting HTTP: CURL_MULTI.

Bryan Larsen bryan at larsen.st
Sun Feb 18 11:00:46 PST 2007


I tracked the problem down.

running "git-http-fetch -v -a -w remotes/origin/master heads/master 
http://familiar.handhelds.org/git/familiar-build.git/" from Altoine's 
very nice bug report yielded:

snip...

got 5512a1f94e101c0369170e03817383f17ceb8d35

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x000a4000
0x00491955 in multi_runsingle (multi=0x11082d0, easy=0x110bfd0) at 
multi.c:798
798     multi.c: No such file or directory.
         in multi.c
(gdb) bt
#0  0x00491955 in multi_runsingle (multi=0x11082d0, easy=0x110bfd0) at 
multi.c:798
#1  0x004932b9 in curl_multi_perform (multi_handle=0x11082d0, 
running_handles=0xbffff3b4) at multi.c:1328
#2  0x00004ab2 in fill_active_slots ()
#3  0x00003aeb in step_active_slots ()
#4  0x00003b35 in run_active_slot ()
#5  0x00005fe6 in fetch_object ()
#6  0x000061c7 in fetch ()
#7  0x00002230 in loop ()
#8  0x000027c9 in pull ()
#9  0x000068a3 in main ()
(gdb)

I can work around the problem in git-core by disabling CURL_MULTI, and 
have done so in the attached patch.  Yeled, if you manage to fix the 
underlying problem, please let me know and I'll reenable CURL_MULTI and 
its accompanying nice speedup.

thanks,
Bryan


Altoine Barker wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> My apologies for overlooking to add that bit of information. Yes, I have
> /opt/local/bin listed first in my PATH statement. Here is what I get
> when I type "echo $PATH":
> 
> <snip>
> /Library/Frameworks/Python.framework/Versions/Current/bin:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/local/bin:/usr/sbin
> </snip>
> 
> I unpacked and tried the new git stable (1.5.0) and am able to execute a
> successful http git of git itself. But I fail with 2.6 linux kernel (The
> requested URL returned error: 404 error: Could not interpret
> tags/v2.6.11 as something to pull), familiar.git, and elinks.git (both
> familiar and elinks produced this error: git-clone: line 300:  3228
> Segmentation fault      git-http-fetch -v -a -w "$tname" "$name" "$1/").
> 
> I will break down the commands and their output. I will be brief where
> posssible. I will note where I am brief. I put git-1.5.0 into this
> directory; /Volumes/COZ/GIT_/bin.
> 
> First:
> 
> <snip>
> MOBILEHOUSE:$ echo $PATH
> /Library/Frameworks/Python.framework/Versions/Current/bin:/Volumes/COZ/GIT_/bin:/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/local/bin:/usr/sbin
> MOBILEHOUSE:$ which git
> /Volumes/COZ/GIT_/bin/git
> MOBILEHOUSE:$ git --version
> git version 1.5.0
> MOBILEHOUSE:$ which curl
> /opt/local/bin/curl
> MOBILEHOUSE:$ curl --version
> curl 7.16.0 (powerpc-apple-darwin8.8.0) libcurl/7.16.0 OpenSSL/0.9.8d
> zlib/1.2.3
> Protocols: tftp ftp telnet dict ldap http file https ftps
> Features: Largefile NTLM SSL libz
> </snip>
> 
> Second (Two familiar (handheld distro) http based git repositories):
> 
> <snip>
> sh -x git-clone http://familiar.handhelds.org/git/familiar-build.git
> </snip>
> Now for the output of that command:
> 
> <snip>
> + unset CDPATH
> + '[' -n '' ']'
> + quiet=
> + local=no
> + use_local=no
> + local_shared=no
> + unset template
> + no_checkout=
> + upload_pack=
> + bare=
> + reference=
> + origin=
> + origin_override=
> + use_separate_remote=t
> + depth=
> + break
> + repo=http://familiar.handhelds.org/git/familiar-build.git
> + test -n http://familiar.handhelds.org/git/familiar-build.git
> + test yes = ''
> + test -z ''
> + origin=origin
> ++ get_repo_base http://familiar.handhelds.org/git/familiar-build.git
> + base=
> + dir=
> + '[' -z '' ']'
> ++ echo http://familiar.handhelds.org/git/familiar-build.git
> ++ sed -e 's|/$||' -e 's|:*/*\.git$||' -e 's|.*[/:]||g'
> + dir=familiar-build
> + '[' -e familiar-build ']'
> + mkdir -p familiar-build
> ++ cd familiar-build
> ++ pwd
> + D=/Volumes/COZ/familiar_/familiar-build
> + trap 'err=$?; cd ..; rm -rf "$D"; exit $err' 0
> + GIT_DIR=/Volumes/COZ/familiar_/familiar-build/.git
> + export GIT_DIR
> + git-init
> Initialized empty Git repository in
> /Volumes/COZ/familiar_/familiar-build/.git/
> + test -n ''
> + rm -f /Volumes/COZ/familiar_/familiar-build/.git/CLONE_HEAD
> + test -z ''
> + clone_dumb_http http://familiar.handhelds.org/git/familiar-build.git
> /Volumes/COZ/familiar_/familiar-build
> + cd /Volumes/COZ/familiar_/familiar-build
> + clone_tmp=/Volumes/COZ/familiar_/familiar-build/.git/clone-tmp
> + mkdir -p /Volumes/COZ/familiar_/familiar-build/.git/clone-tmp
> ++ git-config --bool http.noEPSV
> + '[' -n '' -o '' = true ']'
> + http_fetch
> http://familiar.handhelds.org/git/familiar-build.git/info/refs
> /Volumes/COZ/familiar_/familiar-build/.git/clone-tmp/refs
> + curl -nsfL http://familiar.handhelds.org/git/familiar-build.git/info/refs
> + read sha1 refname
> ++ expr zrefs/heads/master : 'zrefs/\(.*\)'
> + name=heads/master
> + test -n t
> ++ expr zheads/master : 'zheads/\(.*\)'
> + branch_name=master
> + tname=remotes/origin/master
> + git-http-fetch -v -a -w remotes/origin/master heads/master
> http://familiar.handhelds.org/git/familiar-build.git/
> got c0a02c4137d8b7c4975ae603c0120dd1a6f3df11
> walk c0a02c4137d8b7c4975ae603c0120dd1a6f3df11
> got a4199a1c0bee918424aec5216eb2540cf1ca0008
> got 01dada37607f23f60118475f17d1201023733e37
> walk 01dada37607f23f60118475f17d1201023733e37
> got cd27f64e64783e0fc871cc64a65badb178f00c29
> got 1c31342b9fe16fd0ef8420905a39a0a16ba0d478
> got c750ad605b32777239163b0236dea55f73cf1d80
> got e0fd39a56e2c4d6c7bfcaea1a0098b9babeab534
> got 90ec22bee124705a9164f46a994cad1890bd92b5
> got 4129e4c523922afe3b10323fad256cfb1ac09e0e
> got 48747b05409ddd791c0323e0bdc8430cd6a3b6f8
> walk 48747b05409ddd791c0323e0bdc8430cd6a3b6f8
> got f4b65ff8348e2a2760f290ba9cf75307e2e71da6
> got cf0aac99d9b73ec039fd19c5446dda20d89fa897
> got 511fae4a2562bdaa73ceff46a29b68e8e8abc8fb
> got 890710a55428f23ba55f34a06f177c95b1225949
> got 652ebcee6e424b3bfda2519f0cc193c7536cf6db
> got 48d417be5f6ae83ac35a816b543072ce76b54040
> got cb1b64317b1fa70d3b0171ecb7f9e7bedc9dad69
> got 5dc3f4723b5fec43e04d95ccd6f862fc0975331a
> got adb14a75532aeba460c62443b71db624e97a03a0
> got fe33e5613a38d917c37c85ed94e4712feac11850
> got fb950dc69feb8afa93493747f33d6e1c02659b55
> got b2a838d53670a2d4f300fd2e7c5a69d42ae0c5c6
> got 590c1ef0648a438acb98730698fd129a5c707e53
> got 103be97f189ad275cd519357bdcace99d6e643d6
> got dd06d15954ac0d7b7ec729856b1690d73a23efd6
> got 7684a0a6e79f0b68b0944d9bb917136a41e3885f
> got d5fdab45f0d4a814b9e4e12adebd691a3ede1f59
> got f48c983ab0686d1ea717db55573081e31637f896
> got 16bcddc4d023ec403d00de4d8eaaea7bfa6ac4d4
> got c9aeefb9466529eb812abe6172df4ee02a3946f9
> got df6caa28ed60273cb01f761d6eba6d44399ef2bb
> got 8df8e5ac5cb92ceda9d2838c21ab6f76a0ce8428
> got 1d75964f578d99748bbb8ae0a751259e79a7915c
> got 64d32945ba6e8eb798948f4b9dae987864ada88c
> got b060c4f38486e1c4ebb734b7b4d75081057aa112
> git-clone: line 300:  3426 Segmentation fault      git-http-fetch -v -a
> - -w "$tname" "$name" "$1/"
> + exit 1
> + err=1
> + cd ..
> + rm -rf /Volumes/COZ/familiar_/familiar-build
> + exit 1
> </snip>
> 

snip....

> 
> - -Altoine
> 
> P.S. Could anyone on the curl's mailing list forward this email to their
> list as I am quite full of the lists I have now to help me undertake a
> Mac OS X based familiar cross-compiler environment. TIA
> 
> P.P.S. Bryan, I forward this to the familiar list and macports list
> since this directly effects what I am trying to do on both of these lists.
> 
> Bryan Larsen wrote:
>> stabbing wildly in the blue here:  does /opt/local/bin precede /usr/bin
>> in your path?  On older version of curl is installed in OS X by default
>> and may be causing the problems.
>>
>> Bryan
>>
>>
>> Altoine Barker wrote:
>> I see you are listed as the maintainer of the git-core project. I would
>> like to let you know that any git site that is accessed by port 80 will
>> not work. After entering this command:
>>
>> <snip>
>> git clone http://git.kernel.org/pub/scm/git/git.git
>> </snip>
>>
>> I get the following error messages:
>>
>> <snip>
>> error: Unable to start request
>> error: Could not interpret heads/html as something to pull
>> </snip>
>>
>> Is git-core using curl at all to pull these files? I do not know how to
>> work macports but I am noob and I am learning. TIA for any information
>> and your time in reading this message. Before I go, let me give you the
>> specs:
>>
>> iBook G4
>> Mac OS X 10.4.8
>> MacPorts 1.320
>> git-core 1.4.4.4
>> curl 7.16.0
>> Apple Xcode gcc 4.0.1 build 5363 (The latest and greatest for a PowerPC)
>>
>> -Altoine
> 
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.5 (Darwin)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
> 
> iD8DBQFF2DSlS0foIafBdlkRAtP+AJ0dnt6/BJVNuwMSVJ2MGCRb5tK2+gCgjtdy
> iGPznL4QGhV5xNream6rRQs=
> =mfqt
> -----END PGP SIGNATURE-----
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: git-core-1.5.0.patch
Type: text/x-patch
Size: 3620 bytes
Desc: not available
Url : http://lists.macosforge.org/pipermail/macports-users/attachments/20070218/dbfb8065/git-core-1.5.0.bin


More information about the macports-users mailing list