LMMS / LMMS/lmms

Segmentation Fault while using "Yoshimi" under Carla

Open
#5,925 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C++
Stars
10.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
7

Description

Bug Summary

Loading the Yoshimi synthesizer (Lv2 that ships with Ubuntu Studio) through Carla-Rack or Carla-Patchbay, then navigating through the plugin's UI to the Instrument Edit, and clicking "Edit" to access the ADDSynth/SUBSynth/PADSynth results in a Segmentation Fault crash.

Steps to reproduce

Load Yoshimi through Carla-Rack or Carla-Patchbay, click the "Edit" button besides the patch name to open the Instrument Edit screen then click Edit under ADDSynth/SUBSynth/PADSynth.

Expected behavior

The ADDSynth/SUBSynth/PADSynth window should be opened.

Actual behavior

Segmentation Fault crash. From the looks of the backtrace, the segmentation fault happens at the Oscilloscope destructor. I have no clue why Yoshimi would access that, though apparently there's an Oscilloscope class on the ZynAddSubFX plugin (which Yoshimi is based on). I'm thinking maybe there's some name collision happening?

Logs
Thread 1 "lmms" received signal SIGSEGV, Segmentation fault.
__GI___libc_free (mem=0x30531bff00631c00) at malloc.c:3102
3102	malloc.c: No such file or directory.
(gdb) backtrace
#0  __GI___libc_free (mem=0x30531bff00631c00) at malloc.c:3102
#1  0x0000555555941a83 in Oscilloscope::~Oscilloscope() (this=0x555565bc1ca0, __in_chrg=<optimized out>) at /home/ian/projects/lmms/src/gui/widgets/Oscilloscope.cpp:67
#2  0x00007fffe050a7f5 in Fl_Group::handle(int) () at /lib/x86_64-linux-gnu/libfltk.so.1.3
#3  0x00007fffe050a7f5 in Fl_Group::handle(int) () at /lib/x86_64-linux-gnu/libfltk.so.1.3
#4  0x00007fffe050a7f5 in Fl_Group::handle(int) () at /lib/x86_64-linux-gnu/libfltk.so.1.3
#5  0x00007fffe050a7f5 in Fl_Group::handle(int) () at /lib/x86_64-linux-gnu/libfltk.so.1.3
#6  0x00007fffe054cfaa in Fl_Widget::deactivate() () at /lib/x86_64-linux-gnu/libfltk.so.1.3
#7  0x00007fff90364158 in ADvoiceUI::make_window() () at /usr/lib/lv2/yoshimi.lv2/yoshimi_lv2.so
#8  0x00007fff903649e8 in ADvoiceUI::init(ADnoteParameters*, int, int, int) () at /usr/lib/lv2/yoshimi.lv2/yoshimi_lv2.so
#9  0x00007fff903660d2 in ADnoteUI::make_window() () at /usr/lib/lv2/yoshimi.lv2/yoshimi_lv2.so
#10 0x00007fff90366e82 in ADnoteUI::ADnoteUI(ADnoteParameters*, int, int) () at /usr/lib/lv2/yoshimi.lv2/yoshimi_lv2.so
#11 0x00007fff903839c9 in PartUI::showparameters(int, int) () at /usr/lib/lv2/yoshimi.lv2/yoshimi_lv2.so
#12 0x00007fff90386111 in PartUI::cb_subeditbutton1(Fl_Button*, void*) () at /usr/lib/lv2/yoshimi.lv2/yoshimi_lv2.so
#13 0x00007fffe054d325 in Fl_Widget::do_callback(Fl_Widget*, void*) () at /lib/x86_64-linux-gnu/libfltk.so.1.3
#14 0x00007fffe04fa5fa in Fl_Button::handle(int) () at /lib/x86_64-linux-gnu/libfltk.so.1.3
#15 0x00007fffe04f20f3 in  () at /lib/x86_64-linux-gnu/libfltk.so.1.3
#16 0x00007fffe04f417d in Fl::handle_(int, Fl_Window*) () at /lib/x86_64-linux-gnu/libfltk.so.1.3
#17 0x00007fffe055442b in fl_handle(_XEvent const&) () at /lib/x86_64-linux-gnu/libfltk.so.1.3
#18 0x00007fffe0555b62 in  () at /lib/x86_64-linux-gnu/libfltk.so.1.3
#19 0x00007fffe0555ea6 in fl_wait(double) () at /lib/x86_64-linux-gnu/libfltk.so.1.3
#20 0x00007fffe04f3a19 in Fl::wait(double) () at /lib/x86_64-linux-gnu/libfltk.so.1.3
#21 0x00007fffe04f3b11 in Fl::check() () at /lib/x86_64-linux-gnu/libfltk.so.1.3
#22 0x00007fff90256185 in YoshimiLV2PluginUI::run() () at /usr/lib/lv2/yoshimi.lv2/yoshimi_lv2.so
#23 0x00007fffa41de725 in  () at /usr/lib/carla/libcarla_native-plugin.so
#24 0x00007fffa4174625 in  () at /usr/lib/carla/libcarla_native-plugin.so
#25 0x00007fffb40c8164 in CarlaInstrumentView::timerEvent(QTimerEvent*) (this=0x55555b9477d0, event=0x7fffffffdb90)
    at /home/ian/projects/lmms/plugins/carlabase/carla.cpp:469
#26 0x00007ffff5d98ccb in QObject::event(QEvent*) (this=this@entry=0x55555b9477d0, e=e@entry=0x7fffffffdb90) at kernel/qobject.cpp:1361
#27 0x00007ffff78baad3 in QWidget::event(QEvent*) (this=0x55555b9477d0, event=0x7fffffffdb90) at kernel/qwidget.cpp:9094
#28 0x00007ffff787bc0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55555b9477d0, e=0x7fffffffda90) at kernel/qapplication.cpp:3685
#29 0x00007ffff7882b90 in QApplication::notify(QObject*, QEvent*) (this=0x555555cbaea0, receiver=0x55555b9477d0, e=0x7fffffffda90) at kernel/qapplication.cpp:3431
#30 0x00007ffff5d69d48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55555b9477d0, event=0x7fffffffdb90) at kernel/qcoreapplication.cpp:1075
#31 0x00007ffff5d69efe in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=event@entry=0x7fffffffdb90) at kernel/qcoreapplication.cpp:1470
#32 0x00007ffff5dc1cf9 in QTimerInfoList::activateTimers() (this=0x555555d78940) at kernel/qtimerinfo_unix.cpp:643
#33 0x00007ffff5dc24d1 in timerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:183
#34 0x00007ffff2f4c0bd in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007ffff2f4c340 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007ffff2f4c3e3 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007ffff5dc283c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x555555d24e20, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#38 0x00007ffff5d68762 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffddc0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#39 0x00007ffff5d71690 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1383
#40 0x0000555555739f9e in main(int, char**) (argc=1, argv=0x7fffffffe128) at /home/ian/projects/lmms/src/core/main.cpp:990

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the crash by loading Yoshimi through Carla-Rack or Carla-Patchbay and opening the ADDSynth, SUBSynth, or PADSynth editor. Start with the backtrace at src/gui/widgets/Oscilloscope.cpp:67 and follow the Carla timer path in plugins/carlabase/carla.cpp:469. Done means these editor windows open without a segmentation fault.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.