Menu

#20 pFUnit segfaults on Intel Fortran 14.

closed
2
2016-05-25
2014-09-08
No

We just got our hands on Intel Fortran 14 here. (only a version behind now)
It looks like there's a null pointer dereference inspired seg-fault in
pFUnit when compiled with this version. Are you aware of anyone else using
this version of this compiler and observing this issue?

Discussion

  • Michael L. Rilee

    Ifort 14 is the main version I’ve been developing with for quite some time. Only last week did I upgrade to 15 on my laptop, but we still run 14 for the regression tests on the local cluster.

    Please let me know exactly which version you are using and I’ll try to duplicate. There are very few pointers in the implementation, so it should not be too hard to track down. (Presuming it is not a compiler bug.)

    [TLC]

     
  • Michael L. Rilee

    Running the test through gdb and pulling a backtrace gives this:

    #0  0x0000000000000000 in ?? ()
    #1  0x00000000005876ba in TESTCASE_MOD::runbare (this=0x13a2840) at /data/local/mhambley/Projects/LFRic/r1787_IFort14/src/pfunit/source/TestCase.F90:125
    #2  0x0000000000587823 in TESTCASE_MOD::runbare_surrogate (this=0x13a2848)
        at /data/local/mhambley/Projects/LFRic/r1787_IFort14/src/pfunit/source/TestCase.F90:134
    #3  0x0000000000596125 in TESTRESULT_MOD::run (this=0x7fffffffc7a0, test=0x13a2848, context=0x1369db0 <serialcontext_mod_mp_the_serial_context_>)
        at /data/local/mhambley/Projects/LFRic/r1787_IFort14/src/pfunit/source/TestResult.F90:208
    #4  0x00000000005875e9 in TESTCASE_MOD::run (this=0x13a2840, tstresult=0x7fffffffc7a0, context=0x100)
        at /data/local/mhambley/Projects/LFRic/r1787_IFort14/src/pfunit/source/TestCase.F90:111
    #5  0x00000000005a6c10 in TESTSUITE_MOD::run (this=0x13a23b0, tstresult=0x7fffffffc7a0, context=0x100)
        at /data/local/mhambley/Projects/LFRic/r1787_IFort14/src/pfunit/source/TestSuite.F90:110
    #6  0x00000000005a6c10 in TESTSUITE_MOD::run (this=0x1336dc0 <main_$ALL>, tstresult=0x7fffffffc7a0, context=0x100)
        at /data/local/mhambley/Projects/LFRic/r1787_IFort14/src/pfunit/source/TestSuite.F90:110
    #7  0x00000000005a416c in TESTRUNNER_MOD::run (result=..., this=0x13992d0, atest=0x1336dc0 <main_$ALL>, context=0x100)
        at /data/local/mhambley/Projects/LFRic/r1787_IFort14/src/pfunit/source/TestRunner.F90:96
    #8  0x0000000000462c14 in main () at ../../build/pfunit-install/include/driver.F90:164
    #9  0x000000000040cda6 in main ()
    

    It looks like a failure to call "tearDown" on the test which extends
    ParameterizedTestCase. I do implement that method and it works on
    GFortran. It's beginning to look like a compiler bug. [MH]

     

    Last edit: Michael L. Rilee 2014-10-20
  • Michael L. Rilee

    I have discovered some more about this. It looks like I can solve the problem by
    explicitly exporting (i.e. specifying in a "public" clause) setUp and tearDown.
    This doesn't make sense though as any methods not explicitly declared "private"
    will be public. [MH]

     

    Last edit: Michael L. Rilee 2014-10-20
  • Tom Clune

    Tom Clune - 2016-05-25
    • status: open --> closed
     

Log in to post a comment.