Version: svn 3.5 branch of 22/08/2005 (using KDE KDE 3.4.2) Installed from: Unlisted Binary Package Compiler: g++ 3.3.5 OS: Linux When I undo in Umbrello, I get a crash fairly often. I have attached a file that you can use to reproduce the crash. * Select everything on the diagram called QUPA. * Select copy * Create a new Collaboration Diagran * Select paste * Notice that Umbrello is right, shouldn't have done that, so press undo to remove all the arrows that have been pasted. * Crash: Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1". `system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols. [Thread debugging using libthread_db enabled] [New Thread -1241120064 (LWP 6538)] [KCrash handler] #4 0x00000048 in ?? () #5 0xb72cf01e in QGList::clear () from /usr/lib/libqt-mt.so.3 #6 0x081724f5 in QPtrList<QCanvasLine>::clear (this=0x8cad4e0) at qptrlist.h:93 #7 0x08170ffd in LinePath::cleanup (this=0x8cad4b4) at linepath.cpp:833 #8 0x08127471 in AssociationWidget::cleanup (this=0x8cad228) at associationwidget.cpp:768 #9 0x08124dfa in ~AssociationWidget (this=0x8cad228) at associationwidget.cpp:128 #10 0xb6fd323e in QWidget::~QWidget () from /usr/lib/libqt-mt.so.3 #11 0xb70d0bff in QScrollView::~QScrollView () from /usr/lib/libqt-mt.so.3 #12 0xb71e5f92 in QCanvasView::~QCanvasView () from /usr/lib/libqt-mt.so.3 #13 0x081d3608 in ~UMLView (this=0x8af19e8) at umlview.cpp:209 #14 0x08161dd1 in QPtrList<UMLView>::deleteItem (this=0x8511a78, d=0x8af19e8) at qptrlist.h:150 #15 0xb72cec5c in QGList::remove () from /usr/lib/libqt-mt.so.3 #16 0x081ba22c in QPtrList<UMLView>::remove (this=0x8511a78, d=0x8af19e8) at qptrlist.h:85 #17 0x081a9865 in UMLDoc::removeView (this=0x8511a50, view=0x8af19e8, enforceCurrentView=false) at umldoc.cpp:174 #18 0x081b6e20 in UMLDoc::removeAllViews (this=0x8511a50) at umldoc.cpp:2335 #19 0x081a9c87 in UMLDoc::closeDocument (this=0x8511a50) at umldoc.cpp:279 #20 0x081b8c43 in UMLDoc::loadUndoData (this=0x8511a50) at umldoc.cpp:2738 #21 0x081a2251 in UMLApp::slotEditUndo (this=0x850e200) at uml.cpp:819 #22 0x081a62ed in UMLApp::qt_invoke (this=0x850e200, _id=130, _o=0xbfffeb10) at uml.moc:321 #23 0xb6f9ab84 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #24 0xb6f9a951 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #25 0xb79dcdcb in KAction::activated () from /usr/lib/libkdeui.so.4 #26 0xb79dc53a in KAction::slotActivated () from /usr/lib/libkdeui.so.4 #27 0xb79dd0b1 in KAction::qt_invoke () from /usr/lib/libkdeui.so.4 #28 0xb6f9ab84 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #29 0xb6f9a951 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #30 0xb778741b in KAccelPrivate::menuItemActivated () from /usr/lib/libkdecore.so.4 #31 0xb7785c58 in KAccelPrivate::eventFilter () from /usr/lib/libkdecore.so.4 #32 0xb6f98244 in QObject::activate_filters () from /usr/lib/libqt-mt.so.3 #33 0xb6f9816c in QObject::event () from /usr/lib/libqt-mt.so.3 #34 0xb6fd938f in QWidget::event () from /usr/lib/libqt-mt.so.3 #35 0xb70b02a2 in QMainWindow::event () from /usr/lib/libqt-mt.so.3 #36 0xb6f32bef in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3 #37 0xb6f323e4 in QApplication::notify () from /usr/lib/libqt-mt.so.3 #38 0xb76ff8a5 in KApplication::notify () from /usr/lib/libkdecore.so.4 #39 0xb6f290d2 in QAccelManager::tryAccelEvent () from /usr/lib/libqt-mt.so.3 #40 0xb6f28965 in qt_tryAccelEvent () from /usr/lib/libqt-mt.so.3 #41 0xb6ebd82c in QETWidget::translateKeyEvent () from /usr/lib/libqt-mt.so.3 #42 0xb6eb8775 in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3 #43 0xb6ed1d9e in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3 #44 0xb6f47c38 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3 #45 0xb6f47ae8 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3 #46 0xb6f32e51 in QApplication::exec () from /usr/lib/libqt-mt.so.3 #47 0x0817c67a in main (argc=7, argv=0xbffffad4) at main.cpp:113 Notice that this isn't the only way to get the crash, I get it fairly often. Maybe it happens when removing a connection, maybe when I remove more than one thing at a time -- I don't know...
Created attachment 12346 [details] An umbrello diagram that can be used to reproduce the crash
Ps. Despite this crash, Umbrello really has improved a lot! I have used it for teaching UML, and I'm really happy to have it around to work with this new project. Colleagues are impressed & jealous :-).
hmm, indeed I see some interesting crashes here :)
Some cleaning was done, in particular by commits 453995 and 454157. Could you try again? Thanks.
I'm afraid that with svn of today, I still get a crash: Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1". `system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols. [Thread debugging using libthread_db enabled] [New Thread -1233249856 (LWP 31812)] [KCrash handler] #4 0x00000241 in ?? () #5 0x081727ef in QPtrList<QCanvasLine>::deleteItem (this=0x85c17c0, d=0x85bfd90) at qptrlist.h:150 #6 0xb739012a in QGList::clear () from /usr/lib/libqt-mt.so.3 #7 0x081724f5 in QPtrList<QCanvasLine>::clear (this=0x85c17c0) at qptrlist.h:93 #8 0x08170ffd in LinePath::cleanup (this=0x85c1794) at linepath.cpp:833 #9 0x08127471 in AssociationWidget::cleanup (this=0x85c1508) at associationwidget.cpp:768 #10 0x08124dfa in ~AssociationWidget (this=0x85c1508) at associationwidget.cpp:128 #11 0xb70ced1b in QWidget::~QWidget () from /usr/lib/libqt-mt.so.3 #12 0x08165d76 in ~QFrame (this=0x86eb0b8) at kplayerslideraction.h:112 #13 0xb71cd058 in QScrollView::~QScrollView () from /usr/lib/libqt-mt.so.3 #14 0xb72c78aa in QCanvasView::~QCanvasView () from /usr/lib/libqt-mt.so.3 #15 0x081d3608 in ~UMLView (this=0x86eb0b8) at umlview.cpp:209 #16 0x08161dd1 in QPtrList<UMLView>::deleteItem (this=0x84dfa68, d=0x86eb0b8) at qptrlist.h:150 #17 0xb739012a in QGList::clear () from /usr/lib/libqt-mt.so.3 #18 0x08161c59 in QPtrList<UMLView>::clear (this=0x84dfa68) at qptrlist.h:93 #19 0x081b6e41 in UMLDoc::removeAllViews (this=0x84dfa40) at umldoc.cpp:2337 #20 0x081a9c87 in UMLDoc::closeDocument (this=0x84dfa40) at umldoc.cpp:279 #21 0x081b8c43 in UMLDoc::loadUndoData (this=0x84dfa40) at umldoc.cpp:2738 #22 0x081a2251 in UMLApp::slotEditUndo (this=0x84d3468) at uml.cpp:819 #23 0x081a62ed in UMLApp::qt_invoke (this=0x84d3468, _id=130, _o=0xbf93131c) at uml.moc:321 #24 0xb7095929 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #25 0xb70963c4 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #26 0xb7970dc9 in KAction::activated () from /usr/lib/libkdeui.so.4 #27 0xb79a57ce in KAction::slotActivated () from /usr/lib/libkdeui.so.4 #28 0xb79c06b4 in KAction::qt_invoke () from /usr/lib/libkdeui.so.4 #29 0xb7095929 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #30 0xb70963c4 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #31 0xb76d001d in KAccelPrivate::menuItemActivated () from /usr/lib/libkdecore.so.4 #32 0xb7762d7f in KAccelPrivate::eventFilter () from /usr/lib/libkdecore.so.4 #33 0xb7092a72 in QObject::activate_filters () from /usr/lib/libqt-mt.so.3 #34 0xb7092af0 in QObject::event () from /usr/lib/libqt-mt.so.3 #35 0xb70d0268 in QWidget::event () from /usr/lib/libqt-mt.so.3 #36 0xb71a027a in QMainWindow::event () from /usr/lib/libqt-mt.so.3 #37 0xb702cf80 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3 #38 0xb702d30e in QApplication::notify () from /usr/lib/libqt-mt.so.3 #39 0xb7783ae7 in KApplication::notify () from /usr/lib/libkdecore.so.4 #40 0xb77065d7 in KAccelEventHandler::x11Event () from /usr/lib/libkdecore.so.4 #41 0xb778212e in KApplication::x11EventFilter () from /usr/lib/libkdecore.so.4 #42 0xb6fa9db3 in qt_set_x11_event_filter () from /usr/lib/libqt-mt.so.3 #43 0xb6fb6fe4 in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3 #44 0xb6fd0fff in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3 #45 0xb7044cfb in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3 #46 0xb7044c1e in QEventLoop::exec () from /usr/lib/libqt-mt.so.3 #47 0xb702bc13 in QApplication::exec () from /usr/lib/libqt-mt.so.3 #48 0x0817c67a in main (argc=1, argv=0xbf932014) at main.cpp:113
> * Select everything on the diagram called QUPA. I don't see anything called QUPA in the XMI you attached? (I see the diagrams: "class diagram","Autorisatieproces", "Verstrekking medicatieinformatie", "Autorisatie componenten".)
Zut, I pasted the wrong file... Anyway, it's simple enough to recreate the crash: create a class diagram with two classes and one connection. Select everything, copy and create a collaboration diagram. Paste. Click away the notification and see that only the connection is pasted. Undo. Crash.
SVN commit 462075 by okellogg: pasteClip4(): If checkPasteWidgets() returns false then remove any associations. CCBUG:111351 - only CCing not closing as there are multitudinous other ways to produce similar crashes. Boud? M +15 -5 umlclipboard.cpp --- branches/KDE/3.5/kdesdk/umbrello/umbrello/clipboard/umlclipboard.cpp #462074:462075 @@ -478,6 +478,8 @@ if( diagramType != doc->getCurrentView()->getType() ) { if( !checkPasteWidgets(widgets) ) { + assocs.setAutoDelete(true); + assocs.clear(); return false; } } @@ -636,6 +638,7 @@ } bool UMLClipboard::checkPasteWidgets( UMLWidgetList & widgetList ) { + bool retval = true; UMLWidget * p = 0; UMLWidgetListIt it( widgetList ); while ( ( p = it.current()) != 0 ) { @@ -645,17 +648,24 @@ break; case Uml::wt_Text: - if( static_cast<FloatingText *>( p )-> - getRole() != Uml::tr_Floating ) - return false; + { + FloatingText *ft = static_cast<FloatingText*>(p); + if (ft->getRole() != Uml::tr_Floating) { + widgetList.remove(p); + delete ft; + retval = false; + } + } break; default: - return false; + widgetList.remove(p); + delete p; + retval = false; break; } } - return true; + return retval; } void UMLClipboard::pasteItemAlreadyExists() {
On Monday 19 September 2005 23:42, Oliver Kellogg wrote: > only CCing not closing as there are multitudinous other > ways to produce similar crashes. Boud? I'll report other crashes as I come across them, and I'll update my umbrello today.
I've been using Umbrello on and off almost every month and I haven't experienced crashes of this kind anymore. As far as I'm concerned, you can close the bug.
Thanks.