Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closing "Pattern Editor" window crashes whole application #190

Open
zelyev opened this issue Jan 4, 2020 · 5 comments
Open

Closing "Pattern Editor" window crashes whole application #190

zelyev opened this issue Jan 4, 2020 · 5 comments

Comments

@zelyev
Copy link

zelyev commented Jan 4, 2020

Hello,

I am on Ubuntu Studio 19.10 with KX Studio repo added and sequencer64 package installed.

Starting sequencer64 it uses the qseq64 version. I open a pattern editor and when I close it, the whole application crashes:

$ qseq64
qt5ct: using qt5ct plugin
[JACK server already started]
[Initialized, running without JACK sync]
qt5ct: D-Bus global menu: no
Speicherzugriffsfehler (Speicherabzug geschrieben)

Build Information:

Sequencer64
0.96.6

Build features:
C++ version 201402
Native JACK/ALSA (rtmidi) on
Event editor on
Follow progress bar on
Highlight edit pattern on
Highlight empty patterns on
JACK session on
JACK support on
MIDI vector (vs list) on
Seq32 chord generator on
Seq32 LFO window on
Seq32 menu buttons on
Seq32 transpose on
BPM Tap button on
Solid piano-roll grid on
Optional pattern coloring on
Multiple main windows on
Song performance recording on
Pause support on
Save time-sig/tempo on
64-bit support enabled

Options are enabled/disabled via the configure script,
libseq64/include/seq64_features.h, or the build-specific
seq64-config.h file in include or in include/qt/portmidi

I would appreciate your advice. Thanks.

@falkTX
Copy link
Contributor

falkTX commented Feb 1, 2020

I can reproduce this too, it is quite annoying :(

Is this fixed on the new midi_control branch?

@ahlstromcj
Copy link
Owner

ahlstromcj commented Feb 1, 2020 via email

@falkTX
Copy link
Contributor

falkTX commented Feb 1, 2020

I have a trace for when I was running the application regularly, there is nothing about seq64 in there, only qt stuff.

Thread 1 "qseq64" received signal SIGSEGV, Segmentation fault.
0x00007ffff53b7324 in QWindow::isTopLevel() const () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
(gdb) bt
#0  0x00007ffff53b7324 in QWindow::isTopLevel() const () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#1  0x00007ffff53ba164 in QWindowPrivate::maybeQuitOnLastWindowClosed() () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#2  0x00007ffff53be604 in QWindow::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#3  0x00007ffff6f996ff in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#4  0x00007ffff6f3aeac in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#5  0x00007ffff6f424b0 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#6  0x00007ffff691fe38 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007ffff53b0615 in QGuiApplicationPrivate::processCloseEvent(QWindowSystemInterfacePrivate::CloseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#8  0x00007ffff53b4615 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#9  0x00007ffff538e79b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#10 0x00007fffedff1dda in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#11 0x00007ffff35e6417 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007ffff35e6650 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007ffff35e66dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#14 0x00007ffff697daaf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007ffff691df9a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007ffff6927310 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x0000555555555d67 in ?? ()
#18 0x00007ffff5aa9b97 in __libc_start_main (main=0x555555555aa0, argc=1, argv=0x7fffffffdc78, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdc68) at ../csu/libc-start.c:310
#19 0x000055555555626a in ?? ()

so I think a full debug trace won't be that much more useful

my guess is this is qt trying to do some operation on a deleted widget.
which happens due to the codebase deleting and creating new widgets a lot.
(qt widgets have a method called deleteLater() maybe that could be used instead of manually deleting them?)

@wundermusiker
Copy link

Can confirm this issue under Ubuntu Studio 19.10

@ahlstromcj
Copy link
Owner

I finally duplicated some form of the bug in the Qt version, but the bug is in the sequence class and could potentially affect all versions. To duplicate it (I think) I had to add some notes, select 1, and then hit quantize. That function was trying to calculates ticks % 0. I will follow up with more research on mod operations, but the current fix is in place in the midi_control branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants