You are here

Crash on switching busses

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

AttachmentSize
Binary Data crashtest.1.qtz1.51 KB
Forums: 
rncbc's picture

hi, before anything else, the offending version (qtractor -v) would be welcome...

evermore as important: detailed information or steps to reproduce the crash(es) should be interesting, if not mandatory in the first place :)...

as you may now gather, that's not been the case 'round here, but I'm sure you have some (hard) evidences to show, don't you?

cheers

I'll find the hard evidence, but of course, the curse of the irreproducible is strong tonight.

FWIW running mostly under NSM, the crashes seem to kill Jack too.
qt5ct: using qt5ct plugin
Qt: 5.9.5
Qtractor: 0.9.9.35git.d513d

Does this help?

Starting program: /usr/bin/qtractor
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffd9c91700 (LWP 6507)]
qt5ct: using qt5ct plugin
[New Thread 0x7fffd2642700 (LWP 6508)]
qt5ct: D-Bus global menu: no
[New Thread 0x7fffd1e41700 (LWP 6509)]
[New Thread 0x7fffca784700 (LWP 6510)]
[New Thread 0x7fffc9600700 (LWP 6511)]
[New Thread 0x7fffc8dff700 (LWP 6512)]
[New Thread 0x7fffb3fff700 (LWP 6513)]
[New Thread 0x7fffb37fe700 (LWP 6514)]
[New Thread 0x7fffb2ffd700 (LWP 6515)]
[New Thread 0x7fffb27fc700 (LWP 6516)]
[New Thread 0x7fffd00b2700 (LWP 6517)]
[New Thread 0x7fffc8090700 (LWP 6518)]
[New Thread 0x7fffb1ffb700 (LWP 6519)]
[New Thread 0x7fffc02b0700 (LWP 6520)]
[New Thread 0x7fffb0f1c700 (LWP 6521)]
[New Thread 0x7fff959a0700 (LWP 6522)]
[New Thread 0x7fff9519f700 (LWP 6523)]
[New Thread 0x7fff9499e700 (LWP 6524)]
[Thread 0x7fff9499e700 (LWP 6524) exited]
[Thread 0x7fffc02b0700 (LWP 6520) exited]
[Thread 0x7fffb1ffb700 (LWP 6519) exited]
[Thread 0x7fffc8090700 (LWP 6518) exited]
[Thread 0x7fffd00b2700 (LWP 6517) exited]
[Thread 0x7fff9519f700 (LWP 6523) exited]
[Thread 0x7fff959a0700 (LWP 6522) exited]
[Thread 0x7fffb0f1c700 (LWP 6521) exited]
[New Thread 0x7fffd00b2700 (LWP 6525)]
[New Thread 0x7fffc8090700 (LWP 6526)]
[New Thread 0x7fffb0f1c700 (LWP 6527)]
[New Thread 0x7fff959a0700 (LWP 6528)]
[New Thread 0x7fff9519f700 (LWP 6529)]
[New Thread 0x7fffb1ffb700 (LWP 6530)]
[New Thread 0x7fff702a9700 (LWP 6531)]
[New Thread 0x7fff6faa8700 (LWP 6532)]
[New Thread 0x7fff6f2a7700 (LWP 6533)]
[New Thread 0x7fff6eaa6700 (LWP 6537)]
[New Thread 0x7fff6e2a5700 (LWP 6538)]
[New Thread 0x7fff6d8a1700 (LWP 6539)]
[New Thread 0x7fff6cc55700 (LWP 6540)]
[New Thread 0x7fff56091700 (LWP 6541)]
[New Thread 0x7fff55890700 (LWP 6549)]
[New Thread 0x7fff5508f700 (LWP 6571)]
[Thread 0x7fff5508f700 (LWP 6571) exited]
[Thread 0x7fff55890700 (LWP 6549) exited]
[New Thread 0x7fff55890700 (LWP 6602)]
[New Thread 0x7fff5508f700 (LWP 6603)]
[New Thread 0x7fff4ffff700 (LWP 6604)]
[New Thread 0x7fff4f7fe700 (LWP 6605)]
[New Thread 0x7fff4effd700 (LWP 6606)]
[New Thread 0x7fff4e7fc700 (LWP 6607)]
[New Thread 0x7fff4dffb700 (LWP 6608)]
[New Thread 0x7fff4d7fa700 (LWP 6609)]
[New Thread 0x7fff4cff9700 (LWP 6610)]
[New Thread 0x7fffc02b0700 (LWP 6611)]
[New Thread 0x7fff2bfff700 (LWP 6612)]
[New Thread 0x7fff2b7fe700 (LWP 6613)]

Thread 1 "qtractor" received signal SIGSEGV, Segmentation fault.
0x00005555555e33ac in ?? ()
(gdb)

(gdb) bt
#0 0x00005555555e33ac in ()
#1 0x00005555555e180b in ()
#2 0x000055555564f5b8 in ()
#3 0x0000555555767304 in ()
#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 0x00007fffeceb4417 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007fffeceb4650 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#14 0x00007fffeceb46dc 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) ()
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
---Type to continue, or q to quit---

rncbc's picture

not much! sorry

it would be more interesting if you run with a debug symbols build (./configure --enable-debug)...

also, some details or description of the session you're working on at the time of the crash would be also helpful, as the last steps that lead to the situation;

how many tracks or buses are there already? are there any plugins on those buses? are there any send/return or aux-send inserts? etc.
from the number of threads shown on the gdb output above you seem to have a fair number of audio tracks and clips running there, so the next question would be whether the issue only happens in this particular session or does it often occur with any other in general? can you make it a minimal session, with the least of complexitity, that the problem is reproducible, would be extremely valuable, but that might not be easily probable, I know.
thanks anyway.

seeya

re session details and crash example, probably easiest to email you a screen record I've just done?

It seems to happen across all types of projects. I'll try to capture a minimal session example. And if still no joy I'll do the debug compile.

rncbc's picture

a screencast would be interesting and on a minimal session example would be even better.
please try saving it as an archive/zip bundle (.qtz) and attach both here on the top post if possible.
cheers

minimal .qtz attached to the top post. I can't attach the minimal screencast action as it's mp4 and 1.6Mb...

rncbc's picture

got that and what are the exact steps involved to trigger a crash?
creating, switching and removing MIDI buses here on the given session, and nothing strange nor horrific happens...
you can send your screen recording attached to a mail or dropped into some temporary file upload service (eg. file.town) ?
cheers & thanks

Happy to send screencast by email - anything@rncbc.org ?

rncbc's picture

replace "anything" for "rncbc" and it should be fine :)
thanks

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

Looking solid so far on Qtractor: 0.9.10.7git.e99362

Cheers

rncbc's picture

fingers crossed :)

cheers

Add new comment