Bug 240606

Summary: Umbrello crashes when I make "Redo" command
Product: [Applications] umbrello Reporter: Sam Protsenko <joe.skb7>
Component: generalAssignee: Umbrello Development Group <umbrello-devel>
Status: RESOLVED FIXED    
Severity: crash CC: andreas_nordal_4, kde, ralf.habacker
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In: 4.13.0
Sentry Crash Report:

Description Sam Protsenko 2010-06-03 15:42:02 UTC
Version:           unspecified (using KDE 4.4.2) 
OS:                Linux

Umbrello crashed when pressed Ctrl+Shift+Z. It happens every time when I try to make "Redo"

Reproducible: Always
Comment 1 Andreas Nordal 2012-03-09 13:36:55 UTC
In my case, this procedure does _not_ crash Umbrello:
1) Create a class.
2) Undo
3) Redo

However, this does (reliably), and is the simplest crash procedure I can come up with:
1) Create a class.
2) Resize it
2) Undo 2 times
3) Redo 2 times

Backtrace:
Application: Umbrello UML-modellerer (umbrello), signal: Segmentation fault
[KCrash Handler]
#6  0x0000000100000000 in ?? ()
#7  0x00007ff6f8756756 in QUndoStack::redo() () from /usr/lib64/libQtGui.so.4
#8  0x00007ff6f8778898 in QUndoStack::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib64/libQtGui.so.4
#9  0x00007ff6f7c155aa in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#10 0x00007ff6f80fe622 in QAction::triggered(bool) () from /usr/lib64/libQtGui.so.4
#11 0x00007ff6f80fe80f in QAction::activate(QAction::ActionEvent) () from /usr/lib64/libQtGui.so.4
#12 0x00007ff6f80fe97f in QAction::event(QEvent*) () from /usr/lib64/libQtGui.so.4
#13 0x00007ff6f8104c34 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#14 0x00007ff6f8109ac1 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#15 0x00007ff6f954ce36 in KApplication::notify (this=0x7fff95ba62d0, receiver=0xc220f0, event=0x7fff95ba4df0) at /usr/src/debug/kdelibs-4.7.2/kdeui/kernel/kapplication.cpp:311
#16 0x00007ff6f7c0282c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4
#17 0x00007ff6f8136c19 in ?? () from /usr/lib64/libQtGui.so.4
#18 0x00007ff6f813810d in ?? () from /usr/lib64/libQtGui.so.4
#19 0x00007ff6f810b729 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#20 0x00007ff6f954ce36 in KApplication::notify (this=0x7fff95ba62d0, receiver=0xd150f0, event=0x7fff95ba5390) at /usr/src/debug/kdelibs-4.7.2/kdeui/kernel/kapplication.cpp:311
#21 0x00007ff6f7c0282c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4
#22 0x00007ff6f81a3f79 in ?? () from /usr/lib64/libQtGui.so.4
#23 0x00007ff6f81a43eb in ?? () from /usr/lib64/libQtGui.so.4
#24 0x00007ff6f81805d4 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib64/libQtGui.so.4
#25 0x00007ff6f81a8312 in ?? () from /usr/lib64/libQtGui.so.4
#26 0x00007ff6f2e7458d in g_main_dispatch (context=0xb030e0) at gmain.c:2425
#27 g_main_context_dispatch (context=0xb030e0) at gmain.c:2995
#28 0x00007ff6f2e74d88 in g_main_context_iterate (context=0xb030e0, block=<optimized out>, dispatch=1, self=<optimized out>) at gmain.c:3073
#29 0x00007ff6f2e74f59 in g_main_context_iteration (context=0xb030e0, may_block=1) at gmain.c:3136
#30 0x00007ff6f7c2d51f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#31 0x00007ff6f81a7f9e in ?? () from /usr/lib64/libQtGui.so.4
#32 0x00007ff6f7c01a32 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#33 0x00007ff6f7c01c2f in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#34 0x00007ff6f7c05df7 in QCoreApplication::exec() () from /usr/lib64/libQtCore.so.4
#35 0x000000000043d966 in main (argc=3, argv=0x7fff95ba66d8) at /usr/src/debug/kdesdk-4.7.2/umbrello/umbrello/main.cpp:111

I am using umbrello-4.7.2-3.1.2.x86_64 from OpenSuse 12.1.
I have installed all relevant debuginfo that I and DrKonqui could find (zypper says libQtGui.so.4 is provided by libqt4-x11, and I already had libqt4-x11-debuginfo).

I get a smaller backtrace (which DrKonqui also likes better) with this procedure than the one listed at bug 153805.
Comment 2 Ralf Habacker 2012-08-11 20:27:01 UTC
> 1) Create a class.
Confirmed in case the class is created in the diagram and not in the tree view.