[umbrello] [Bug 430322] New: Crash on exit with tabbed diagrams enabled
Oliver Kellogg
bugzilla_noreply at kde.org
Sat Dec 12 22:03:11 GMT 2020
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: umbrello-devel at kde.org
Reporter: okellogg at users.sourceforge.net
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 at 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 at entry=0x7f379bbd68c0
<QTabWidget::staticMetaObject>, local_signal_index=local_signal_index at entry=0,
argv=argv at 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 at entry=0x7ffc93c3ea30) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395
#20 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
(sender=sender at entry=0x1f51020, m=m at entry=0x7f379bbd5320
<QTabBar::staticMetaObject>, local_signal_index=local_signal_index at entry=0,
argv=argv at entry=0x7ffc93c3ea30) at kernel/qobject.cpp:3946
#21 in QTabBar::currentChanged(int) (this=this at entry=0x1f51020, _t1=<optimized
out>, _t1 at entry=0) at .moc/moc_qtabbar.cpp:338
#22 in QTabBar::setCurrentIndex(int) (this=this at entry=0x1f51020,
index=index at entry=0) at widgets/qtabbar.cpp:1450
#23 in QTabBar::removeTab(int) (this=0x1f51020, index=<optimized out>,
index at 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 at 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 at entry=0x7f379bbd4d00
<QStackedWidget::staticMetaObject>,
local_signal_index=local_signal_index at entry=1, argv=argv at 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 at entry=0x7ffc93c3ed30) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:395
#30 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
(sender=sender at entry=0x1f50a50, m=m at entry=0x7f379bbc5360
<QStackedLayout::staticMetaObject>,
local_signal_index=local_signal_index at entry=0, argv=argv at entry=0x7ffc93c3ed30)
at kernel/qobject.cpp:3946
#31 in QStackedLayout::widgetRemoved(int) (this=this at entry=0x1f50a50,
_t1=<optimized out>, _t1 at 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 at 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 the assignee for the bug.
More information about the umbrello-devel
mailing list