Segfault в pyfftw с несколькими потоками - PullRequest
0 голосов
/ 23 мая 2019

Я постоянно сталкиваюсь с SIGSEV при вызове метода interfaces.numpy_fft.rfft pyfftw из нескольких потоков (в отдельных массивах) в OSX Mojave. Я не сталкиваюсь с проблемой, если использую метод numpy rfft. Прежде чем я углублюсь здесь глубже, я хотел бы услышать, сталкивался ли кто-нибудь с этой проблемой и есть ли легкий обходной путь в Python.

Включив обработчик ошибок, я получил следующую трассировку стека:

Current thread 0x000070000ea0d000 (most recent call first):
  File "/.../lib/python3.6/site-packages/pyfftw/builders/_utils.py", line 348 in __call__
  File "/.../lib/python3.6/site-packages/pyfftw/interfaces/_utils.py", line 138 in _Xfftn
  File "/.../lib/python3.6/site-packages/pyfftw/interfaces/numpy_fft.py", line 205 in rfft

Обратный след lldb:

thread #11, stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
    frame #0: 0x000000012bd25627 libfftw3.3.dylib`t2fv_8 + 96
    frame #1: 0x000000012bc407ce libfftw3.3.dylib`apply + 81
    frame #2: 0x000000012bc7c06e libfftw3.3.dylib`apply_dit_dft + 23
    frame #3: 0x000000012bc08433 pyfftw.cpython-36m-darwin.so`__pyx_f_6pyfftw_6pyfftw_4FFTW_execute + 99
    frame #4: 0x000000012bc0e1b5 pyfftw.cpython-36m-darwin.so`__pyx_pw_6pyfftw_6pyfftw_4FFTW_37__call__ + 2149
...