Hello,
A software I'm using, goldencheetah, links against gsl and embedded
python. The application crashes when I use certain scipy functions with
the embedded python. (same code works fine in a system python console).
The ebuild is available at
https://github.com/MeisterP/poncho-overlay/tree/master/app-misc/goldencheetah
the backtrack is attached.
The sample code crashing the application is
import pandas as pd
import numpy as np
from scipy import signal
df = pd.DataFrame(np.random.randn(10), columns=['X'])
df_detrended = pd.DataFrame(signal.detrend(df))
Now why is this a gentoo issue?
If set the useflag
*/* -flexiblas eselect-ldso
and update the system and reemerge scipy gsl goldencheetah everything
works as expected. So it is a regression related to the eselect-ldso ->
flexiblas migration
I've never configured anything related to blas/flexiblas on my system.
It just used to work.
I'm not a developer and I don't understand the problem. Whether it is a
bug or if it is a configuration issue on my end.
I'd appreciate some help.
Kind regards,
Poncho
> Thread 58 "Thread (pooled)" received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 0x7f4558df36c0 (LWP 338040)]
> 0x0000000000000000 in ?? ()
> (gdb) bt
> #0 0x0000000000000000 in ??? ()
> #1 0x00007f4538ddc18f in ??? () at
> /usr/lib/python3.13/site-packages/scipy/linalg/_flapack.cpython-313-x86_64-linux-gnu.so
> #2 0x00007f4b5509e643 in ??? () at /usr/lib64/libpython3.13.so.1.0
> #3 0x00007f4b551c1905 in _PyEval_EvalFrameDefault () at
> /usr/lib64/libpython3.13.so.1.0
> #4 0x00007f4b551cf480 in PyEval_EvalCode () at
> /usr/lib64/libpython3.13.so.1.0
> #5 0x00007f4b5522e52a in ??? () at /usr/lib64/libpython3.13.so.1.0
> #6 0x00007f4b5522eb98 in ??? () at /usr/lib64/libpython3.13.so.1.0
> #7 0x00007f4b5522f0e9 in ??? () at /usr/lib64/libpython3.13.so.1.0
> #8 0x00007f4b55231763 in ??? () at /usr/lib64/libpython3.13.so.1.0
> #9 0x000055791f445451 in PythonEmbed::runline
> (this=this@entry=0x55793f2c9790, scriptContext=..., line=...)
> at
> /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/basic_string.h:238
> #10 0x000055791f45077e in PythonChart::execScript (chart=0x557945d14830) at
> Charts/PythonChart.cpp:585
> #11 0x000055791f4547c7 in std::__invoke_impl<void, void (*&)(PythonChart*),
> PythonChart*&> (__f=<synthetic pointer>: <optimized out>)
> at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:62
> #12 std::__invoke<void (*&)(PythonChart*), PythonChart*&> (__fn=<synthetic
> pointer>: <optimized out>)
> at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:98
> #13 std::invoke<void (*&)(PythonChart*), PythonChart*&> (__fn=<synthetic
> pointer>: <optimized out>)
> at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/functional:122
> #14 QtConcurrent::StoredFunctionCall<void (*)(PythonChart*),
> PythonChart*>::runFunctor()::{lambda(void (*)(PythonChart*),
> PythonChart*)#1}::operator()(void (*)(PythonChart*), PythonChart*) const
> (__closure=<synthetic pointer>, function=<optimized out>, args#0=<optimized
> out>)
> at /usr/include/qt6/QtConcurrent/qtconcurrentstoredfunctioncall.h:117
> #15 std::__invoke_impl<void, QtConcurrent::StoredFunctionCall<void
> (*)(PythonChart*), PythonChart*>::runFunctor()::{lambda(void (*
> const&)(PythonChart*), PythonChart*)#1}, void (*)(PythonChart*),
> PythonChart*>(std::__invoke_other, QtConcurrent::StoredFunctionCall<void
> (*)(PythonChart*), PythonChart*>::runFunctor()::{lambda(void (*
> const&)(PythonChart*), PythonChart*)#1}, void (*&&)(PythonChart*),
> PythonChart*&&) (__f=<synthetic pointer>...)
> at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:63
> #16 std::__invoke<QtConcurrent::StoredFunctionCall<void (*)(PythonChart*),
> PythonChart*>::runFunctor()::{lambda(void (* const&)(PythonChart*),
> PythonChart*)#1}, void (*)(PythonChart*),
> PythonChart*>(QtConcurrent::StoredFunctionCall<void (*)(PythonChart*),
> PythonChart*>::runFunctor()::{lambda(void (* const&)(PythonChart*),
> PythonChart*)#1}, void (*&&)(PythonChart*), PythonChart*&&) (__fn=<synthetic
> pointer>...) at
> /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/bits/invoke.h:98
> #17 std::__apply_impl<QtConcurrent::StoredFunctionCall<void
> (*)(PythonChart*), PythonChart*>::runFunctor()::{lambda(void (*
> const&)(PythonChart*), PythonChart*)#1}, std::tuple<void (*)(PythonChart*),
> PythonChart*>, 0ul, 1ul>(QtConcurrent::StoredFunctionCall<void
> (*)(PythonChart*), PythonChart*>::runFunctor()::{lambda(void (*
> const&)(PythonChart*), PythonChart*)#1}, std::tuple<void (*)(PythonChart*),
> PythonChart*>&&, std::integer_sequence<unsigned long, 0ul, 1ul>)
> (__f=<synthetic pointer>..., __t=...) at
> /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/tuple:2920
> #18 std::apply<QtConcurrent::StoredFunctionCall<void (*)(PythonChart*),
> PythonChart*>::runFunctor()::{lambda(void (* const&)(PythonChart*),
> PythonChart*)#1}, std::tuple<void (*)(PythonChart*), PythonChart*>
> >(QtConcurrent::StoredFunctionCall<void (*)(PythonChart*),
> PythonChart*>::runFunctor()::{lambda(void (* const&)(PythonChart*),
> PythonChart*)#1}, std::tuple<void (*)(PythonChart*), PythonChart*>&&)
> (__f=<synthetic pointer>..., __t=...)
> at /usr/lib/gcc/x86_64-pc-linux-gnu/15/include/g++-v15/tuple:2935
> #19 QtConcurrent::StoredFunctionCall<void (*)(PythonChart*),
> PythonChart*>::runFunctor (this=0x557940581c50)
> at /usr/include/qt6/QtConcurrent/qtconcurrentstoredfunctioncall.h:121
> #20 QtConcurrent::RunFunctionTaskBase<void>::run (this=0x557940581c50) at
> /usr/include/qt6/QtConcurrent/qtconcurrentrunbase.h:84
> #21 0x00007f4b4768e4b5 in QThreadPoolThread::run (this=0x557949c735b0)
> at
> /var/tmp/portage/dev-qt/qtbase-6.10.2/work/qtbase-everywhere-src-6.10.2/src/corelib/thread/qthreadpool.cpp:72
> #22 0x00007f4b4760ac0a in operator() (__closure=<optimized out>)
> at
> /var/tmp/portage/dev-qt/qtbase-6.10.2/work/qtbase-everywhere-src-6.10.2/src/corelib/thread/qthread_unix.cpp:448
> #23 (anonymous
> namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> >
> (t=<optimized out>)
> at
> /var/tmp/portage/dev-qt/qtbase-6.10.2/work/qtbase-everywhere-src-6.10.2/src/corelib/thread/qthread_unix.cpp:373
> #24 QThreadPrivate::start (arg=0x557949c735b0) at
> /var/tmp/portage/dev-qt/qtbase-6.10.2/work/qtbase-everywhere-src-6.10.2/src/corelib/thread/qthread_unix.cpp:422
> #25 0x00007f4b46ea4fb1 in start_thread (arg=<optimized out>) at
> pthread_create.c:448
> #26 0x00007f4b46f26eec in __GI___clone3 () at
> ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78