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

common segfault on exit if controller connected #10553

Closed
mixxxbot opened this issue Aug 23, 2022 · 2 comments
Closed

common segfault on exit if controller connected #10553

mixxxbot opened this issue Aug 23, 2022 · 2 comments
Labels
Milestone

Comments

@mixxxbot
Copy link
Collaborator

Reported by: ywwg
Date: 2021-10-10T02:48:48Z
Status: Fix Committed
Importance: High
Launchpad Issue: lp1946581


this is on main. I've been getting segfaults when I quit mixxx for a while now and I finally got a corefile to see what is happening.

#0  0x000055fec4189005 in QtPrivate::indexOf<DlgPrefController*, DlgPrefController*>(QList<DlgPrefController*> const&, DlgPrefController* const&, int)
    (from=0, u=<synthetic pointer>: 0x55fece266ac0, list=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:1042
mixxxdj/mixxx#4910  QList<DlgPrefController*>::indexOf(DlgPrefController* const&, int) const (from=0, t=<synthetic pointer>: 0x55fece266ac0, this=0x55fece118be8)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:1026
mixxxdj/mixxx#4911  DlgPrefControllers::slotHighlightDevice(DlgPrefController*, bool) (this=0x55fece118af0, pControllerDlg=0x55fece266ac0, enabled=<optimized out>)
    at /home/owen/src/github/mixxx/src/controllers/dlgprefcontrollers.cpp:198
mixxxdj/mixxx#4912  0x00007f56a68d95c7 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
mixxxdj/mixxx#4913  0x000055fec4536dc3 in Controller::openChanged(bool) (this=this@entry=0x7f56040300c0, _t1=<optimized out>, _t1@entry=false)
    at /home/owen/src/github/mixxx/cbuild/mixxx-lib_autogen/include/moc_controller.cpp:170
mixxxdj/mixxx#4914  0x000055fec455d485 in Controller::setOpen(bool) (open=false, this=0x7f56040300c0) at /home/owen/src/github/mixxx/src/controllers/controller.h:135
mixxxdj/mixxx#4915  PortMidiController::close() (this=0x7f56040300c0) at /home/owen/src/github/mixxx/src/controllers/midi/portmidicontroller.cpp:111
mixxxdj/mixxx#4916  0x000055fec455db25 in PortMidiController::~PortMidiController() (this=0x7f56040300c0, __in_chrg=<optimized out>)
    at /home/owen/src/github/mixxx/src/controllers/midi/portmidicontroller.cpp:39
mixxxdj/mixxx#4917  PortMidiController::~PortMidiController() (this=0x7f56040300c0, __in_chrg=<optimized out>) at /home/owen/src/github/mixxx/src/controllers/midi/portmidicontroller.cpp:41
mixxxdj/mixxx#4918  0x000055fec419d34c in PortMidiEnumerator::~PortMidiEnumerator() (this=0x7f560407a970, __in_chrg=<optimized out>)
    at /home/owen/src/github/mixxx/src/controllers/midi/portmidienumerator.cpp:101
mixxxdj/mixxx#4919 0x000055fec419d5cd in PortMidiEnumerator::~PortMidiEnumerator() (this=0x7f560407a970, __in_chrg=<optimized out>)
    at /home/owen/src/github/mixxx/src/controllers/midi/portmidienumerator.cpp:108
mixxxdj/mixxx#4920 0x000055fec4170432 in ControllerManager::slotShutdown() (this=0x55fec5a23310) at /home/owen/src/github/mixxx/src/controllers/controllermanager.cpp:173
mixxxdj/mixxx#4921 0x00007f56a68cf10c in QObject::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
mixxxdj/mixxx#4922 0x00007f56a9a54783 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
mixxxdj/mixxx#4923 0x00007f56a68a17ba in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
mixxxdj/mixxx#4924 0x00007f56a68a47e1 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
mixxxdj/mixxx#4925 0x00007f56a68fbba7 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
mixxxdj/mixxx#4926 0x00007f56a55bd8eb in g_main_context_dispatch () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
mixxxdj/mixxx#4927 0x00007f56a5610d28 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
mixxxdj/mixxx#4928 0x00007f56a55bb023 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
mixxxdj/mixxx#4929 0x00007f56a68fb204 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
mixxxdj/mixxx#4930 0x00007f56a68a011b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
mixxxdj/mixxx#4931 0x00007f56a66b5182 in QThread::exec() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
mixxxdj/mixxx#4932 0x00007f56a66b6341 in  () at /lib/x86_64-linux-gnu/libQt5Core.so.5
mixxxdj/mixxx#4933 0x00007f56a61da450 in start_thread (arg=0x7f5620ff9640) at pthread_create.c:473
mixxxdj/mixxx#4934 0x00007f56a60fcd53 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

We are calling into the preferences dialog during destruction, which is Bad. I'm guessing something about our code changed that the prefs dialog is being destructed before the midi devices are closed.

@mixxxbot
Copy link
Collaborator Author

Commented by: ronso0
Date: 2021-11-05T23:01:41Z


#4476

@mixxxbot mixxxbot added the bug label Aug 23, 2022
@mixxxbot
Copy link
Collaborator Author

Issue closed with status Fix Committed.

@mixxxbot mixxxbot transferred this issue from another repository Aug 24, 2022
@mixxxbot mixxxbot added this to the 2.4.0 milestone Aug 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant