linker_unload validate related issue (how to duplicate that?).

Karel Gardas karel.gardas at centrum.cz
Thu Aug 7 08:08:17 UTC 2014


Hi Edward,

thanks for dealing with this. I've found a little bit different reason. 
validate runs with ghc installed in bindisttest/install   dir/ and the 
tests invokes ghc-pkg to get gmp library path. The dir above is then 
returned quoted: "...../install   dir/....".
What I did in my linker_unload fix is to cut -d ' ' -f 1-1 IIRC which 
returned "..../install and nothing more (quotes missing). The shell then 
complains with the message below.

Anyway, this is already fixed by reverting the patch and I already 
validated and pushed another version of it which correctly use head -1 
to get the intended first directory name...

Hopefully this time I've not broken anything.

Thanks!
Karel

On 08/ 6/14 12:04 PM, Edward Z. Yang wrote:
> Austin and I chatted about it, and it's probably because the test is not
> creating ghcconfig.h early enough.  I haven't looked further on how to
> fix it though.
>
> Edward
>
> Excerpts from Karel Gardas's message of 2014-08-06 10:16:20 +0100:
>>
>> Folks,
>>
>> I've noted that validate is failing on Linux recently due to issue in
>> linker_unload. As I've submitted some patch to this test case recently
>> which fixes this on Solaris I'm kind of curious if I broke it or not.
>> Anyway, strange thing is: when I configure ghc and run the test by
>> (g)make TEST=linker_unload on both Linux and Solaris I get no failure.
>> When I validate on Linux (validate is not working on Solaris yet), then
>> I get failure in linker_unload:
>>
>> Wrong exit code (expected 0 , actual 2 )
>> Stdout:
>>
>> Stderr:
>> /bin/sh: 1: Syntax error: Unterminated quoted string
>> make[3]: *** [linker_unload] Error 2
>>
>> *** unexpected failure for linker_unload(normal)
>>
>>
>> when I try to run:
>>
>> cd testsuite
>> make TEST=linker_unload
>>
>> inside this validation tree I again get no failure in this test:
>>
>> [...]
>> =====>  linker_unload(normal) 2522 of 4082 [0, 0, 0]
>> cd ./rts&&  $MAKE -s --no-print-directory linker_unload</dev/null
>>   >linker_unload.run.stdout 2>linker_unload.run.stderr
>>
>> OVERALL SUMMARY for test run started at Wed Aug  6 10:55:17 2014 CEST
>>    0:00:08 spent to go through
>>       4082 total tests, which gave rise to
>>      13459 test cases, of which
>>      13458 were skipped
>>
>>          0 had missing libraries
>>          1 expected passes
>>          0 expected failures
>>
>>          0 caused framework failures
>>          0 unexpected passes
>>          0 unexpected failures
>>
>> make[1]: Leaving directory `/home/karel/src/validate-test/testsuite/tests'
>>
>> I've also noted that this test case fails on Solaris builders with
>> strange error:
>>
>> =====>  linker_unload(normal) 170 of 4082 [0, 0, 1]
>> cd ./rts&&  $MAKE -s --no-print-directory linker_unload</dev/null
>>   >linker_unload.run.stdout 2>linker_unload.run.stderr
>> Wrong exit code (expected 0 , actual 2 )
>> Stdout:
>> Stderr:
>> linker_unload: internal error: loadObj: can't read
>> `/buildbot/gabor-ghc-head-builder/builder/tempbuild/build/bindisttest/install/libHSinteg_BcPVjqcazPNGsNFG4agFty.a'
>> (GHC version 7.9.20140806 for i386_unknown_solaris2)
>> Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
>> gmake[3]: *** [linker_unload] Abort (core dumped)
>>
>>
>> So the question is: why validate fails and why builder fails on this
>> particular test and why my common testing on both Solaris and Linux is
>> not able to duplicate the issue? What's so different between validate
>> and builders and between my common: perl boot; ./configure<some
>> params>; gmake -j12; cd testsuite; gmake THREADS=12 fast
>> ?
>>
>> Thanks!
>> Karel
>



More information about the ghc-devs mailing list