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

Segfault when closing Mixxx during startup #13683

Open
daschuer opened this issue Sep 22, 2024 · 4 comments
Open

Segfault when closing Mixxx during startup #13683

daschuer opened this issue Sep 22, 2024 · 4 comments

Comments

@daschuer
Copy link
Member

Bug Description

Today I have experienced this segfault when I was closing Mixxx during startup:

warning [Main] Preferences: skipping unsupported locale "vls"
[New Thread 0x7ffe88016700 (LWP 2377986)]
[New Thread 0x7ffe87815700 (LWP 2377987)]
warning [0x7fffb40038c0] Engine thread not scheduled with the real-time policy SCHED_FIFO

Thread 1 "mixxx" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffeb7a10c0 (LWP 2377842)]
QOpenGLContext::isValid (this=this@entry=0x0) at kernel/qopenglcontext.cpp:715
715	kernel/qopenglcontext.cpp: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0  QOpenGLContext::isValid() const (this=this@entry=0x0)
    at kernel/qopenglcontext.cpp:715
#1  0x00007ffff65704b0 in QOpenGLContext::defaultFramebufferObject() const
    (this=0x0) at kernel/qopenglcontext.cpp:925
#2  0x00007ffff657545d in QOpenGLFunctions::glBindFramebuffer(unsigned int, unsigned int) (this=0x55556045d950, framebuffer=<optimized out>, target=36160)
    at ../../include/QtGui/../../src/gui/opengl/qopenglfunctions.h:1147
#3  QOpenGLWindowPrivate::beginPaint(QRegion const&)
    (this=0x5555604a75a0, region=...) at kernel/qopenglwindow.cpp:276
#4  0x00007ffff6566308 in QPaintDeviceWindowPrivate::paint(QRegion const&)
    (region=..., this=0x5555604a75a0) at kernel/qpaintdevicewindow_p.h:105
#5  QPaintDeviceWindowPrivate::doFlush(QRegion const&)
    (region=..., this=0x5555604a75a0) at kernel/qpaintdevicewindow_p.h:104
#6  QPaintDeviceWindow::exposeEvent(QExposeEvent*)
    (this=<optimized out>, exposeEvent=<optimized out>)
    at kernel/qpaintdevicewindow.cpp:189
#7  0x00007ffff653e9ad in QWindow::event(QEvent*)
    (this=0x5555604efb80, ev=<optimized out>) at kernel/qwindow.cpp:2347
#8  0x00007ffff656634d in QPaintDeviceWindow::event(QEvent*)
    (this=<optimized out>, event=<optimized out>)
    at kernel/qpaintdevicewindow.cpp:206
#9  0x0000555556391281 in OpenGLWindow::event(QEvent*)
    (this=0x5555604efb80, pEv=0x7fffffffd9f0)
--Type <RET> for more, q to quit, c to continue without paging--
    at /home/daniel/workspace/mixxx2/src/widget/openglwindow.cpp:64
#10 0x00007ffff6bada66 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    (this=this@entry=0x555556820780, receiver=receiver@entry=0x5555604efb80, e=e@entry=0x7fffffffd9f0) at kernel/qapplication.cpp:3700
#11 0x00007ffff6bb70f0 in QApplication::notify(QObject*, QEvent*)
    (this=0x7fffffffdda0, receiver=0x5555604efb80, e=0x7fffffffd9f0)
    at kernel/qapplication.cpp:3446
#12 0x00007ffff3c4280a in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    (receiver=0x5555604efb80, event=0x7fffffffd9f0)
    at ../../include/QtCore/../../src/corelib/kernel/qobject.h:142
#13 0x00007ffff6534de6 in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) (e=0x555562e426c0)
    at kernel/qguiapplication.cpp:3077
#14 0x00007ffff6535014 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) (e=e@entry=0x555562e426c0)
    at kernel/qguiapplication.cpp:1907
#15 0x00007ffff650f35b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=flags@entry=...)
    at kernel/qwindowsysteminterface.cpp:1151
#16 0x00007fffeb03e32e in xcbSourceDispatch(GSource*, GSourceFunc, gpointer)
    (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#17 0x00007ffff2aea17d in g_main_context_dispatch ()
    at /lib/x86_64-linux-gnu/libglib-2.0.so.0
--Type <RET> for more, q to quit, c to continue without paging--
#18 0x00007ffff2aea400 in  () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff2aea4a3 in g_main_context_iteration ()
    at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007ffff3c9a435 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5555568b09b0, flags=...)
    at kernel/qeventdispatcher_glib.cpp:422
#21 0x00007ffff3c413ab in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffdcd0, flags=..., flags@entry=...)
    at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#22 0x00007ffff3c49116 in QCoreApplication::exec() ()
    at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#23 0x0000555555a0f1a6 in (anonymous namespace)::runMixxx
    (args=..., pApp=0x7fffffffdda0)
    at /home/daniel/workspace/mixxx2/src/main.cpp:109
#24 main(int, char**) (argc=<optimized out>, argv=<optimized out>)
    at /home/daniel/workspace/mixxx2/src/main.cpp:245

The crash itself happens inside pApp->exec();
My guess is that we need to flush the event loop at one point when shutting down.

Version

2.4.1

OS

Ubuntu Focal

@daschuer daschuer added the bug label Sep 22, 2024
@ronso0 ronso0 added the crash label Sep 22, 2024
@ronso0
Copy link
Member

ronso0 commented Sep 22, 2024

Different issue, though this can also happen when keyevents are sent while the respective controls haven't been created, yet.

@Swiftb0y
Copy link
Member

that same error/backtrace or just crashing in general?

@ronso0
Copy link
Member

ronso0 commented Sep 22, 2024

no, shold crash in release builds, I only saw the (fatal) debug asserts.

@daschuer
Copy link
Member Author

I see also these debug assertions before it segfaults.

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

No branches or pull requests

3 participants