maclandrol/FisherExact

Segmentation fault in python3

luminous198 opened this issue · 3 comments

Running fisher_exact() procedure on 2x5 table, getting segmentation fault(core dumped).
Contigency matrix:
vals a b c d e
0 8472 9541 4581 7998 2755
1 19031 20811 12565 17134 5302

Error Backtrace:
*** Error in `python3': double free or corruption (out): 0x0000000003891730 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7fc0cd45c7e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7fc0cd46537a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7fc0cd46953c]
/home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/fexact.cpython-35m-x86_64-linux-gnu.so(__fisher_exact_MOD_f2xact+0x5196)[0x7fc0ab5cce96]
/home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/fexact.cpython-35m-x86_64-linux-gnu.so(_fisher_exact_MOD_fexact+0x459)[0x7fc0ab5cd9e9]
/home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/fexact.cpython-35m-x86_64-linux-gnu.so(f2pywrap_fisher_exact_fexact
+0x7d)[0x7fc0ab5cdcdd]
/home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/fexact.cpython-35m-x86_64-linux-gnu.so(+0x6a95)[0x7fc0ab5baa95]
python3(PyObject_Call+0x47)[0x5c1797]
python3(PyEval_EvalFrameEx+0x4ec6)[0x53bba6]
python3[0x540199]
python3(PyEval_EvalFrameEx+0x50b2)[0x53bd92]
python3[0x540199]
python3(PyEval_EvalFrameEx+0x50b2)[0x53bd92]
python3[0x540199]
python3(PyEval_EvalCode+0x1f)[0x540e4f]
python3[0x60c272]
python3(PyRun_InteractiveOneObject+0x2b1)[0x46b89f]
python3(PyRun_InteractiveLoopFlags+0xe8)[0x46ba48]
python3[0x46cfa0]
python3[0x4cf2bd]
python3(main+0xe1)[0x4cfeb1]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fc0cd405830]
python3(_start+0x29)[0x5d6049]
======= Memory map: ========
00400000-007a9000 r-xp 00000000 08:01 22682644 /usr/bin/python3.5
009a9000-009ab000 r--p 003a9000 08:01 22682644 /usr/bin/python3.5
009ab000-00a42000 rw-p 003ab000 08:01 22682644 /usr/bin/python3.5
00a42000-00a73000 rw-p 00000000 00:00 0
0244a000-038af000 rw-p 00000000 00:00 0 [heap]
7fc0a4000000-7fc0a4021000 rw-p 00000000 00:00 0
7fc0a4021000-7fc0a8000000 ---p 00000000 00:00 0
7fc0aa671000-7fc0aac2a000 rw-p 00000000 00:00 0
7fc0aac2a000-7fc0aac3a000 r-xp 00000000 08:01 5505473 /home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/asa205.cpython-35m-x86_64-linux-gnu.so
7fc0aac3a000-7fc0aae39000 ---p 00010000 08:01 5505473 /home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/asa205.cpython-35m-x86_64-linux-gnu.so
7fc0aae39000-7fc0aae3a000 r--p 0000f000 08:01 5505473 /home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/asa205.cpython-35m-x86_64-linux-gnu.so
7fc0aae3a000-7fc0aae3c000 rw-p 00010000 08:01 5505473 /home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/asa205.cpython-35m-x86_64-linux-gnu.so
7fc0aae3c000-7fc0aae48000 r-xp 00000000 08:01 5505472 /home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/asa159.cpython-35m-x86_64-linux-gnu.so
7fc0aae48000-7fc0ab047000 ---p 0000c000 08:01 5505472 /home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/asa159.cpython-35m-x86_64-linux-gnu.so
7fc0ab047000-7fc0ab048000 r--p 0000b000 08:01 5505472 /home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/asa159.cpython-35m-x86_64-linux-gnu.so
7fc0ab048000-7fc0ab04a000 rw-p 0000c000 08:01 5505472 /home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/asa159.cpython-35m-x86_64-linux-gnu.so
7fc0ab04a000-7fc0ab088000 r-xp 00000000 08:01 22675703 /usr/lib/x86_64-linux-gnu/libquadmath.so.0.0.0
7fc0ab088000-7fc0ab287000 ---p 0003e000 08:01 22675703 /usr/lib/x86_64-linux-gnu/libquadmath.so.0.0.0
7fc0ab287000-7fc0ab288000 r--p 0003d000 08:01 22675703 /usr/lib/x86_64-linux-gnu/libquadmath.so.0.0.0
7fc0ab288000-7fc0ab289000 rw-p 0003e000 08:01 22675703 /usr/lib/x86_64-linux-gnu/libquadmath.so.0.0.0
7fc0ab289000-7fc0ab3b2000 r-xp 00000000 08:01 22675529 /usr/lib/x86_64-linux-gnu/libgfortran.so.3.0.0
7fc0ab3b2000-7fc0ab5b1000 ---p 00129000 08:01 22675529 /usr/lib/x86_64-linux-gnu/libgfortran.so.3.0.0
7fc0ab5b1000-7fc0ab5b2000 r--p 00128000 08:01 22675529 /usr/lib/x86_64-linux-gnu/libgfortran.so.3.0.0
7fc0ab5b2000-7fc0ab5b4000 rw-p 00129000 08:01 22675529 /usr/lib/x86_64-linux-gnu/libgfortran.so.3.0.0
7fc0ab5b4000-7fc0ab5d4000 r-xp 00000000 08:01 5505478 /home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/fexact.cpython-35m-x86_64-linux-gnu.so
7fc0ab5d4000-7fc0ab7d3000 ---p 00020000 08:01 5505478 /home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/fexact.cpython-35m-x86_64-linux-gnu.so
7fc0ab7d3000-7fc0ab7d4000 r--p 0001f000 08:01 5505478 /home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/fexact.cpython-35m-x86_64-linux-gnu.so
7fc0ab7d4000-7fc0ab7d8000 rw-p 00020000 08:01 5505478 /home/luminous/.local/lib/python3.5/site-packages/FisherExact/statlib/fexact.cpython-35m-x86_64-linux-gnu.so
7fc0ab7d8000-7fc0ab7e9000 r-xp 00000000 08:01 58723685 /home/luminous/.local/lib/python3.5/site-packages/scipy/stats/mvn.cpython-35m-x86_64-linux-gnu.so
7fc0ab7e9000-7fc0ab9e8000 ---p 00011000 08:01 58723685 /home/luminous/.local/lib/python3.5/site-packages/scipy/stats/mvn.cpython-35m-x86_64-linux-gnu.so
7fc0ab9e8000-7fc0ab9ea000 rw-p 00010000 08:01 58723685 /home/luminous/.local/lib/python3.5/site-packages/scipy/stats/mvn.cpython-35m-x86_64-linux-gnu.so
7fc0ab9ea000-7fc0abae1000 rw-p 00000000 00:00 0
7fc0abae1000-7fc0abae3000 rw-p 00031000 08:01 58723685 /home/luminous/.local/lib/python3.5/site-packages/scipy/stats/mvn.cpython-35m-x86_64-linux-gnu.so
7fc0abae3000-7fc0abb23000 rw-p 00000000 00:00 0
7fc0abb23000-7fc0abb2d000 r-xp 00000000 08:01 58723679 /home/luminous/.local/lib/python3.5/site-packages/scipy/stats/statlib.cpython-35m-x86_64-linux-gnu.so
7fc0abb2d000-7fc0abd2c000 ---p 0000a000 08:01 58723679 /home/luminous/.local/lib/python3.5/site-packages/scipy/stats/statlib.cpython-35m-x86_64-linux-gnu.so
7fc0abd2c000-7fc0abd2e000 rw-p 00009000 08:01 58723679 /home/luminous/.local/lib/python3.5/site-packages/scipy/stats/statlib.cpython-35m-x86_64-linux-gnu.so
7fc0abd2e000-7fc0abd30000 rw-p 00026000 08:01 58723679 /home/luminous/.local/lib/python3.5/site-packages/scipy/stats/statlib.cpython-35m-x86_64-linux-gnu.so
7fc0abd30000-7fc0abe70000 rw-p 00000000 00:00 0
7fc0abe70000-7fc0abed4000 r-xp 00000000 08:01 58723696 /home/luminous/.local/lib/python3.5/site-packages/scipy/stats/_stats.cpython-35m-x86_64-linux-gnu.so
7fc0abed4000-7fc0ac0d4000 ---p 00064000 08:01 58723696 /home/luminous/.local/lib/python3.5/site-packages/scipy/stats/_stats.cpython-35m-x86_64-linux-gnu.so
7fc0ac0d4000-7fc0ac0d9000 rw-p 00064000 08:01 58723696 /home/luminous/.local/lib/python3.5/site-packages/scipy/stats/_stats.cpython-35m-x86_64-linux-gnu.so
7fc0ac0d9000-7fc0ac15a000 rw-p 00000000 00:00 0
7fc0ac15a000-7fc0ac173000 r-xp 00000000 08:01 58723581 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/lsoda.cpython-35m-x86_64-linux-gnu.so
7fc0ac173000-7fc0ac372000 ---p 00019000 08:01 58723581 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/lsoda.cpython-35m-x86_64-linux-gnu.so
7fc0ac372000-7fc0ac374000 rw-p 00018000 08:01 58723581 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/lsoda.cpython-35m-x86_64-linux-gnu.so
7fc0ac374000-7fc0ac377000 rw-p 00048000 08:01 58723581 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/lsoda.cpython-35m-x86_64-linux-gnu.so
7fc0ac377000-7fc0ac392000 r-xp 00000000 08:01 58723583 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/_dop.cpython-35m-x86_64-linux-gnu.so
7fc0ac392000-7fc0ac591000 ---p 0001b000 08:01 58723583 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/_dop.cpython-35m-x86_64-linux-gnu.so
7fc0ac591000-7fc0ac593000 rw-p 0001a000 08:01 58723583 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/_dop.cpython-35m-x86_64-linux-gnu.so
7fc0ac593000-7fc0ac595000 rw-p 00044000 08:01 58723583 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/_dop.cpython-35m-x86_64-linux-gnu.so
7fc0ac595000-7fc0ac5c6000 r-xp 00000000 08:01 58723579 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/vode.cpython-35m-x86_64-linux-gnu.so
7fc0ac5c6000-7fc0ac7c5000 ---p 00031000 08:01 58723579 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/vode.cpython-35m-x86_64-linux-gnu.so
7fc0ac7c5000-7fc0ac7c7000 rw-p 00030000 08:01 58723579 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/vode.cpython-35m-x86_64-linux-gnu.so
7fc0ac7c7000-7fc0ac7c8000 rw-p 00000000 00:00 0
7fc0ac7c8000-7fc0ac7cb000 rw-p 00082000 08:01 58723579 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/vode.cpython-35m-x86_64-linux-gnu.so
7fc0ac7cb000-7fc0ac7e5000 r-xp 00000000 08:01 58723577 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/_quadpack.cpython-35m-x86_64-linux-gnu.so
7fc0ac7e5000-7fc0ac9e5000 ---p 0001a000 08:01 58723577 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/_quadpack.cpython-35m-x86_64-linux-gnu.so
7fc0ac9e5000-7fc0ac9e6000 rw-p 0001a000 08:01 58723577 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/_quadpack.cpython-35m-x86_64-linux-gnu.so
7fc0ac9e6000-7fc0ac9e9000 rw-p 00054000 08:01 58723577 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/_quadpack.cpython-35m-x86_64-linux-gnu.so
7fc0ac9e9000-7fc0aca29000 rw-p 00000000 00:00 0
7fc0aca29000-7fc0aca3f000 r-xp 00000000 08:01 58723578 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/_odepack.cpython-35m-x86_64-linux-gnu.so
7fc0aca3f000-7fc0acc3e000 ---p 00016000 08:01 58723578 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/_odepack.cpython-35m-x86_64-linux-gnu.so
7fc0acc3e000-7fc0acc3f000 rw-p 00015000 08:01 58723578 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/_odepack.cpython-35m-x86_64-linux-gnu.so
7fc0acc3f000-7fc0acc40000 rw-p 00000000 00:00 0
7fc0acc40000-7fc0acc43000 rw-p 0003a000 08:01 58723578 /home/luminous/.local/lib/python3.5/site-packages/scipy/integrate/_odepack.cpython-35m-x86_64-linux-gnu.so
7fc0acc43000-7fc0acc4d000 r-xp 00000000 08:01 58724709 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_nnls.cpython-35m-x86_64-linux-gnu.so
7fc0acc4d000-7fc0ace4d000 ---p 0000a000 08:01 58724709 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_nnls.cpython-35m-x86_64-linux-gnu.so
7fc0ace4d000-7fc0ace4e000 rw-p 0000a000 08:01 58724709 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_nnls.cpython-35m-x86_64-linux-gnu.so
7fc0ace4e000-7fc0ace50000 rw-p 00022000 08:01 58724709 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_nnls.cpython-35m-x86_64-linux-gnu.so
7fc0ace50000-7fc0ace53000 r-xp 00000000 08:01 58724715 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_zeros.cpython-35m-x86_64-linux-gnu.so
7fc0ace53000-7fc0ad052000 ---p 00003000 08:01 58724715 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_zeros.cpython-35m-x86_64-linux-gnu.so
7fc0ad052000-7fc0ad053000 rw-p 00002000 08:01 58724715 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_zeros.cpython-35m-x86_64-linux-gnu.so
7fc0ad053000-7fc0ad093000 rw-p 00000000 00:00 0
7fc0ad093000-7fc0ad0ba000 r-xp 00000000 08:01 58724739 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_lsq/givens_elimination.cpython-35m-x86_64-linux-gnu.so
7fc0ad0ba000-7fc0ad2b9000 ---p 00027000 08:01 58724739 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_lsq/givens_elimination.cpython-35m-x86_64-linux-gnu.so
7fc0ad2b9000-7fc0ad2bd000 rw-p 00026000 08:01 58724739 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_lsq/givens_elimination.cpython-35m-x86_64-linux-gnu.so
7fc0ad2bd000-7fc0ad2dc000 r-xp 00000000 08:01 58724710 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_minpack.cpython-35m-x86_64-linux-gnu.so
7fc0ad2dc000-7fc0ad4db000 ---p 0001f000 08:01 58724710 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_minpack.cpython-35m-x86_64-linux-gnu.so
7fc0ad4db000-7fc0ad4dc000 rw-p 0001e000 08:01 58724710 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_minpack.cpython-35m-x86_64-linux-gnu.so
7fc0ad4dc000-7fc0ad4de000 rw-p 0004e000 08:01 58724710 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_minpack.cpython-35m-x86_64-linux-gnu.so
7fc0ad4de000-7fc0ad4f4000 r-xp 00000000 08:01 58724712 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_slsqp.cpython-35m-x86_64-linux-gnu.so
7fc0ad4f4000-7fc0ad6f4000 ---p 00016000 08:01 58724712 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_slsqp.cpython-35m-x86_64-linux-gnu.so
7fc0ad6f4000-7fc0ad6f5000 rw-p 00016000 08:01 58724712 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_slsqp.cpython-35m-x86_64-linux-gnu.so
7fc0ad6f5000-7fc0ad6f7000 rw-p 00040000 08:01 58724712 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_slsqp.cpython-35m-x86_64-linux-gnu.so
7fc0ad6f7000-7fc0ad714000 r-xp 00000000 08:01 58724725 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_cobyla.cpython-35m-x86_64-linux-gnu.so
7fc0ad714000-7fc0ad914000 ---p 0001d000 08:01 58724725 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_cobyla.cpython-35m-x86_64-linux-gnu.so
7fc0ad914000-7fc0ad915000 rw-p 0001d000 08:01 58724725 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_cobyla.cpython-35m-x86_64-linux-gnu.so
7fc0ad915000-7fc0ad917000 rw-p 00046000 08:01 58724725 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_cobyla.cpython-35m-x86_64-linux-gnu.so
7fc0ad917000-7fc0ad923000 r-xp 00000000 08:01 58724731 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/moduleTNC.cpython-35m-x86_64-linux-gnu.so
7fc0ad923000-7fc0adb22000 ---p 0000c000 08:01 58724731 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/moduleTNC.cpython-35m-x86_64-linux-gnu.so
7fc0adb22000-7fc0adb23000 rw-p 0000b000 08:01 58724731 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/moduleTNC.cpython-35m-x86_64-linux-gnu.so
7fc0adb23000-7fc0adb40000 r-xp 00000000 08:01 58724707 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_lbfgsb.cpython-35m-x86_64-linux-gnu.so
7fc0adb40000-7fc0add40000 ---p 0001d000 08:01 58724707 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_lbfgsb.cpython-35m-x86_64-linux-gnu.so
7fc0add40000-7fc0add41000 rw-p 0001d000 08:01 58724707 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_lbfgsb.cpython-35m-x86_64-linux-gnu.so
7fc0add41000-7fc0add44000 rw-p 00051000 08:01 58724707 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_lbfgsb.cpython-35m-x86_64-linux-gnu.so
7fc0add44000-7fc0add84000 rw-p 00000000 00:00 0
7fc0add84000-7fc0addaf000 r-xp 00000000 08:01 58724720 /home/luminous/.local/lib/python3.5/site-packages/scipy/optimize/_group_columns.cpython-35m-x86_64-linux-gnu.soAborted (core dumped)

Thanks for the details. I will look into it as soon as I can.

But looking at your input, a segfault might indeed be expected. The exact method need to compute a factorial for the sum of your table, so 108191! which is extremely large.

You can use the simulate p-values:

fexact cont.txt --simulate 5000 --retry 3 --workspace 200000

But in your case, depending on what you are trying to accomplish, I will recommend the chi2 test instead. Probably more accurate here, and since you won't have an expected value at 0, I will argue that it's valid.

I am also getting a segmentation fault for any contingency tables larger than 2x2. Even for small tables like
[ [1,2,3], [2,3,4] ]
The error message is

capi_return is NULL
Call-back cb_f2pystop_in_prterr__user__routines failed.
Segmentation fault

Any update on whether this is still a known problem?

Hello @mercurio83. What's your hardware ? if you are using a MacBook, you might need to download from github and recompile the fortran binaries yourself. See #2.

Let me know how it goes.