brummer10 / guitarix

guitarix virtual versatile amplification for Jack/Linux

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Segmentation fault as LV2 plugin under lmms

psilhavy opened this issue · comments

guitarx V0.44.1
lmms current master

LV2 plugin "GxAmplifireStereo-X" gx_amp_stereo.so


Thread 28 "lmms" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ff677fff6c0 (LWP 32476)]
0x00007ff6e44a2b04 in _mid_memalign.isra.0 () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ff6e44a2b04 in _mid_memalign.isra.0 () at /lib64/libc.so.6
#1  0x00007ff6e5e270e5 in fftwf_malloc_plain () at /usr/lib64/libfftw3f.so.3
#2  0x00007ff6e5e2a7e9 in fftwf_mkproblem () at /usr/lib64/libfftw3f.so.3
#3  0x00007ff6e5e31c67 in fftwf_mkproblem_dft () at /usr/lib64/libfftw3f.so.3
#4  0x00007ff6e5e31d70 in fftwf_mkproblem_dft_d () at /usr/lib64/libfftw3f.so.3
#5  0x00007ff6e5e6e6e8 in  () at /usr/lib64/libfftw3f.so.3
#6  0x00007ff6e5e29632 in  () at /usr/lib64/libfftw3f.so.3
#7  0x00007ff6e5eeedb9 in  () at /usr/lib64/libfftw3f.so.3
#8  0x00007ff6e5eeefd8 in fftwf_mkapiplan () at /usr/lib64/libfftw3f.so.3
#9  0x00007ff6e5ef2bf6 in fftwf_plan_many_dft_r2c ()
    at /usr/lib64/libfftw3f.so.3
#10 0x00007ff6e5ef2165 in fftwf_plan_dft_r2c () at /usr/lib64/libfftw3f.so.3
#11 0x00007ff6e5ef20d3 in fftwf_plan_dft_r2c_1d () at /usr/lib64/libfftw3f.so.3
#12 0x00007ff6b5ff09c2 in Convlevel::configure(int, unsigned int, unsigned int, unsigned int, unsigned int) () at /usr/local/lib64/libzita-convolver.so.4
#13 0x00007ff6b5ff30a1 in Convproc::configure(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, float) ()
    at /usr/local/lib64/libzita-convolver.so.4
#14 0x00007ff6d9b533d6 in  ()
    at /usr/local/lib64/lv2/gx_amp_stereo.lv2/gx_amp_stereo.so
#15 0x00007ff6d9b39e3d in  ()
    at /usr/local/lib64/lv2/gx_amp_stereo.lv2/gx_amp_stereo.so
#16 0x00007ff6d9b394d9 in  ()
    at /usr/local/lib64/lv2/gx_amp_stereo.lv2/gx_amp_stereo.so
#17 0x000000000062996d in lmms::Lv2Worker::workerFunc() (this=0xc219830)
    at /usr/src/lmms-master-2/src/core/lv2/Lv2Worker.cpp:167
#18 0x00007ff6e48e4453 in  () at /usr/lib64/libstdc++.so.6
#19 0x00007ff6e4492cc2 in start_thread () at /lib64/libc.so.6
#20 0x00007ff6e451e228 in clone3 () at /lib64/libc.so.6

Maybe your buffer size is not power of 2?
Could you try the last guitarix version from master, there should be some fixes implemented?

Which buffer ? How to check it (gdb/lldb) ? Only visible buffer is audio output which is set to 256.

On current master b1c6862 backtrace

Thread 12 "lmms::AudioEngi" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f9e13fff6c0 (LWP 28604)]
0x00007f9e35ca2b04 in _mid_memalign.isra.0 () from /lib64/libc.so.6
(gdb) bt
#0  0x00007f9e35ca2b04 in _mid_memalign.isra.0 () at /lib64/libc.so.6
#1  0x00007f9e374270e5 in fftwf_malloc_plain () at /usr/lib64/libfftw3f.so.3
#2  0x00007f9e3742aec3 in fftwf_mktensor () at /usr/lib64/libfftw3f.so.3
#3  0x00007f9e3742ba49 in  () at /usr/lib64/libfftw3f.so.3
#4  0x00007f9e3742bb10 in fftwf_tensor_compress_contiguous ()
    at /usr/lib64/libfftw3f.so.3
#5  0x00007f9e3742bdbb in fftwf_tensor_inplace_locations ()
    at /usr/lib64/libfftw3f.so.3
#6  0x00007f9e37431cd4 in fftwf_mkproblem_dft () at /usr/lib64/libfftw3f.so.3
#7  0x00007f9e37431d70 in fftwf_mkproblem_dft_d () at /usr/lib64/libfftw3f.so.3
#8  0x00007f9e3746e6e8 in  () at /usr/lib64/libfftw3f.so.3
#9  0x00007f9e37429269 in  () at /usr/lib64/libfftw3f.so.3
#10 0x00007f9e374294f7 in  () at /usr/lib64/libfftw3f.so.3
#11 0x00007f9e37429aa0 in fftwf_mkplan_d () at /usr/lib64/libfftw3f.so.3
#12 0x00007f9e3746f6b0 in  () at /usr/lib64/libfftw3f.so.3
#13 0x00007f9e3746e3e0 in  () at /usr/lib64/libfftw3f.so.3
#14 0x00007f9e37429269 in  () at /usr/lib64/libfftw3f.so.3
#15 0x00007f9e374294f7 in  () at /usr/lib64/libfftw3f.so.3
#16 0x00007f9e374eee23 in  () at /usr/lib64/libfftw3f.so.3
#17 0x00007f9e374eefd8 in fftwf_mkapiplan () at /usr/lib64/libfftw3f.so.3
#18 0x00007f9e374f2bf6 in fftwf_plan_many_dft_r2c ()
    at /usr/lib64/libfftw3f.so.3
#19 0x00007f9e374f2165 in fftwf_plan_dft_r2c () at /usr/lib64/libfftw3f.so.3
--Type <RET> for more, q to quit, c to continue without paging--
#20 0x00007f9e374f20d3 in fftwf_plan_dft_r2c_1d () at /usr/lib64/libfftw3f.so.3
#21 0x00007f9e181aa9c2 in Convlevel::configure(int, unsigned int, unsigned int, unsigned int, unsigned int) () at /usr/local/lib64/libzita-convolver.so.4
#22 0x00007f9e181ad0a1 in Convproc::configure(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, float) ()
    at /usr/local/lib64/libzita-convolver.so.4
#23 0x00007f9df311f3d6 in  ()
    at /usr/local/lib64/lv2/gx_amp_stereo.lv2/gx_amp_stereo.so
#24 0x00007f9df3105e3d in  ()
    at /usr/local/lib64/lv2/gx_amp_stereo.lv2/gx_amp_stereo.so
#25 0x00007f9df31054d9 in  ()
    at /usr/local/lib64/lv2/gx_amp_stereo.lv2/gx_amp_stereo.so
#26 0x000000000062905e in lmms::Lv2Worker::scheduleWork(unsigned int, void const*) (this=0x299cd90, size=<optimized out>, data=0xb08dba8)
    at /usr/src/lmms-master-2/src/core/lv2/Lv2Worker.cpp:198
#27 0x00007f9df3106304 in  ()
    at /usr/local/lib64/lv2/gx_amp_stereo.lv2/gx_amp_stereo.so
#28 0x00000000006190f5 in lilv_instance_run
    (sample_count=256, instance=<optimized out>)
    at /usr/include/lilv-0/lilv/lilv.h:1935
#29 lmms::Lv2Proc::run(short) (this=0x299cc50, frames=frames@entry=256)
    at /usr/src/lmms-master-2/src/core/lv2/Lv2Proc.cpp:379
#30 0x00000000006143d6 in lmms::Lv2ControlBase::run(short)
--Type <RET> for more, q to quit, c to continue without paging--
    (this=this@entry=0x7f9e32bd26b0, frames=frames@entry=256)
    at /usr/src/lmms-master-2/src/core/lv2/Lv2ControlBase.cpp:176
#31 0x00007f9e101fbbbb in lmms::Lv2Effect::processAudioBuffer(std::array<float, 2ul>*, short) (this=0x7f9e32bd2080, buf=0x8f32fd0, frames=<optimized out>)
    at /usr/src/lmms-master-2/plugins/Lv2Effect/Lv2Effect.cpp:79
#32 0x000000000059be77 in lmms::EffectChain::processAudioBuffer(std::array<float, 2ul>*, short, bool)
    (this=this@entry=0x2c29c10, _buf=0x8f32fd0, _frames=_frames@entry=256, hasInputNoise=true) at /usr/src/lmms-master-2/src/core/EffectChain.cpp:201
#33 0x00000000005a23ec in lmms::MixerChannel::doProcessing() (this=0x2c29c00)
    at /usr/src/lmms-master-2/src/core/Mixer.cpp:172
#34 0x0000000000566bfa in lmms::ThreadableJob::process() (this=0x2c29c00)
    at /usr/src/lmms-master-2/include/ThreadableJob.h:77
#35 lmms::AudioEngineWorkerThread::JobQueue::run()
    (this=this@entry=0x823660 <lmms::AudioEngineWorkerThread::globalJobQueue>)
    at /usr/src/lmms-master-2/src/core/AudioEngineWorkerThread.cpp:88
#36 0x0000000000566ec6 in lmms::AudioEngineWorkerThread::run() (this=0x254c4f0)
    at /usr/src/lmms-master-2/src/core/AudioEngineWorkerThread.cpp:178
#37 0x00007f9e364d3989 in  () at /usr/lib64/libQt5Core.so.5
#38 0x00007f9e35c92cc2 in start_thread () at /lib64/libc.so.6
#39 0x00007f9e35d1e228 in clone3 () at /lib64/libc.so.6

Yea, I mean the audio buffer size. 256 is suitable.
I would suggest to try guitarix from master branch and build it with the --includeconvoler flag.
As I said, some issues with the convolver been fixed in latest master.

./waf configure --includeconvolver --no-avahi --lv2dir=/usr/local/lib64/lv2 --libdir=/usr/local/lib64

../src/LV2/DSP/gx_common.h:68:5: error: ‘uint32_t’ does not name a type  68 |     uint32_t mxcsr_mask;
after added "#include <cstdint>"

to src/LV2/DSP/gx_common.h
build passed

Thread 7 "lmms::AudioEngi" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f0ca7c476c0 (LWP 2496)]
0x00007f0cad62e36d in fftwf_ct_applicable () from /usr/lib64/libfftw3f.so.3
(gdb) bt
#0  0x00007f0cad62e36d in fftwf_ct_applicable () at /usr/lib64/libfftw3f.so.3
#1  0x00007f0cad62e45b in  () at /usr/lib64/libfftw3f.so.3
#2  0x00007f0cad629269 in  () at /usr/lib64/libfftw3f.so.3
#3  0x00007f0cad6294f7 in  () at /usr/lib64/libfftw3f.so.3
#4  0x00007f0cad629aa0 in fftwf_mkplan_d () at /usr/lib64/libfftw3f.so.3
#5  0x00007f0cad66e7d0 in  () at /usr/lib64/libfftw3f.so.3
#6  0x00007f0cad629269 in  () at /usr/lib64/libfftw3f.so.3
#7  0x00007f0cad6294f7 in  () at /usr/lib64/libfftw3f.so.3
#8  0x00007f0cad629aa0 in fftwf_mkplan_d () at /usr/lib64/libfftw3f.so.3
#9  0x00007f0cad66f6b0 in  () at /usr/lib64/libfftw3f.so.3
#10 0x00007f0cad66e54f in  () at /usr/lib64/libfftw3f.so.3
#11 0x00007f0cad629269 in  () at /usr/lib64/libfftw3f.so.3
#12 0x00007f0cad6294f7 in  () at /usr/lib64/libfftw3f.so.3
#13 0x00007f0cad6eeeb8 in  () at /usr/lib64/libfftw3f.so.3
#14 0x00007f0cad6eefd8 in fftwf_mkapiplan () at /usr/lib64/libfftw3f.so.3
#15 0x00007f0cad6f2a79 in fftwf_plan_many_dft_c2r ()
    at /usr/lib64/libfftw3f.so.3
#16 0x00007f0cad6f20a5 in fftwf_plan_dft_c2r () at /usr/lib64/libfftw3f.so.3
#17 0x00007f0cad6f2013 in fftwf_plan_dft_c2r_1d () at /usr/lib64/libfftw3f.so.3
#18 0x00007f0c685dde2a in  ()
    at /usr/local/lib64/lv2/gx_amp_stereo.lv2/gx_amp_stereo.so
#19 0x00007f0c685de8f5 in  ()
    at /usr/local/lib64/lv2/gx_amp_stereo.lv2/gx_amp_stereo.so
--Type <RET> for more, q to quit, c to continue without paging--
#20 0x00007f0c685dd622 in  ()
    at /usr/local/lib64/lv2/gx_amp_stereo.lv2/gx_amp_stereo.so
#21 0x00007f0c685c3fad in  ()
    at /usr/local/lib64/lv2/gx_amp_stereo.lv2/gx_amp_stereo.so
#22 0x00007f0c685c3639 in  ()
    at /usr/local/lib64/lv2/gx_amp_stereo.lv2/gx_amp_stereo.so
#23 0x000000000062905e in lmms::Lv2Worker::scheduleWork(unsigned int, void const*) (this=0xc1ed520, size=<optimized out>, data=0xc1b98a8)
    at /usr/src/lmms-master-2/src/core/lv2/Lv2Worker.cpp:198
#24 0x00007f0c685c4474 in  ()
    at /usr/local/lib64/lv2/gx_amp_stereo.lv2/gx_amp_stereo.so
#25 0x00000000006190f5 in lilv_instance_run
    (sample_count=256, instance=<optimized out>)
    at /usr/include/lilv-0/lilv/lilv.h:1935
#26 lmms::Lv2Proc::run(short) (this=0xc1ed3e0, frames=frames@entry=256)
    at /usr/src/lmms-master-2/src/core/lv2/Lv2Proc.cpp:379
#27 0x00000000006143d6 in lmms::Lv2ControlBase::run(short)
    (this=this@entry=0x7f0ca8c686b0, frames=frames@entry=256)
    at /usr/src/lmms-master-2/src/core/lv2/Lv2ControlBase.cpp:176
#28 0x00007f0c6a4aebbb in lmms::Lv2Effect::processAudioBuffer(std::array<float, 2ul>*, short) (this=0x7f0ca8c68080, buf=0xc146230, frames=<optimized out>)
    at /usr/src/lmms-master-2/plugins/Lv2Effect/Lv2Effect.cpp:79
#29 0x000000000059be77 in lmms::EffectChain::processAudioBuffer(std::array<float--Type <RET> for more, q to quit, c to continue without paging--
, 2ul>*, short, bool)
    (this=this@entry=0x322dc10, _buf=0xc146230, _frames=_frames@entry=256, hasInputNoise=true) at /usr/src/lmms-master-2/src/core/EffectChain.cpp:201
#30 0x00000000005a23ec in lmms::MixerChannel::doProcessing() (this=0x322dc00)
    at /usr/src/lmms-master-2/src/core/Mixer.cpp:172
#31 0x0000000000566bfa in lmms::ThreadableJob::process() (this=0x322dc00)
    at /usr/src/lmms-master-2/include/ThreadableJob.h:77
#32 lmms::AudioEngineWorkerThread::JobQueue::run()
    (this=this@entry=0x823660 <lmms::AudioEngineWorkerThread::globalJobQueue>)
    at /usr/src/lmms-master-2/src/core/AudioEngineWorkerThread.cpp:88
#33 0x0000000000566ec6 in lmms::AudioEngineWorkerThread::run() (this=0x2be7ab0)
    at /usr/src/lmms-master-2/src/core/AudioEngineWorkerThread.cpp:178
#34 0x00007f0cac4d3989 in  () at /usr/lib64/libQt5Core.so.5
#35 0x00007f0cabc92cc2 in start_thread () at /lib64/libc.so.6
#36 0x00007f0cabd1e228 in clone3 () at /lib64/libc.so.6

after added "#include <cstdint>"
to src/LV2/DSP/gx_common.h
build passed

This seems not to be the latest master version from github as this is fixed since Jan. 31. 2023
see here: https://github.com/brummer10/guitarix/blob/master/trunk/src/LV2/DSP/gx_common.h#L25

Try this to get the latest:

git clone --recursive https://github.com/brummer10/guitarix.git
cd guitarix/trunk
./waf configure --includeconvolver --no-avahi --lv2dir=/usr/local/lib64/lv2 --libdir=/usr/local/lib64
sudo ./waf install

you may deinstall guitarix from your distribution before install guitarix from git to avoid symbol clashing!!

Works fine! Thank you for your cooperation and patience.

BTW maybe the message
officially mirror of https://sourceforge.net/p/guitarix/git/ci/master/tree/ on your github is misleading for other people too.