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

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
linker_unload.run.stdout 2>linker_unload.run.stderr
linker_unload.run.stdout 2>linker_unload.run.stderr Wrong exit code (expected 0 , actual 2 ) Stdout: 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 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

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
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.run.stdout 2>linker_unload.run.stderr Wrong exit code (expected 0 , actual 2 ) Stdout: Stderr:
=====> linker_unload(normal) 170 of 4082 [0, 0, 1] cd ./rts && $MAKE -s --no-print-directory linker_unload 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

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
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.run.stdout 2>linker_unload.run.stderr Wrong exit code (expected 0 , actual 2 ) Stdout: Stderr:
=====> linker_unload(normal) 170 of 4082 [0, 0, 1] cd ./rts&& $MAKE -s --no-print-directory linker_unloadhttp://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

Just for the record validate fails since it is using ghc installed into bindisttest/install dir/ subdirectory. The spaces here are really nasty test as my fix to linker_unload has not counted with the possibility of having ghc installed in such location (cut -d ' ' ... does bad thing in this case). So yes, that was me who broke validate but this should be already fixed by revert of problematic patch. Sorry for that, Karel On 08/ 6/14 11:16 AM, Karel Gardas wrote:
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 ?
participants (2)
-
Edward Z. Yang
-
Karel Gardas