Anyone else failing to validate on 'linker_unload'?

Austin Seipp aseipp at pobox.com
Mon Sep 2 05:01:24 CEST 2013


Oops, should have said this: if you checkout the Makefile for
testsuite/tests/rts - at the very bottom - you'll see the
linker_unload target. When run, the executable needs some arguments so
it knows what to try and load:

---
./linker_unload $(BASE) $(GHC_PRIM) $(INTEGER_GMP)
---

So you also need to provide the right arguments. Sorry about that!

On Sun, Sep 1, 2013 at 9:54 PM, Ryan Newton <rrnewton at gmail.com> wrote:
> Hi Austin,
>
> Should have said -- this is 64-bit RHEL 6 (my academic departments
> standardized configuration).
>
>  $ uname -a
>      Linux  2.6.32-358.14.1.el6.x86_64 #1 SMP Mon Jun 17 15:54:20 EDT 2013
> x86_64 x86_64 x86_64 GNU/Linux
>
> Weirdly it seems to have a different behavior when run by "make" and by
> hand.  When I run the make command you provided it segfaults with error code
> 2:
>
> cd . && $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:
> make[1]: *** [linker_unload] Segmentation fault (core dumped)
> *** unexpected failure for linker_unload(normal)
> Unexpected results from:
> TEST="linker_unload"
>
> But then when I run it by hand with "./linker_unload" or "valgrind
> ./linker_unload" I get an unknown symbol error with exit code 1:
>
> ==70613==
> linker_unload: Test.o: unknown symbol `base_GHCziNum_zdfNumInt_closure'
> linker_unload: resolveObjs failed
> ==70613==
> ==70613== HEAP SUMMARY:
>
>
>    -Ryan
>
>
> On Sun, Sep 1, 2013 at 10:46 PM, Austin Seipp <aseipp at pobox.com> wrote:
>>
>> I have also not seen this test fail on amd64/Linux since Simon
>> committed it. From the valgrind output, it looks like your machine is
>> 32bit, correct Ryan? Edward told me yesterday on IRC he saw this fail
>> on 64bit Linux, so I'm a little confused.
>>
>> Can you please try this?
>>
>> $ cd testsuite/tests/rts
>> $ make TEST="linker_unload" EXTRA_HC_OPTS="-debug"
>> $ valgrind ./linker_unload
>>
>> This will link you with a debug copy of the RTS, so Valgrind/GDB can
>> relate errors back to the relevant source code. Perhaps this will help
>> shed light on your problem.
>>
>>
>> On Sun, Sep 1, 2013 at 9:39 PM, Edward Z. Yang <ezyang at mit.edu> wrote:
>> > However, as far as I can tell, it is not 100% reproduceable.
>> > In a recent validate of 5f98d44d8617756971cf47c040f2556de4e98f63,
>> > this test does not fail.
>> >
>> > Edward
>> >
>> > Excerpts from Edward Z. Yang's message of Fri Aug 30 21:55:29 -0700
>> > 2013:
>> >> Yes, this one is failing for me too. Probably related to the
>> >> recent object unload patch for
>> >> http://ghc.haskell.org/trac/ghc/ticket/8039
>> >>
>> >> Excerpts from Ryan Newton's message of Fri Aug 30 21:51:24 -0700 2013:
>> >> > That test builds an executable named 'linker_unload' which segfaults
>> >> > for
>> >> > me.  Valgrind says this:
>> >> >
>> >> >
>> >> >     ==42800== Invalid read of size 8
>> >> >     ==42800==    at 0x66945F: checkUnload (in
>> >> >
>> >> > /home/beehive/ryan_scratch/validate14/testsuite/tests/rts/linker_unload)
>> >> >     ==42800==    by 0x657F7A: GarbageCollect (in
>> >> >
>> >> > /home/beehive/ryan_scratch/validate14/testsuite/tests/rts/linker_unload)
>> >> >     ==42800==    by 0x651790: scheduleDoGC (in
>> >> >
>> >> > /home/beehive/ryan_scratch/validate14/testsuite/tests/rts/linker_unload)
>> >> >     ==42800==    by 0x6518B4: performGC_ (in
>> >> >
>> >> > /home/beehive/ryan_scratch/validate14/testsuite/tests/rts/linker_unload)
>> >> >     ==42800==    by 0x403BB1: main (in
>> >> >
>> >> > /home/beehive/ryan_scratch/validate14/testsuite/tests/rts/linker_unload)
>> >> >     ==42800==  Address 0x5bfdd20 is 80 bytes inside a block of size
>> >> > 120
>> >> > free'd
>> >> >     ==42800==    at 0x4C273F0: free (vg_replace_malloc.c:446)
>> >> >     ==42800==    by 0x66945E: checkUnload (in
>> >> >
>> >> > /home/beehive/ryan_scratch/validate14/testsuite/tests/rts/linker_unload)
>> >> >     ==42800==    by 0x657F7A: GarbageCollect (in
>> >> >
>> >> > /home/beehive/ryan_scratch/validate14/testsuite/tests/rts/linker_unload)
>> >> >     ==42800==    by 0x651790: scheduleDoGC (in
>> >> >
>> >> > /home/beehive/ryan_scratch/validate14/testsuite/tests/rts/linker_unload)
>> >> >     ==42800==    by 0x6518B4: performGC_ (in
>> >> >
>> >> > /home/beehive/ryan_scratch/validate14/testsuite/tests/rts/linker_unload)
>> >> >     ==42800==    by 0x403BB1: main (in
>> >> >
>> >> > /home/beehive/ryan_scratch/validate14/testsuite/tests/rts/linker_unload)
>> >> >
>> >> > This went the same across a couple different independent checkouts.
>> >> >
>> >> >   -Ryan
>> >
>> > _______________________________________________
>> > ghc-devs mailing list
>> > ghc-devs at haskell.org
>> > http://www.haskell.org/mailman/listinfo/ghc-devs
>>
>>
>>
>> --
>> Regards,
>> Austin - PGP: 4096R/0x91384671
>>
>> _______________________________________________
>> ghc-devs mailing list
>> ghc-devs at haskell.org
>> http://www.haskell.org/mailman/listinfo/ghc-devs
>
>



-- 
Regards,
Austin - PGP: 4096R/0x91384671




More information about the ghc-devs mailing list