Version: 1.5.71 (using KDE KDE 3.5.6) Installed from: Ubuntu Packages Hello, I think I have found a bug with 1.5.7 of Umbrello. When connecting an Asynchronous message between two classes the application crashes (see the gdb output below). It seems the application is entering an infinite recursive loop in the UMLClassifier::getOpList() method. Note that I can only re-produce the bug in a particular project design I am working on. Here is an overview of part of the project: So part of my design contains 3 classes; classA classB and classX. classB inherits from classA. In a sequence diagram, when I create an asynchronous message from classX to classB, I get the segmentation fault. If I create the message from classB to classX, it creates the message fine. If I break the inheritance between classB and classA I can create and the message from classB to classX, it creates the message fine. I hope this can be sorted soon as Umbrello really is a great application! Cheers, Donal Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1235466544 (LWP 26146)] 0xb665c8d0 in ?? () from /lib/tls/i686/cmov/libc.so.6 (gdb) bt #0 0xb665c8d0 in ?? () from /lib/tls/i686/cmov/libc.so.6 #1 0xb665e60e in malloc () from /lib/tls/i686/cmov/libc.so.6 #2 0xb6820207 in operator new () from /usr/lib/libstdc++.so.6 #3 0xb7155c1b in QGList::append () from /usr/lib/libqt-mt.so.3 #4 0x0815bca0 in QPtrList<UMLAssociation>::append (this=0xbf5270f8, d=0x868eba0) at /usr/share/qt3/include/qptrlist.h:82 #5 0x081cfab3 in UMLCanvasObject::getAssociations (this=0x868dfc0) at umlcanvasobject.cpp:249 #6 0x081cfd77 in UMLCanvasObject::getSuperClasses (this=0x868dfc0) at umlcanvasobject.cpp:256 #7 0x08158532 in UMLClassifier::findSuperClassConcepts (this=0x868dfc0, type=UMLClassifier::ALL) at classifier.cpp:392 #8 0x08158845 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:634 #9 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #10 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #11 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #12 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #13 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #14 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #15 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #16 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #17 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #18 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #19 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #20 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #21 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #22 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #23 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #24 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #25 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #26 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #27 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #28 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #29 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #30 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #31 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #32 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #33 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #34 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #35 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #36 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #37 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #38 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #39 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #40 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #41 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #42 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #43 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #44 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #45 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #46 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #47 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #48 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #49 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #50 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #51 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #52 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #53 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #54 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #55 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #56 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #57 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #58 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #59 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #60 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #61 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #62 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 #63 0x08158912 in UMLClassifier::getOpList (this=0x868d818, includeInherited=true) at classifier.cpp:643 #64 0x08158912 in UMLClassifier::getOpList (this=0x868dfc0, includeInherited=true) at classifier.cpp:643 ---Type <return> to continue, or q <return> to quit---q Quit
Please attach a sample XMI for which this happens.
Created attachment 21501 [details] Crashing xmi file Hi Oliver, Attached is the xmi file (I've stripped out most of the classes and renamed a few of the remaining). If you go to the "Crashing Sequence Diagram" and create an Asynchronous message between Green and Persian, the application will crash. Best Regards, Donal
Created attachment 21502 [details] XMI of attachment 21501 [details], cleaned Your sample file contains a few interesting artefacts, for example <UML:Generalization child="5cB8TE9iXLdo" parent="UyrjFGfLV68n" /> <UML:Generalization child="UyrjFGfLV68n" parent="5cB8TE9iXLdo" /> This is a mutual generalization between "ParameterEvent" and "Apple". <UML:Generalization child="2JxEkrznGR6J" parent="2JxEkrznGR6J" /> This is a self generalization of the datatype "undef". <UML:Generalization child="UyrjFGfLV68n" parent="10Cc6dIdQ49e" /> <UML:Generalization child="10Cc6dIdQ49e" parent="UyrjFGfLV68n" /> This is a mutual generalization between "Apple" and "Red". <UML:Generalization child="2JxEkrznGR6J" parent="LyFnlB9wULG9" /> <UML:Generalization child="LyFnlB9wULG9" parent="2JxEkrznGR6J" /> This is a mutual generalization between "undef" and "PeriodicEvent". Also the "Crashing Sequence Diagram" would not display when clicked, therefore I made a new sequence diagram. Those leftover generalizations smell of a problem in an earlier version of Umbrello. Was the file originally created with version 1.5.71? If it was created with an earlier version then I suggest you clean up the XMI by hand.
*** Bug 186059 has been marked as a duplicate of this bug. ***
This crash report is at least 3 years old and there were no further comments or status updates since then. Therefore we believe that this crash is already fixed in recent KDE 4 versions or the backtrace is no longer applicable to the current KDE 4 sources. If the crash still happens with a recent KDE version (4.10.5 or 4.11), please add an updated backtrace or provide steps to reproduce. For more information, see http://techbase.kde.org/Development/Tutorials/Debugging/How_to_create_useful_crash_reports (To prevent automatic closing of this bug in the future, please set the bug status to ASSIGNED or CONFIRMED)
could not be reproduced with 2.11.2