darcs

Issue 2088 Recent Intel Mac OS X/ghc-6.10.4 built darcs fails network tests get, issue1503_prefer_local_caches_to_remote_one, and lazy-get with "Segmentation fault"

Title Recent Intel Mac OS X/ghc-6.10.4 built darcs fails network tests get, issue1503_prefer_local_caches_to_remote_one, and lazy-get with "Segmentation fault"
Priority Status resolved
Milestone 2.8.0 Resolved in
Superseder Nosy List thorkilnaur
Assigned To
Topics

Created on 2011-07-12.19:50:08 by thorkilnaur, last changed 2011-10-15.16:13:35 by thorkilnaur.

Messages
msg14587 (view) Author: thorkilnaur Date: 2011-07-12.19:50:06
A recent darcs, built With

> $ uname -a
> Darwin thorkil-naurs-intel-mac-mini.local 9.8.0 Darwin Kernel Version
9.8.0: Wed Jul 15 16:55:01 PDT 2009; root:xnu-1228.15.4~1/RELEASE_I386 i386
> $ ghc --version
> The Glorious Glasgow Haskell Compilation System, version 6.10.4
> $ 

fails its network tests get,
issue1503_prefer_local_caches_to_remote_one, and lazy-get with
"Segmentation fault". Using lazy-get as a representative:

> $ ./dist/build/darcs-test/darcs-test --darcs
`pwd`/dist/build/darcs/darcs --network=yes --shell=no --unit=no -t lazy-get
> network/lazy-get.sh (Darcs2): [Failed]
> | 
> | rm -rf temp temp2 temp3
> | 
> | darcs get --lazy http://darcs.net/repos/franchise temp
> | test: line 6: 29559 Segmentation fault      darcs get --lazy
http://darcs.net/repos/franchise temp
> 
> 
>          Shell       Total      
>  Passed  0           0          
>  Failed  1           1          
>  Total   1           1          
> $ 

Similar reports are produced for the other failing tests.

The failing tests seem to be the only tests in the entire test suite
(including shell tests) that involve actual transfer of repository data
over a network connection.

When run directly and with -debug:

> $
/Users/thorkilnaur/tn/darcsDarcsRepository/screened/dist/build/Darcs/darcs
get --lazy http://darcs.net/repos/franchise temp8 --debug
> Starting work on get...
> URL.copyUrlWithPriority
(http://darcs.net/repos/franchise/_darcs/prefs/motd
>                       -> ./darcs30493)
> URL.waiUtRULr.lu rhltTthpr:e/a/dd
a(rhctst.pnet/repos/franchise/_darcs/prefs/motd
> ://darcs.net/repos/franchise/_darcs/prefs/motd
>             -> ./darcs30493)
> Warning: pipelining is disabled, because libcurl version darcs was
compiled with is too old (< 7.19.1)
> URL.requestUrl (http://darcs.net/repos/franchise/_darcs/prefs/motd
>               -> ./darcs30493)
> URL.waitNextUrl start
> URL.***********************************
> 
> This is no longer the main franchise repository, try pulling from:
> 
> http://physics.oregonstate.edu/~roundyd/code/franchise
> 
> ************************************************************
> -----------------------------------------------------------------
> ########################################################################
>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> **********************
> waBietgNienxntiUnrl succeeded:
http://darcs.net/repos/franchise/_darcs/prefs/motd ./darcs30493
> g identifying repository http://darcs.net/repos/franchise
> URL.copyUrlWithPriority (http://darcs.net/repos/franchise/_darcs/format
>                       -> ./darcs30493)
> URL.waitUrl http://darcs.net/repos/franchise/_darcs/format
> URL.urlThread (http://darcs.net/repos/franchise/_darcs/format
>             -> ./darcs30493)
> URL.requestUrl (http://darcs.net/repos/franchise/_darcs/format
>               -> ./darcs30493)
> URL.waitNextUrl start
> URL.waitNextUrl succeeded:
http://darcs.net/repos/franchise/_darcs/format ./darcs30493
> Done identifying repository http://darcs.net/repos/franchise
> Found the format of http://darcs.net/repos/franchise...
> Beginning identifying repository .
> Done identifying repository .
> Beginning identifying repository .
> Done identifying repository .
> Beginning identifying repository .
> Done identifying repository .
> Beginning identifying repository .
> Done identifying repository .
> Beginning identifying repository .
> Done identifying repository .
> Beginning identifying repository .
> Done identifying repository .
> Beginning identifying repository .
> Done identifying repository .
> Beginning identifying repository .
> Done identifying repository .
> Beginning identifying repository .
> Done identifying repository .
> Finished initializing new directory.
> Beginning identifying repository .
> Done identifying repository .
> Identified darcs-2 repo:
/Users/thorkilnaur/tn/tmp/darcs/buildbot/20110705_2104-test-network-3-segmentation-faults/temp8
> Identifying and copying repository...
> Beginning identifying repository http://darcs.net/repos/franchise
> URL.copyUrlWithPriority (http://darcs.net/repos/franchise/_darcs/format
>                       -> ./darcs30493)
> URL.waitUrl http://darcs.net/repos/franchise/_darcs/format
> URL.urlThread (http://darcs.net/repos/franchise/_darcs/format
>             -> ./darcs30493)
> URL.requestUrl (http://darcs.net/repos/franchise/_darcs/format
>               -> ./darcs30493)
> URL.waitNextUrl start
> Done identifying repository http://darcs.net/repos/franchise
> URL.copyUrlWithPriority
(http://darcs.net/repos/franchise/_darcs/prefs/sources
>                       -> ./darcs30493)
> URL.waitUrl http://darcs.net/repos/franchise/_darcs/prefs/sources
> URL.waitNextUrl succeeded:
http://darcs.net/repos/franchise/_darcs/format ./darcs30493
> URL.urlThread (http://darcs.net/repos/franchise/_darcs/prefs/sources
>             -> ./darcs30493)
> URL.requestUrl (http://darcs.net/repos/franchise/_darcs/prefs/sources
>               -> ./darcs30493)
> URL.waitNextUrl start
> Segmentation fault
> $ 

How do I proceed from here to investigate further?

Best regards
Thorkil
msg14748 (view) Author: markstos Date: 2011-10-13.12:40:12
Do you get the same result with --packs and --nopacks?
msg14775 (view) Author: thorkilnaur Date: 2011-10-15.16:13:34
Hello,

From #darcs:

> Aug 16 09:28:23 <mornfall>      thorkilnaur: I have disabled cURL on
the OSX slaves for now, but could you please cabal install HTTP?
> Aug 16 09:28:40 <mornfall>      thorkilnaur: (I suspect this is the
cause for the segfaults in network tests...)

Having following this advice, the network tests succeeded.

Subsequently, I have received other indications that curl, at least in
the version that I used at the time, was causing problems. See:

  http://www.haskell.org/pipermail/cvs-ghc/2011-October/066434.html

I am presently using

> $ curl --version
> curl 7.22.0 (i386-apple-darwin9.8.0) libcurl/7.22.0 OpenSSL/1.0.0e
zlib/1.2.5 libidn/1.22
> Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s
rtsp smtp smtps telnet tftp
> Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz
> $ 

So perhaps using this curl would also repair the network tests.

At any rate, I am closing this issue as resolved.

Best regards
Thorkil
History
Date User Action Args
2011-07-12 19:50:08thorkilnaurcreate
2011-08-13 12:51:41ganeshsetmilestone: 2.8.0
2011-10-13 12:40:13markstossetstatus: unknown -> waiting-for
messages: + msg14748
2011-10-15 16:13:35thorkilnaursetstatus: waiting-for -> resolved
messages: + msg14775