Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-103333

SIGBUS / SIGSEGV using FreeCAD

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 5.15.2, 6.4.0 FF
    • Widgets: Itemviews
    • None
    • Linux/X11

    Description

      Hy,

       

      while working in FreeCAD changing some parameters I almost always get either a SIGSEGV or a SIGBUS signal crashing the app. The one time it didn't crash it produced the following output:

      QObject::installEventFilter(): Cannot filter events for objects in a different thread.

       

      The backtrace for the SIGSEGV is:

      FreeCAD 0.20, Libs: 0.20R28809 (Git) 
      
       Thread 1 "FreeCAD" received signal SIGSEGV, Segmentation fault. QObject::installEventFilter (this=0x45bbb40, obj=0x23947850) at kernel/qobject.cpp:2221 2221 if (d->threadData != obj->d_func()->threadData) { (gdb) bt #0 QObject::installEventFilter(QObject*) (this=0x45bbb40, obj=0x23947850) at kernel/qobject.cpp:2221 #1 0x00007ffff2f036aa in QAbstractItemView::commitData(QWidget*) (this=<optimized out>, editor=0x45bbb40) at itemviews/qabstractitemview.cpp:2909 #2 0x00007ffedab072a1 in SpreadsheetGui::SheetTableView::commitData(QWidget*) (this=0x2208f970, editor=0x45bbb40) at /home/system/usr/FreeCAD/src/src/Mod/Spreadsheet/Gui/SheetTableView.cpp:478 #3 0x00007ffedab0bad5 in SpreadsheetGui::SheetTableView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x2208f970, _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0x7fffffffb180) at /home/system/usr/FreeCAD/bin/build/src/Mod/Spreadsheet/Gui/SpreadsheetGui_autogen/include/moc_SheetTableView.cpp:272 #4 0x00007ffff2115488 in doActivate<false>(QObject*, int, void**) (sender=0x23947850, signal_index=3, argv=0x7fffffffb180) at kernel/qobject.cpp:3898 #5 0x00007ffff210e7af in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x23947850, m=m@entry=0x7ffff31c8da0 <QAbstractItemDelegate::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffb180) at kernel/qobject.cpp:3946 #6 0x00007ffff2f2143f in QAbstractItemDelegate::commitData(QWidget*) (this=this@entry=0x23947850, _t1=<optimized out>, _t1@entry=0x45bbb40) at .moc/moc_qabstractitemdelegate.cpp:205 #7 0x00007ffff2f21fda in QAbstractItemDelegatePrivate::_q_commitDataAndCloseEditor(QWidget*) (editor=0x45bbb40, this=<optimized out>) at itemviews/qabstractitemdelegate.cpp:634 #8 QAbstractItemDelegate::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qabstractitemdelegate.cpp:100 #9 0x00007ffff210b28e in QObject::event(QEvent*) (this=0x23947850, e=0x212b5970) at kernel/qobject.cpp:1314 #10 0x00007ffff2c8fb0f in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x23947850, e=0x212b5970) at kernel/qapplication.cpp:3632 #11 0x00007ffff6aaf3ce in Gui::GUIApplication::notify(QObject*, QEvent*) (this=0x7fffffffc1d0, receiver=0x23947850, event=0x212b5970) at /home/system/usr/FreeCAD/src/src/Gui/GuiApplication.cpp:84 #12 0x00007ffff20deb5a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x23947850, event=0x212b5970) at kernel/qcoreapplication.cpp:1064 #13 0x00007ffff20e1b97 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x6995e0) at kernel/qcoreapplication.cpp:1821 #14 0x00007ffff2136c33 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=s@entry=0x8011b0) at kernel/qeventdispatcher_glib.cpp:277 #15 0x00007ffff08ca122 in g_main_dispatch (context=0x7fffe4005010) at ../glib/gmain.c:3417 #16 g_main_context_dispatch (context=0x7fffe4005010) at ../glib/gmain.c:4135 #17 0x00007ffff08ca4b8 in g_main_context_iterate --Type <RET> for more, q to quit, c to continue without paging-- (context=context@entry=0x7fffe4005010, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4211 #18 0x00007ffff08ca56f in g_main_context_iteration (context=0x7fffe4005010, may_block=1) at ../glib/gmain.c:4276 #19 0x00007ffff21362b4 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x80c990, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #20 0x00007ffff20dd55b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffb7b0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #21 0x00007ffff20e5820 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #22 0x00007ffff695d8ef in Gui::Application::runApplication() () at /home/system/usr/FreeCAD/src/src/Gui/Application.cpp:2277 #23 0x000000000040c43f in main(int, char**) (argc=3, argv=0x7fffffffd408) at /home/system/usr/FreeCAD/src/src/Main/MainGui.cpp:290 (gdb)

       

      The one for the SIGBUS is:

      {{}}

      Thread 1 "FreeCAD" received signal SIGBUS, Bus error. QObject::installEventFilter (this=0x5b7a870, obj=0x53816e0) at kernel/qobject.cpp:2221 2221 if (d->threadData != obj->d_func()->threadData) { (gdb) bt #0 QObject::installEventFilter(QObject*) (this=0x5b7a870, obj=0x53816e0) at kernel/qobject.cpp:2221 #1 0x00007ffff2f036aa in QAbstractItemView::commitData(QWidget*) (this=<optimized out>, editor=0x5b7a870) at itemviews/qabstractitemview.cpp:2909 #2 0x00007ffed67662a1 in SpreadsheetGui::SheetTableView::commitData(QWidget*) (this=0x2602bc0, editor=0x5b7a870) at /home/system/usr/FreeCAD/src/src/Mod/Spreadsheet/Gui/SheetTableView.cpp:478 #3 0x00007ffed676aad5 in SpreadsheetGui::SheetTableView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x2602bc0, _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0x7fffffffb180) at /home/system/usr/FreeCAD/bin/build/src/Mod/Spreadsheet/Gui/SpreadsheetGui_autogen/include/moc_SheetTableView.cpp:272 #4 0x00007ffff2115488 in doActivate<false>(QObject*, int, void**) (sender=0x53816e0, signal_index=3, argv=0x7fffffffb180) at kernel/qobject.cpp:3898 #5 0x00007ffff210e7af in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x53816e0, m=m@entry=0x7ffff31c8da0 <QAbstractItemDelegate::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fffffffb180) at kernel/qobject.cpp:3946 #6 0x00007ffff2f2143f in QAbstractItemDelegate::commitData(QWidget*) (this=this@entry=0x53816e0, _t1=<optimized out>, _t1@entry=0x5b7a870) at .moc/moc_qabstractitemdelegate.cpp:205 #7 0x00007ffff2f21fda in QAbstractItemDelegatePrivate::_q_commitDataAndCloseEditor(QWidget*) (editor=0x5b7a870, this=<optimized out>) at itemviews/qabstractitemdelegate.cpp:634 #8 QAbstractItemDelegate::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qabstractitemdelegate.cpp:100 #9 0x00007ffff210b28e in QObject::event(QEvent*) (this=0x53816e0, e=0xd13520) at kernel/qobject.cpp:1314 #10 0x00007ffff2c8fb0f in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x53816e0, e=0xd13520) at kernel/qapplication.cpp:3632 #11 0x00007ffff6aaf3ce in Gui::GUIApplication::notify(QObject*, QEvent*) (this=0x7fffffffc1d0, receiver=0x53816e0, event=0xd13520) at /home/system/usr/FreeCAD/src/src/Gui/GuiApplication.cpp:84 #12 0x00007ffff20deb5a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x53816e0, event=0xd13520) at kernel/qcoreapplication.cpp:1064 #13 0x00007ffff20e1b97 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x684880) at kernel/qcoreapplication.cpp:1821 #14 0x00007ffff2136c33 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=s@entry=0x801db0) at kernel/qeventdispatcher_glib.cpp:277 #15 0x00007ffff08ca122 in g_main_dispatch (context=0x7fffe4005010) at ../glib/gmain.c:3417 #16 g_main_context_dispatch (context=0x7fffe4005010) at ../glib/gmain.c:4135 #17 0x00007ffff08ca4b8 in g_main_context_iterate --Type <RET> for more, q to quit, c to continue without paging-- (context=context@entry=0x7fffe4005010, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4211 #18 0x00007ffff08ca56f in g_main_context_iteration (context=0x7fffe4005010, may_block=1) at ../glib/gmain.c:4276 #19 0x00007ffff21362b4 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x80d6d0, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #20 0x00007ffff20dd55b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffb7b0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #21 0x00007ffff20e5820 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #22 0x00007ffff695d8ef in Gui::Application::runApplication() () at /home/system/usr/FreeCAD/src/src/Gui/Application.cpp:2277 #23 0x000000000040c43f in main(int, char**) (argc=3, argv=0x7fffffffd408) at /home/system/usr/FreeCAD/src/src/Main/MainGui.cpp:290 (gdb) q
      

       

      Unfortunitely I'm not able to provide a testcase or simple instructions to reproduce. But I'm able to reproduce it here and I'd help to track the problem down if desired.

       

      Link to the corresponding bugreport in the FreeCAD Forum: https://forum.freecadweb.org/viewtopic.php?f=8&t=68529

       

      Thanks,

         Frank

       

      Attachments

        1. QtCrash.zip
          4 kB
          Frank Schrüfer
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qt.team.quick.subscriptions Qt Quick and Widgets Team
            frank_schruefer Frank Schrüfer
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes