https://bugs.kde.org/show_bug.cgi?id=430322
Bug ID: 430322
Summary: Crash on exit with tabbed diagrams enabled
Product: umbrello
Version: Git
Platform: Other
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: general
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
SUMMARY
After import of a large Rose MDL file with very many diagrams, Umbrello crashed
on exit.
In Settings -> Configure Umbrello -> General Settings "Miscellaneous", "Use
tabbed diagrams" had been active.
STEPS TO REPRODUCE
1. Start Umbrello, ensure that "Use tabbed diagrams" is activated.
2. Load a model with very many diagrams (in my case resulting form a
Rose model import - but may also happen in other usage scenarios)
3. Click around, select different diagrams, perhaps rearrange some diagram
objects
4. Select File -> Quit or press the mainwindow "X" corner symbol
5. On dialog "The current file has been modified. Do you want to save it?"
press Discard.
OBSERVED RESULT
Segfault with following backtrace:
#4 in std::__atomic_base<int>::operator++() (this=0x7f379ab77901 <typeinfo
name for QFutureWatcherBase+17>) at /usr/include/c++/10/bits/atomic_base.h:326
#5 in QAtomicOps<int>::ref<int>(std::atomic<int>&) (_q_value=...) at
/usr/include/qt5/QtCore/qatomic_cxx11.h:283
#6 in QBasicAtomicInteger<int>::ref() (this=0x7f379ab77901 <typeinfo name for
QFutureWatcherBase+17>) at /usr/include/qt5/QtCore/qbasicatomic.h:118
#7 in QtPrivate::RefCount::ref() (this=0x7f379ab77901 <typeinfo name for
QFutureWatcherBase+17>) at /usr/include/qt5/QtCore/qrefcount.h:61
#8 in QString::QString(QString const&) (this=0x7ffc93c3e568, other=...) at
/usr/include/qt5/QtCore/qstring.h:1094
#9 in UMLScene::documentation() const (this=0x7f3790028f20) at
/u/umbrello/umlscene.cpp:359
#10 in DocWindow::isModified() (this=0x203c700) at
/u/umbrello/docwindow.cpp:353
#11 in DocWindow::updateDocumentation(bool, bool) (this=0x203c700, clear=true,
startup=false) at /u/umbrello/docwindow.cpp:278
#12 in DocWindow::showDocumentation(UMLScene*, bool) (this=0x203c700,
scene=0xd6da320, overwrite=false) at /u/umbrello/docwindow.cpp:185
#13 in UMLDoc::changeCurrentView(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >) (this=0x1a23be0,
id="49A5573701AF") at /u/umbrello/umldoc.cpp:1790
#14 in UMLApp::slotTabChanged(int) (this=0x18fec30, index=0) at
/u/umbrello/uml.cpp:3199
#15 in UMLApp::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)
(_o=0x18fec30, _c=QMetaObject::InvokeMetaMethod, _id=81, _a=0x7ffc93c3e910) at
/u/build/umbrello/libumbrello_autogen/EWIEGA46WW/moc_uml.cpp:560
#16 in doActivate<false>(QObject*, int, void**) (sender=0x1f48d80,
signal_index=7, argv=argv@entry=0x7ffc93c3e910) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395
#17 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
(sender=<optimized out>, m=m@entry=0x7f379bbd68c0
<QTabWidget::staticMetaObject>, local_signal_index=local_signal_index@entry=0,
argv=argv@entry=0x7ffc93c3e910) at kernel/qobject.cpp:3946
#18 in QTabWidget::currentChanged(int) (this=<optimized out>, _t1=<optimized
out>) at .moc/moc_qtabwidget.cpp:326
#19 in doActivate<false>(QObject*, int, void**) (sender=0x1f51020,
signal_index=7, argv=argv@entry=0x7ffc93c3ea30) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395
#20 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
(sender=sender@entry=0x1f51020, m=m@entry=0x7f379bbd5320
<QTabBar::staticMetaObject>, local_signal_index=local_signal_index@entry=0,
argv=argv@entry=0x7ffc93c3ea30) at kernel/qobject.cpp:3946
#21 in QTabBar::currentChanged(int) (this=this@entry=0x1f51020, _t1=<optimized
out>, _t1@entry=0) at .moc/moc_qtabbar.cpp:338
#22 in QTabBar::setCurrentIndex(int) (this=this@entry=0x1f51020,
index=index@entry=0) at widgets/qtabbar.cpp:1450
#23 in QTabBar::removeTab(int) (this=0x1f51020, index=<optimized out>,
index@entry=0) at widgets/qtabbar.cpp:1094
#24 in QTabWidgetPrivate::_q_removeTab(int) (index=0, this=<optimized out>) at
widgets/qtabwidget.cpp:802
#25 QTabWidget::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)
(_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized
out>) at .moc/moc_qtabwidget.cpp:178
#26 0x00007f379aac78a0 in doActivate<false>(QObject*, int, void**)
(sender=0x1f50b40, signal_index=8, argv=argv@entry=0x7ffc93c3ec10) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395
#27 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
(sender=<optimized out>, m=m@entry=0x7f379bbd4d00
<QStackedWidget::staticMetaObject>,
local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffc93c3ec10)
at kernel/qobject.cpp:3946
#28 in QStackedWidget::widgetRemoved(int) (this=<optimized out>, _t1=<optimized
out>) at .moc/moc_qstackedwidget.cpp:226
#29 in doActivate<false>(QObject*, int, void**) (sender=0x1f50a50,
signal_index=3, argv=argv@entry=0x7ffc93c3ed30) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395
#30 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
(sender=sender@entry=0x1f50a50, m=m@entry=0x7f379bbc5360
<QStackedLayout::staticMetaObject>,
local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc93c3ed30)
at kernel/qobject.cpp:3946
#31 in QStackedLayout::widgetRemoved(int) (this=this@entry=0x1f50a50,
_t1=<optimized out>, _t1@entry=0) at .moc/moc_qstackedlayout.cpp:220
#32 in QStackedLayout::takeAt(int) (this=0x1f50a50, index=0) at
kernel/qstackedlayout.cpp:280
#33 in removeWidgetRecursively(QLayoutItem*, QObject*) (li=<optimized out>,
w=0xd71e8c0) at kernel/qlayout.cpp:573
#34 in QLayout::widgetEvent(QEvent*) (this=<optimized out>,
e=e@entry=0x7ffc93c3ee90) at
../../include/QtCore/../../src/corelib/kernel/qcoreevent.h:354
#35 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized
out>, receiver=0x1f50b40, e=0x7ffc93c3ee90) at kernel/qapplication.cpp:3621
#36 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x1f50b40, event=0x7ffc93c3ee90) at
../../include/QtCore/5.15.2/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:325
#37 in QObjectPrivate::setParent_helper(QObject*) (this=0xd701ec0, o=0x0) at
kernel/qobject.cpp:2149
#38 in QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at
kernel/qobject.cpp:1093
#39 in UMLView::~UMLView() (this=0xd71e8c0, __in_chrg=<optimized out>) at
/u/umbrello/umlview.cpp:48
#40 in UMLView::~UMLView() (this=0xd71e8c0, __in_chrg=<optimized out>) at
/u/umbrello/umlview.cpp:51
#41 in qDeleteAll<QList<QPointer<UMLView>
>::const_iterator>(QList<QPointer<UMLView> >::const_iterator,
QList<QPointer<UMLView> >::const_iterator) (begin=..., end=...) at
/usr/include/qt5/QtCore/qalgorithms.h:320
#42 in qDeleteAll<QList<QPointer<UMLView> > >(QList<QPointer<UMLView> > const&)
(c=...) at /usr/include/qt5/QtCore/qalgorithms.h:328
#43 in UMLFolder::~UMLFolder() (this=0xd6d9cc0, __in_chrg=<optimized out>) at
/u/umbrello/uml1model/folder.cpp:52
#44 in UMLFolder::~UMLFolder() (this=0xd6d9cc0, __in_chrg=<optimized out>) at
/u/umbrello/uml1model/folder.cpp:54
#45 in UMLPackage::removeAllObjects() (this=0xbc3abc0) at
/u/umbrello/uml1model/package.cpp:259
#46 in UMLPackage::removeAllObjects() (this=0x91ac220) at
/u/umbrello/uml1model/package.cpp:257
#47 in UMLPackage::removeAllObjects() (this=0x91a6150) at
/u/umbrello/uml1model/package.cpp:257
#48 in UMLPackage::removeAllObjects() (this=0x21b81a0) at
/u/umbrello/uml1model/package.cpp:257
#49 in UMLPackage::removeAllObjects() (this=0x1c6db50) at
/u/umbrello/uml1model/package.cpp:257
#50 in UMLDoc::removeAllObjects() (this=0x1a23be0) at
/u/umbrello/umldoc.cpp:2931
#51 in UMLDoc::closeDocument() (this=0x1a23be0) at /u/umbrello/umldoc.cpp:432
#52 in UMLDoc::saveModified() (this=0x1a23be0) at /u/umbrello/umldoc.cpp:386
#53 in UMLApp::queryClose() (this=0x18fec30) at /u/umbrello/uml.cpp:1235
#54 in KMainWindow::closeEvent(QCloseEvent*) () at /usr/lib64/libKF5XmlGui.so.5
EXPECTED RESULT
Don't crash.
SOFTWARE/OS VERSIONS
Umbrello: git master @ 526bd5ac
Linux/KDE Plasma: openSuSE Tumbleweed 20201129
KDE Plasma Version: 5.20.3
KDE Frameworks Version: 5.76.0
Qt Version: 5.15.2
--
You are receiving this mail because:
You are watching all bug changes.