https://bugs.kde.org/show_bug.cgi?id=463251
Bug ID: 463251 Summary: When no central widget is set, the Help menu autogenerates a button to activate KCommandBar, which makes the application segfault Classification: Frameworks and Libraries Product: frameworks-kxmlgui Version: 5.101.0 Platform: Other OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: general Assignee: kdelibs-b...@kde.org Reporter: herzensch...@gmail.com Target Milestone: --- Result of running the following in an example program where simply not having a central widget causes the activation of KCommandBar to crash the application: gdb ./build/kxmlguiwindowexample -batch -ex "set debuginfod enabled on" -ex "set logging file kxmlguiwindowlog.txt" -ex "set logging on" -ex "run" -ex "thread apply all backtrace" -ex "quit" [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". [New Thread 0x7ffff11ff6c0 (LWP 1760)] [New Thread 0x7fffebfff6c0 (LWP 1765)] [New Thread 0x7fffe37fe6c0 (LWP 1766)] [New Thread 0x7fffe994d6c0 (LWP 1796)] [New Thread 0x7fffe914c6c0 (LWP 1797)] [New Thread 0x7fffe894b6c0 (LWP 1798)] [New Thread 0x7fffe3fff6c0 (LWP 1799)] [New Thread 0x7fffe2ffd6c0 (LWP 1800)] [New Thread 0x7fffe27fc6c0 (LWP 1801)] [Thread 0x7fffe27fc6c0 (LWP 1801) exited] [Thread 0x7fffe2ffd6c0 (LWP 1800) exited] Thread 1 "kxmlguiwindowex" received signal SIGSEGV, Segmentation fault. QWidget::pos (this=0x0) at kernel/qwidget.cpp:3413 3413 QPoint result = data->crect.topLeft(); Thread 8 (Thread 0x7fffe3fff6c0 (LWP 1799) "kxmlguiwin:sh2"): #0 __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x4e8218) at futex-internal.c:57 #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x4e8218, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007ffff509008f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x4e8218, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007ffff5092cd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x4e81c8, cond=0x4e81f0) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x4e81f0, mutex=0x4e81c8) at pthread_cond_wait.c:618 #5 0x00007fffe9cbaa5b in cnd_wait (mtx=0x4e81c8, cond=0x4e81f0) at ../src/c11/impl/threads_posix.c:135 #6 util_queue_thread_func (input=input@entry=0x4e9690) at ../src/util/u_queue.c:287 #7 0x00007fffe9d03f27 in impl_thrd_routine (p=<optimized out>) at ../src/c11/impl/threads_posix.c:67 #8 0x00007ffff509398d in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007ffff511a380 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 7 (Thread 0x7fffe894b6c0 (LWP 1798) "kxmlguiwin:sh1"): #0 __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x4e8218) at futex-internal.c:57 #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x4e8218, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007ffff509008f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x4e8218, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007ffff5092cd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x4e81c8, cond=0x4e81f0) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x4e81f0, mutex=0x4e81c8) at pthread_cond_wait.c:618 #5 0x00007fffe9cbaa5b in cnd_wait (mtx=0x4e81c8, cond=0x4e81f0) at ../src/c11/impl/threads_posix.c:135 #6 util_queue_thread_func (input=input@entry=0x4e9220) at ../src/util/u_queue.c:287 #7 0x00007fffe9d03f27 in impl_thrd_routine (p=<optimized out>) at ../src/c11/impl/threads_posix.c:67 #8 0x00007ffff509398d in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007ffff511a380 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 6 (Thread 0x7fffe914c6c0 (LWP 1797) "kxmlguiwin:sh0"): #0 __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x4e8218) at futex-internal.c:57 #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x4e8218, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007ffff509008f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x4e8218, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007ffff5092cd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x4e81c8, cond=0x4e81f0) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x4e81f0, mutex=0x4e81c8) at pthread_cond_wait.c:618 #5 0x00007fffe9cbaa5b in cnd_wait (mtx=0x4e81c8, cond=0x4e81f0) at ../src/c11/impl/threads_posix.c:135 #6 util_queue_thread_func (input=input@entry=0x4e94e0) at ../src/util/u_queue.c:287 #7 0x00007fffe9d03f27 in impl_thrd_routine (p=<optimized out>) at ../src/c11/impl/threads_posix.c:67 #8 0x00007ffff509398d in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007ffff511a380 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 5 (Thread 0x7fffe994d6c0 (LWP 1796) "kxmlgui:disk$0"): #0 __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x4e4f18) at futex-internal.c:57 #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x4e4f18, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007ffff509008f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x4e4f18, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007ffff5092cd0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x4e4ec8, cond=0x4e4ef0) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x4e4ef0, mutex=0x4e4ec8) at pthread_cond_wait.c:618 #5 0x00007fffe9cbaa5b in cnd_wait (mtx=0x4e4ec8, cond=0x4e4ef0) at ../src/c11/impl/threads_posix.c:135 #6 util_queue_thread_func (input=input@entry=0x4e9500) at ../src/util/u_queue.c:287 #7 0x00007fffe9d03f27 in impl_thrd_routine (p=<optimized out>) at ../src/c11/impl/threads_posix.c:67 #8 0x00007ffff509398d in start_thread (arg=<optimized out>) at pthread_create.c:442 #9 0x00007ffff511a380 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 4 (Thread 0x7fffe37fe6c0 (LWP 1766) "WaylandEventThr"): #0 0x00007ffff510bb7f in __GI___poll (fds=fds@entry=0x7fffe37fdbf0, nfds=nfds@entry=2, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007ffff3a46c56 in poll (__timeout=-1, __nfds=2, __fds=0x7fffe37fdbf0) at /usr/include/bits/poll2.h:39 #2 QtWaylandClient::EventThread::run (this=0x468500) at qwaylanddisplay.cpp:208 #3 0x00007ffff56f5e3d in QThreadPrivate::start (arg=0x468500) at thread/qthread_unix.cpp:330 #4 0x00007ffff509398d in start_thread (arg=<optimized out>) at pthread_create.c:442 #5 0x00007ffff511a380 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 3 (Thread 0x7fffebfff6c0 (LWP 1765) "WaylandEventThr"): #0 0x00007ffff510bb7f in __GI___poll (fds=fds@entry=0x7fffebffebf0, nfds=nfds@entry=2, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007ffff3a46c56 in poll (__timeout=-1, __nfds=2, __fds=0x7fffebffebf0) at /usr/include/bits/poll2.h:39 #2 QtWaylandClient::EventThread::run (this=0x46c680) at qwaylanddisplay.cpp:208 #3 0x00007ffff56f5e3d in QThreadPrivate::start (arg=0x46c680) at thread/qthread_unix.cpp:330 #4 0x00007ffff509398d in start_thread (arg=<optimized out>) at pthread_create.c:442 #5 0x00007ffff511a380 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 2 (Thread 0x7ffff11ff6c0 (LWP 1760) "QDBusConnection"): #0 0x00007ffff510bb7f in __GI___poll (fds=0x7fffec0053c0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007ffff3e6adbe in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x7fffec0053c0, timeout=<optimized out>, context=0x7fffec001cf0) at ../glib/gmain.c:4543 #2 g_main_context_iterate (context=context@entry=0x7fffec001cf0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4233 #3 0x00007ffff3e6aedc in g_main_context_iteration (context=0x7fffec001cf0, may_block=1) at ../glib/gmain.c:4303 #4 0x00007ffff5933b56 in QEventDispatcherGlib::processEvents (this=0x7fffec000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #5 0x00007ffff58dab9b in QEventLoop::exec (this=this@entry=0x7ffff11febd0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #6 0x00007ffff56f4c47 in QThread::exec (this=this@entry=0x7ffff70aa060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #7 0x00007ffff7031277 in QDBusConnectionManager::run (this=0x7ffff70aa060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179 #8 0x00007ffff56f5e3d in QThreadPrivate::start (arg=0x7ffff70aa060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:330 #9 0x00007ffff509398d in start_thread (arg=<optimized out>) at pthread_create.c:442 #10 0x00007ffff511a380 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81 Thread 1 (Thread 0x7ffff3491e40 (LWP 1749) "kxmlguiwindowex"): #0 QWidget::pos (this=0x0) at kernel/qwidget.cpp:3413 #1 0x00007ffff7448b0d in KCommandBar::show (this=this@entry=0x7fffffffca00) at /usr/src/debug/kconfigwidgets-5.101.0/src/kcommandbar.cpp:617 #2 0x00007ffff7451ef5 in KCommandBar::setActions (this=this@entry=0x7fffffffca00, actions=...) at /usr/src/debug/kconfigwidgets-5.101.0/src/kcommandbar.cpp:607 #3 0x00007ffff7b676bb in operator() (__closure=<optimized out>) at /usr/src/debug/kxmlgui-5.101.0/src/kxmlguiwindow.cpp:103 #4 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, KXmlGuiWindow::KXmlGuiWindow(QWidget*, Qt::WindowFlags)::<lambda()> >::call (arg=<optimized out>, f=...) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:146 #5 QtPrivate::Functor<KXmlGuiWindow::KXmlGuiWindow(QWidget*, Qt::WindowFlags)::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:256 #6 QtPrivate::QFunctorSlotObject<KXmlGuiWindow::KXmlGuiWindow(QWidget*, Qt::WindowFlags)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:443 #7 0x00007ffff59132cd in QtPrivate::QSlotObjectBase::call (a=0x7fffffffcb50, r=0x55a730, this=0x56f450) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #8 doActivate<false> (sender=0x59f5f0, signal_index=4, argv=0x7fffffffcb50) at kernel/qobject.cpp:3919 #9 0x00007ffff590c74f in QMetaObject::activate (sender=sender@entry=0x59f5f0, m=m@entry=0x7ffff6ab8d20 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fffffffcb50) at kernel/qobject.cpp:3979 #10 0x00007ffff659ebb2 in QAction::triggered (this=this@entry=0x59f5f0, _t1=<optimized out>) at .moc/moc_qaction.cpp:376 #11 0x00007ffff65a16fb in QAction::activate (this=0x59f5f0, event=<optimized out>) at kernel/qaction.cpp:1161 #12 0x00007ffff67261f2 in QMenuPrivate::activateCausedStack (this=this@entry=0x861340, causedStack=..., action=action@entry=0x59f5f0, action_e=action_e@entry=QAction::Trigger, self=self@entry=true) at widgets/qmenu.cpp:1384 #13 0x00007ffff672e054 in QMenuPrivate::activateAction (this=0x861340, action=0x59f5f0, action_e=QAction::Trigger, self=<optimized out>) at widgets/qmenu.cpp:1461 #14 0x00007ffff65e6c38 in QWidget::event (this=0x67a040, event=0x7fffffffd130) at kernel/qwidget.cpp:9043 #15 0x00007ffff65a53fe in QApplicationPrivate::notify_helper (this=this@entry=0x443240, receiver=receiver@entry=0x67a040, e=e@entry=0x7fffffffd130) at kernel/qapplication.cpp:3637 #16 0x00007ffff65ad922 in QApplication::notify (this=<optimized out>, receiver=0x67a040, e=<optimized out>) at kernel/qapplication.cpp:3081 #17 0x00007ffff58dc128 in QCoreApplication::notifyInternal2 (receiver=0x67a040, event=0x7fffffffd130) at kernel/qcoreapplication.cpp:1064 #18 0x00007ffff65aba9e in QApplicationPrivate::sendMouseEvent (receiver=0x67a040, event=event@entry=0x7fffffffd130, alienWidget=<optimized out>, nativeWidget=0x67a040, buttonDown=buttonDown@entry=0x7ffff6af0330 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2619 #19 0x00007ffff65ffea5 in QWidgetWindow::handleMouseEvent (this=0x694e90, event=0x7fffffffd3e0) at kernel/qwidgetwindow.cpp:580 #20 0x00007ffff6602fb0 in QWidgetWindow::event (this=0x694e90, event=0x7fffffffd3e0) at kernel/qwidgetwindow.cpp:300 #21 0x00007ffff65a53fe in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x694e90, e=0x7fffffffd3e0) at kernel/qapplication.cpp:3637 #22 0x00007ffff58dc128 in QCoreApplication::notifyInternal2 (receiver=0x694e90, event=0x7fffffffd3e0) at kernel/qcoreapplication.cpp:1064 #23 0x00007ffff5d7b9ad in QGuiApplicationPrivate::processMouseEvent (e=0x7fffe4004fc0) at kernel/qguiapplication.cpp:2285 #24 0x00007ffff5d4f37c in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at kernel/qwindowsysteminterface.cpp:1169 #25 0x00007ffff3a7d1e0 in userEventSourceDispatch (source=<optimized out>) at qeventdispatcher_glib.cpp:74 #26 0x00007ffff3e6aa90 in g_main_dispatch (context=0x7fffec005010) at ../glib/gmain.c:3444 #27 g_main_context_dispatch (context=context@entry=0x7fffec005010) at ../glib/gmain.c:4162 #28 0x00007ffff3e6ae48 in g_main_context_iterate (context=context@entry=0x7fffec005010, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4238 #29 0x00007ffff3e6aedc in g_main_context_iteration (context=0x7fffec005010, may_block=1) at ../glib/gmain.c:4303 #30 0x00007ffff5933b56 in QEventDispatcherGlib::processEvents (this=0x46c5c0, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #31 0x00007ffff58dab9b in QEventLoop::exec (this=this@entry=0x7fffffffd710, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #32 0x00007ffff58e2d06 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #33 0x0000000000405509 in main () A debugging session is active. Inferior 1 [process 1749] will be killed. Quit anyway? (y or n) [answered Y; input not from terminal] -- You are receiving this mail because: You are watching all bug changes.