rncbc / qtractor

Qtractor - An Audio/MIDI multi-track sequencer
https://qtractor.org
GNU General Public License v2.0
499 stars 87 forks source link

qtractor 0.9.26 hangs on quit. #334

Closed be1 closed 2 years ago

be1 commented 2 years ago

On several projects, Qtractor hangs on quit. I am forced to killall -9 qtractor. For info, if I strace qtractor: strace: Process 2742 attached futex(0x7f135a572910, FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, 2836, NULL, FUTEX_BITSET_MATCH_ANY

If you need more info, feel free to ask. I can upload a session that causes this issue, somewhere.

rncbc commented 2 years ago

if you need more info, feel free to ask. I can upload a session that causes this issue, somewhere.

yes, of course, please save the session as a bundle archive/zip file (*.qtz)

info on what exact build and packaging in use should be also reported.

be1 commented 2 years ago

Hello, The version is 0.9.26 on Solus system, official package. It's built with Qt 5.15.3. the backtrace is: (gdb) bt

0 __futex_abstimed_wait_common64 (private=128, cancel=true, abstime=0x0, op=265, expected=6603, futex_word=0x7fff9d203910) at futex-internal.c:57

1 __futex_abstimed_wait_common (cancel=true, private=128, abstime=0x0, clockid=0, expected=6603, futex_word=0x7fff9d203910) at futex-internal.c:87

2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7fff9d203910, expected=6603, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=128) at futex-internal.c:139

3 0x00007ffff5c4f893 in __pthread_clockjoin_ex (threadid=140735829521984, thread_return=0x7fffffffc960, clockid=0, abstime=0x0, block=) at pthread_join_common.c:102

4 0x00007ffff664f0d2 in Jack::JackPosixThread::Kill() (this=this@entry=0x555556172b98) at ../posix/JackPosixThread.cpp:166

5 0x00007ffff6630434 in Jack::JackClient::Deactivate() (this=0x555556172950) at ../common/JackClient.cpp:494

6 Jack::JackClient::Deactivate() (this=0x555556172950) at ../common/JackClient.cpp:474

7 0x00005555556343ab in qtractorEngine::close() (this=0x555555bc0800) at /home/build/YPKG/root/qtractor/build/qtractor-qtractor_0_9_26/src/qtractorEngine.cpp:264

8 0x0000555555709f0c in qtractorSession::close() (this=0x555555c94000) at /home/build/YPKG/root/qtractor/build/qtractor-qtractor_0_9_26/src/qtractorSession.cpp:229

9 0x000055555579dafa in qtractorMainForm::closeSession() (this=0x7fffffffdde0) at /home/build/YPKG/root/qtractor/build/qtractor-qtractor_0_9_26/src/qtractorMainForm.cpp:2313

10 0x000055555579e0a7 in qtractorMainForm::queryClose() (this=0x7fffffffdde0) at /home/build/YPKG/root/qtractor/build/qtractor-qtractor_0_9_26/src/qtractorMainForm.cpp:1712

11 0x000055555579e96b in qtractorMainForm::closeEvent(QCloseEvent*) (this=0x7fffffffdde0, pCloseEvent=0x7fffffffccc0) at /home/build/YPKG/root/qtractor/build/qtractor-qtractor_0_9_26/src/qtractorMainForm.cpp:1811

12 0x00007ffff7a8585e in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5

13 0x00007ffff7a42742 in QApplicationPrivate::notify_helper(QObject, QEvent) () at /usr/lib/libQt5Widgets.so.5

14 0x00007ffff693817a in QCoreApplication::notifyInternal2(QObject, QEvent) () at /usr/lib/libQt5Core.so.5

15 0x00007ffff7a8078e in QWidgetPrivate::close_helper(QWidgetPrivate::CloseMode) () at /usr/lib/libQt5Widgets.so.5

16 0x00007ffff696f610 in () at /usr/lib/libQt5Core.so.5

17 0x00007ffff7a3bbe3 in QAction::triggered(bool) () at /usr/lib/libQt5Widgets.so.5

18 0x00007ffff7a3e948 in QAction::activate(QAction::ActionEvent) () at /usr/lib/libQt5Widgets.so.5

19 0x00007ffff7bceba3 in () at /usr/lib/libQt5Widgets.so.5

20 0x00007ffff7bd6879 in () at /usr/lib/libQt5Widgets.so.5

21 0x00007ffff7a8585e in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5

22 0x00007ffff7a42742 in QApplicationPrivate::notify_helper(QObject, QEvent) () at /usr/lib/libQt5Widgets.so.5

23 0x00007ffff7a4a4b7 in QApplication::notify(QObject, QEvent) () at /usr/lib/libQt5Widgets.so.5

24 0x00007ffff693817a in QCoreApplication::notifyInternal2(QObject, QEvent) () at /usr/lib/libQt5Core.so.5

25 0x00007ffff7a48f87 in QApplicationPrivate::sendMouseEvent(QWidget, QMouseEvent, QWidget, QWidget, QWidget**, QPointer&, bool, bool) () at /usr/lib/libQt5Widgets.so.5

26 0x00007ffff7a9fbe0 in () at /usr/lib/libQt5Widgets.so.5

27 0x00007ffff7aa2465 in () at /usr/lib/libQt5Widgets.so.5

28 0x00007ffff7a42742 in QApplicationPrivate::notify_helper(QObject, QEvent) () at /usr/lib/libQt5Widgets.so.5

29 0x00007ffff693817a in QCoreApplication::notifyInternal2(QObject, QEvent) () at /usr/lib/libQt5Core.so.5

30 0x00007ffff6d6f000 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/libQt5Gui.so.5

31 0x00007ffff6d44515 in QWindowSystemInterface::sendWindowSystemEvents(QFlags) () at /usr/lib/libQt5Gui.so.5

32 0x00007fffdec82b3c in () at /usr/lib/libQt5XcbQpa.so.5

33 0x00007ffff5482bac in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0

34 0x00007ffff5482e79 in () at /usr/lib/libglib-2.0.so.0

35 0x00007ffff5482f41 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0

36 0x00007ffff6990e86 in QEventDispatcherGlib::processEvents(QFlags) () at /usr/lib/libQt5Core.so.5

37 0x00007ffff6936aec in QEventLoop::exec(QFlags) () at /usr/lib/libQt5Core.so.5

38 0x00007ffff693f044 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5

39 0x00005555555e20a9 in main(int, char**) (argc=, argv=0x7fffffffdb10) at /home/build/YPKG/root/qtractor/build/qtractor-qtractor_0_9_26/src/qtractor.cpp:550

Here is a session that causes hang on quit. Please tell me when it is downloaded so that I can remove the link.

rncbc commented 2 years ago

Here is a session that causes hang on quit. Please tell me when it is downloaded so that I can remove the link. you can remove the link.

yes, you may remove the link.

however, I can't reproduce the hang here: while making quick tests here, loading the whole session ok, playback is fine ena closing and quitting is fine here too.

from the above backtrace:

0 __futex_abstimed_wait_common64 (private=128, cancel=true, abstime=0x0, op=265, expected=6603, futex_word=0x7fff9d203910) at futex-internal.c:57

1 __futex_abstimed_wait_common (cancel=true, private=128, abstime=0x0, clockid=0, expected=6603, futex_word=0x7fff9d203910) at futex-internal.c:87

2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7fff9d203910, expected=6603, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=128) at futex-internal.c:139

3 0x00007ffff5c4f893 in __pthread_clockjoin_ex (threadid=140735829521984, thread_return=0x7fffffffc960, clockid=0, abstime=0x0, block=) at pthread_join_common.c:102

4 0x00007ffff664f0d2 in Jack::JackPosixThread::Kill() (this=this@entry=0x555556172b98) at ../posix/JackPosixThread.cpp:166

5 0x00007ffff6630434 in Jack::JackClient::Deactivate() (this=0x555556172950) at ../common/JackClient.cpp:494

6 Jack::JackClient::Deactivate() (this=0x555556172950) at ../common/JackClient.cpp:474

the issue seems to be "external" to qtractor, namely during JACK client deactivation ie. jack_deactivate() and not quite on qtractor per se... maybe you can check your jackd(bus) installation and/or settings?

be1 commented 2 years ago

the issue seems to be "external" to qtractor, namely during JACK client deactivation ie. jack_deactivate() and not quite on qtractor per se... maybe you can check your jackd(bus) installation and/or settings?

You are right. In fact, all my jack applications do hang. Not only Qtractor. I am closing the bug. I removed all my jackd settings, but this did not help.