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

Reply via email to