You are here

Crash on switching busses

AttachmentSize
Binary Data crashtest.1.qtz1.51 KB

Hello,

When I try to change a track's output bus Qtractor crashes. Both audio and midi, and whether it's creating a new bus or selecting an existing one.

And then it usually takes a reboot to get qtractor back at all... (I've sometimes found the right combination of processes to kill but not always)

Any ideas?

Cheers

Forums: 

k sent.

rncbc's picture

ok. got that minimal session .qtz and the from the screencast you sent I could see that the crashes happens after a few dozen of bus switches and on my test it seems to be more probable when the audio meters are opted-in for the MIDI tracks plugin-chain.
I'll try to investigate and come to a better fix than telling you to turn-off the MIDI tracks audio-meters.
thank you for all your patience
cheers

[UPDATE 1:] found some old potential crap in the Track > Track Properties... dialog, wrt. changing current output bus on the fly: might be related to the crashes you report (as seen on the screencast you sent or maybe only partially mitigated (qtractor >= 0.9.9.81git.a90be8); please test and tell whether the odds are lower ;) tia.

[UPDATE 2:] make it qtractor >= 0.9.9.83git.ed8f41 !

Sorry for the delay, a busy time.

I've compiled with the debug flag. Does this help at all?

Minimal project, one track, synthv1 plugin, created two test midi busses and switched them about until it died. (on a real project, it most often segfaults immediately rather than taking several bus switches).

qt5ct: using qt5ct plugin
Warning: no translation found for 'en_US' locale: /usr/share/qt5/translations/qt_en_US.qm
Warning: no translation found for 'en_US' locale: /usr/share/qtractor/translations/qtractor_en_US.qm
Qt: 5.9.5
Qtractor: 0.9.10

Thread 1 "qtractor" received signal SIGSEGV, Segmentation fault.
0x00005555555ef65c in qtractorAudioMonitor::value_stamp(unsigned short, unsigned long) const ()
(gdb) bt
#0 0x00005555555ef65c in qtractorAudioMonitor::value_stamp(unsigned short, unsigned long) const ()
at qtractorObserver.h:229
#1 0x00005555555ec78e in qtractorAudioMeterValue::refresh(unsigned long) (this=0x555556c5b610, iStamp=2179)
at qtractorAudioMeter.cpp:245
#2 0x0000555555673b30 in qtractorMeterValue::refreshAll() () at qtractorMeter.cpp:141
#3 0x00005555557e30ac in qtractorMainForm::fastTimerSlot() (this=0x7fffffffd4d0) at qtractorMainForm.cpp:7520
#4 0x00007ffff3718645 in QMetaObject::activate(QObject*, int, int, void**) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5 0x00007ffff37251a3 in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6 0x00007ffff371916b in QObject::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7 0x00007ffff46a383c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8 0x00007ffff46ab104 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9 0x00007ffff36e99c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007ffff3741e1e in QTimerInfoList::activateTimers() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#11 0x00007ffff37425e1 in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007fffeceb6417 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007fffeceb6650 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#14 0x00007fffeceb66dc in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#15 0x00007ffff374297f in QEventDispatcherGlib::processEvents(QFlags) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007ffff36e79fa in QEventLoop::exec(QFlags) ()
---Type to continue, or q to quit---
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x00007ffff488df17 in QDialog::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x0000555555781b2f in qtractorTracks::editTrack(qtractorTrack*) (this=0x555555ff4da0, pTrack=0x5555563de710)
at qtractorTracks.cpp:2660
#19 0x00005555557d3b54 in qtractorMainForm::trackProperties() (this=0x7fffffffd4d0) at qtractorMainForm.cpp:3436
#20 0x00007ffff3718645 in QMetaObject::activate(QObject*, int, int, void**) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007ffff469d122 in QAction::triggered(bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007ffff469f80c in QAction::activate(QAction::ActionEvent) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff481c0fc in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007ffff48235ab in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007ffff48243d3 in QMenu::mouseReleaseEvent(QMouseEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007ffff46e2048 in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007ffff48266fb in QMenu::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007ffff46a383c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007ffff46ab65f in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007ffff36e99c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007ffff46aa632 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007ffff46fcea5 in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007ffff46ff7da in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
---Type to continue, or q to quit---
#34 0x00007ffff46a383c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007ffff46ab104 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007ffff36e99c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#37 0x00007ffff3ee7583 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#38 0x00007ffff3ee9055 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#39 0x00007ffff3ec02eb in QWindowSystemInterface::sendWindowSystemEvents(QFlags) ()
at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#40 0x00007fffd9f05260 in () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#41 0x00007fffeceb6417 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#42 0x00007fffeceb6650 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007fffeceb66dc in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#44 0x00007ffff374297f in QEventDispatcherGlib::processEvents(QFlags) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#45 0x00007ffff36e79fa in QEventLoop::exec(QFlags) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#46 0x00007ffff48212f0 in QMenu::exec(QPoint const&, QAction*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#47 0x0000555555754172 in qtractorTrackList::contextMenuEvent(QContextMenuEvent*) (this=0x55555607e970, pContextMenuEvent=0x7fffffffc9a0) at qtractorTrackList.cpp:1363
#48 0x00007ffff46e2e31 in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
---Type to continue, or q to quit---
#49 0x00007ffff47834de in QFrame::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#50 0x00007ffff36e96ac in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#51 0x00007ffff46a3815 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#52 0x00007ffff46abe6e in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#53 0x00007ffff36e99c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#54 0x00007ffff46fd2a9 in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#55 0x00007ffff46ff7da in () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#56 0x00007ffff46a383c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#57 0x00007ffff46ab104 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#58 0x00007ffff36e99c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#59 0x00007ffff3ee7583 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#60 0x00007ffff3ee9055 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#61 0x00007ffff3ec02eb in QWindowSystemInterface::sendWindowSystemEvents(QFlags) ()
at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#62 0x00007fffd9f05260 in () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#63 0x00007fffeceb6417 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
---Type to continue, or q to quit---
#64 0x00007fffeceb6650 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#65 0x00007fffeceb66dc in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#66 0x00007ffff374297f in QEventDispatcherGlib::processEvents(QFlags) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#67 0x00007ffff36e79fa in QEventLoop::exec(QFlags) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#68 0x00007ffff36f0aa4 in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#69 0x00005555555c77e5 in main(int, char**) (argc=1, argv=0x7fffffffdd98) at qtractor.cpp:522
Warning: the current language does not match this frame.
(gdb)

rncbc's picture

crap! :) I thought this one was nailed :S

and does it still crash when you turn the MIDI track/buses audio monitor meters off?

byee

Yes, I have the meters turned off under options, and it still crashes.

FWIW I usually run qtractor with NSM, that's probably not relevant, but just for completeness...

rncbc's picture

I mean on a MIDI track plugins, right-click menu > Audio > Meters is turned off ?

Yes, meters turned off.

In the same section, dedicated outputs selected (automatically from options setting), but no automatic connection.

rncbc's picture

that's strange

having the MIDI tracks/buses audio output meters turned off, specially on the MIDI track that you're switching output buses, should not trigger the issue,... anyway...

can you try again and experiment away with qtractor >= 0.9.10.1git.6990a0 (todays git head master) ?

cheers

Yep will do over the next day or so.

rncbc's picture

ok. thanks a lot

Pages

Add new comment