Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

flpmath2 unit test segfaults on Windows #265

Open
hakkelt opened this issue Jun 14, 2021 · 1 comment
Open

flpmath2 unit test segfaults on Windows #265

hakkelt opened this issue Jun 14, 2021 · 1 comment

Comments

@hakkelt
Copy link
Contributor

hakkelt commented Jun 14, 2021

Before commit 52604f9, I was able to compile BART on Windows within the MSYS2 shell, but unfortunately, this commit introduced some changes that lead to segmentation fault when running the unit tests (more specifically: test_flpmath2 fails).

Does anyone know what's wrong or can give any advice on how to start debugging this error?

Here is the backtrace:

#0  add (N=2, dst=0x1fdea207600, src1=0x1fdea20f000, src2=0x1fdea04be50)
    at src/num/vecops.c:200
#1  0x00007ff73caed689 in md_nary (fun=0x7ababff3a0, ptr=0x7ababff040,
    str=0x20, dim=0x2, D=4294967289, C=3926177200)
    at src/num/multind.c:67
#2  md_nary (fun=<optimized out>, ptr=<optimized out>, str=<optimized out>,
    dim=<optimized out>, D=<optimized out>, C=<optimized out>)
    at src/num/multind.c:78
#3  md_nary (fun=<optimized out>, ptr=<optimized out>, str=<optimized out>,
    dim=<optimized out>, D=4294967290, C=<optimized out>)
    at src/num/multind.c:63
#4  md_nary (fun=<optimized out>, ptr=<optimized out>, str=<optimized out>,
    dim=<optimized out>, D=<optimized out>, C=<optimized out>)
    at src/num/multind.c:78
#5  md_nary (fun=<optimized out>, ptr=<optimized out>, str=<optimized out>,
    dim=<optimized out>, D=<optimized out>, C=<optimized out>)
    at src/num/multind.c:63
#6  md_nary (C=<optimized out>, C@entry=3133141828, D=D@entry=3,
    dim=<optimized out>, dim@entry=0x7ababff374, str=<optimized out>,
    str@entry=0x7ababff2e0, ptr=<optimized out>, ptr@entry=0x7ababff1d0,
    fun=<optimized out>) at src/num/multind.c:78
#7  0x00007ff73caedd48 in md_nary (fun=<optimized out>, ptr=0x7ababff1d0,
    str=0x7ababff2e0, dim=<optimized out>, D=3, C=<optimized out>)
    at src/num/multind.c:65
#8  md_nary (fun=<optimized out>, ptr=<optimized out>, str=<optimized out>,
    dim=<optimized out>, D=<optimized out>, C=<optimized out>)
    at src/num/multind.c:78
#9  md_nary (fun=<optimized out>, ptr=0x7ababff300, str=0x7ababff2e0,
    dim=0x7ababff1c3, D=12, C=3) at src/num/multind.c:63
#10 md_parallel_nary (C=<optimized out>, C@entry=3, D=<optimized out>,
    D@entry=4, dim=<optimized out>, dim@entry=0x7ababff394,
    flags=flags@entry=3133142512, str=<optimized out>,
    str@entry=0x7ababff2e0, ptr=<optimized out>, fun=<optimized out>)
    at src/num/multind.c:94
#11 0x00007ff73cb0b228 in optimized_nop (N=<optimized out>,
    io=<optimized out>, D=<optimized out>, dim=<optimized out>,
    nstr=<optimized out>, nptr=<optimized out>, sizes=<optimized out>,
    too=<optimized out>) at src/num/optimize.c:756
#12 0x00007ff73caf462a in optimized_threeop_oii (too=0x7ababff638,
    sizes=0x7ababff5d0, iptr2=0x7ababff7d0, istr2=0x7ababff530,
    iptr1=0x1fdea208850, istr1=0x1fdea206120, optr=0x7ababff810,
    ostr=<optimized out>, dim=0x7ababff590, D=6)
    at src/num/flpmath.c:147
#13 make_3op (iptr2=0x7ababff7d0, istr2=0x7ababff530, iptr1=0x1fdea208850,
    istr1=0x1fdea206120, optr=0x7ababff810, ostr=<optimized out>,
    dim=0x7ababff590, D=6, offset=96) at src/num/flpmath.c:268
#14 make_z3op_from_real (offset=96, D=<optimized out>, dims=<optimized out>,
    ostr=0x7ababff830, optr=0x1fdea206120, istr1=0x7ababff870,
    iptr1=0x1fdea206120, istr2=0x7ababff890, iptr2=0x1fdea0311b0)
    at src/num/flpmath.c:466
#15 0x00007ff73cafcab5 in md_zadd2 (D=D@entry=5,
    dims=dims@entry=0x7ababff7d0, ostr=ostr@entry=0x7ababff850,
    optr=optr@entry=0x1fdea206120, istr1=istr1@entry=0x7ababff870,
    iptr1=iptr1@entry=0x1fdea206120, istr2=istr2@entry=0x7ababff890,
    iptr2=iptr2@entry=0x1fdea0311b0) at src/num/flpmath.c:1739
#16 0x00007ff73cae90e1 in test_optimized_md_zadd (out_flag=3133143184,
    out_flag@entry=4294967290, in1_flag=in1_flag@entry=4294967294,
    in2_flag=in2_flag@entry=4294967295, in1_same=in1_same@entry=true,
    in2_same=in2_same@entry=false,
    optimization_expected=optimization_expected@entry=false,
    err_val=err_val@entry=9.99999997e-07) at utests/test_flpmath2.c:434
#17 0x00007ff73caeb637 in test_optimized_md_zadd2_reduce_inner3 ()
    at utests/test_flpmath2.c:449
#18 call_test_optimized_md_zadd2_reduce_inner3 ()
    at utests/test_flpmath2.c:454
#19 0x00007ff73dbdac72 in main (argc=<optimized out>, argv=0x1fdea204660)
    at utests/utest.c:51
@hakkelt hakkelt changed the title flpmath2 unit test fails on Windows flpmath2 unit test segfaults on Windows Jun 14, 2021
@hakkelt
Copy link
Contributor Author

hakkelt commented Jun 15, 2021

Additional information:

  • Only one unit test causes segmentation fault:
static bool test_optimized_md_zadd2_reduce_inner3(void) { UT_ASSERT(test_optimized_md_zadd(~(1ul+4ul), ~(1ul), ~0ul, true, false, false, 1.e-6)); }
  • System tests are not affected by the problem.
  • Segfault doesn't occur when running unit tests from Cygwin and WSL

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant