[umbrello-devel] [umbrello] [Bug 336201] New: Infinite signal/slot recursion on loading xmi containing sequence diagram

Oliver Kellogg okellogg at users.sourceforge.net
Sat Jun 14 08:30:38 UTC 2014


https://bugs.kde.org/show_bug.cgi?id=336201

            Bug ID: 336201
           Summary: Infinite signal/slot recursion on loading xmi
                    containing sequence diagram
    Classification: Unclassified
           Product: umbrello
           Version: Git
          Platform: unspecified
                OS: Linux
            Status: UNCONFIRMED
          Severity: crash
          Priority: NOR
         Component: general
          Assignee: umbrello-devel at kde.org
          Reporter: okellogg at users.sourceforge.net

Present on git master HEAD of today; the oldest I've tried it with is git
master of 2014-05-07, same problem.

KCrash is not able to produce a backtrace (apparently due to stack overflow)
but here's the relevant part of a gdb run:

umbrello(9979) UMLApp::setCurrentView: Changed view to UMLScene: "class
diagram" / type="Class" / id="DMwBIoFY89jL" / isOpen=true          
umbrello(9979) UMLScene::loadMessagesFromXMI: tag =  "messagewidget"            
umbrello(9979) UMLScene::addFloatingTextWidget: "CHdnPVZW9I8Q"  type= "wt_Text"
: position ( 0 , 0 ) is out of range
umbrello(9979) UMLScene::loadMessagesFromXMI: tag =  "messagewidget"            
umbrello(9979) UMLScene::addFloatingTextWidget: "rAa64rmLmxEt"  type= "wt_Text"
: position ( 0 , 0 ) is out of range
umbrello(9979) UMLScene::loadMessagesFromXMI: tag =  "messagewidget"
umbrello(9979) UMLScene::addFloatingTextWidget: "EOzvNgiDZd0y"  type= "wt_Text"
: position ( 0 , 0 ) is out of range                       
umbrello(9979) UMLScene::loadMessagesFromXMI: tag =  "messagewidget"
umbrello(9979) UMLScene::addFloatingTextWidget: "9BlUsbWZ28E9"  type= "wt_Text"
: position ( 0 , 0 ) is out of range                       
umbrello(9979) UMLScene::loadMessagesFromXMI: tag =  "messagewidget"
umbrello(9979) UMLScene::addFloatingTextWidget: "VTfaAlJbFrYh"  type= "wt_Text"
: position ( 0 , 0 ) is out of range
umbrello(9979) UMLScene::loadMessagesFromXMI: tag =  "messagewidget"
umbrello(9979) UMLScene::addFloatingTextWidget: "FpcjoESyhtcF"  type= "wt_Text"
: position ( 0 , 0 ) is out of range
umbrello(9979) UMLScene::loadMessagesFromXMI: tag =  "messagewidget"
umbrello(9979) UMLScene::addFloatingTextWidget: "NCpuMGm4xpu0"  type= "wt_Text"
: position ( 0 , 0 ) is out of range
umbrello(9979) UMLScene::loadMessagesFromXMI: tag =  "messagewidget"
umbrello(9979) UMLScene::addFloatingTextWidget: "0abgq2EH6BjT"  type= "wt_Text"
: position ( 0 , 0 ) is out of range
umbrello(9979) WidgetBase::loadFromXMI: Using default font  "Sans
Serif,10,-1,0,50,0,0,0,0,0"  for widget with xmi.id  ""
umbrello(9979) WidgetBase::loadFromXMI: Using default font  "Sans
Serif,10,-1,0,50,0,0,0,0,0"  for widget with xmi.id  "" 
umbrello(9979) WidgetBase::loadFromXMI: Using default font  "Sans
Serif,10,-1,0,50,0,0,0,0,0"  for widget with xmi.id  "" 
umbrello(9979) WidgetBase::loadFromXMI: Using default font  "Sans
Serif,10,-1,0,50,0,0,0,0,0"  for widget with xmi.id  "" 
umbrello(9979) WidgetBase::loadFromXMI: Using default font  "Sans
Serif,10,-1,0,50,0,0,0,0,0"  for widget with xmi.id  "" 
umbrello(9979) UMLDoc::addView: "gnat1_handling_of_with_clause"  to folder 
UMLFolder: localName="Logical View", folderFile="", diagrams=1
umbrello(9979) UMLListView::slotObjectCreated: "Logical View" , type= 801 , id=
"Logical View" : item already exists.
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Logical View"
umbrello(9979) UMLListView::slotObjectCreated: "Datatypes" , type= 830 , id=
"Datatypes" : item already exists.
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Datatypes"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"int"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"char"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"bool"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"float"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"double"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"short"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"long"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"unsigned int"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"unsigned short"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"unsigned long"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"string"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Boolean"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Character"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Positive"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Natural"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Integer"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Short_Integer"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Long_Integer"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Long_Float"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Duration"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Gnat1drv"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Frontend"
umbrello(9979) UMLListView::slotObjectCreated: "Call_Frontend" , type= 815 ,
id= "CHdnPVZW9I8Q" : item already exists.
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Call_Frontend"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Par"
umbrello(9979) UMLListView::slotObjectCreated: "Par" , type= 815 , id=
"NCpuMGm4xpu0" : item already exists.
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Par"
umbrello(9979) UMLListView::slotObjectCreated: "Load" , type= 815 , id=
"EOzvNgiDZd0y" : item already exists.
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Load"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Ch10"
umbrello(9979) UMLListView::slotObjectCreated: "P_Compilation_Unit" , type= 815
, id= "VTfaAlJbFrYh" : item already exists.
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"P_Compilation_Unit"
umbrello(9979) UMLListView::slotObjectCreated: "P_Context_Clause" , type= 815 ,
id= "FpcjoESyhtcF" : item already exists.
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"P_Context_Clause"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Lib.Load"
umbrello(9979) UMLListView::slotObjectCreated: "Load_Main_Source" , type= 815 ,
id= "rAa64rmLmxEt" : item already exists.
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Load_Main_Source"
umbrello(9979) UMLListView::slotObjectCreated: "Load_Unit" , type= 815 , id=
"9BlUsbWZ28E9" : item already exists.
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Load_Unit"
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Sem"
umbrello(9979) UMLListView::slotObjectCreated: "Semantics" , type= 815 , id=
"0abgq2EH6BjT" : item already exists.
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Semantics"
umbrello(9979) UMLListView::slotObjectCreated: "Use Case View" , type= 802 ,
id= "Use Case View" : item already exists.
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Use Case View"
umbrello(9979) UMLListView::slotObjectCreated: "Component View" , type= 821 ,
id= "Component View" : item already exists.
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Component View"
umbrello(9979) UMLListView::slotObjectCreated: "Deployment View" , type= 827 ,
id= "Deployment View" : item already exists.
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Deployment View"
umbrello(9979) UMLListView::slotObjectCreated: "Entity Relationship Model" ,
type= 836 , id= "Entity Relationship Model" : item already exi
sts.
umbrello(9979) UMLScene::slotObjectCreated: scene= "class diagram"  / object=
"Entity Relationship Model"

Program received signal SIGSEGV, Segmentation fault.
0xb6945d45 in ?? () from /usr/lib/libQtGui.so.4
(gdb) bt
#0  0xb6945d45 in ?? () from /usr/lib/libQtGui.so.4
#1  0xb6947efe in QTextEngine::itemize() const () from /usr/lib/libQtGui.so.4
#2  0xb694a1b0 in QTextEngine::width(int, int) const () from
/usr/lib/libQtGui.so.4
#3  0xb691f0b6 in QFontMetrics::width(QString const&, int) const () from
/usr/lib/libQtGui.so.4
#4  0x0822b665 in FloatingTextWidget::minimumSize (this=0x86963f8)
    at /kdesdk/umbrello/umbrello/widgets/floatingtextwidget.cpp:183
#5  0x0822b31e in FloatingTextWidget::setText (this=0x86963f8, t=...)
    at /kdesdk/umbrello/umbrello/widgets/floatingtextwidget.cpp:120
#6  0x0822fe36 in MessageWidget::setMessageText (this=0x8695ee8, ft=0x86963f8)
    at /kdesdk/umbrello/umbrello/widgets/messagewidget.cpp:880
#7  0x082307cf in MessageWidget::calculateWidget (this=0x8695ee8)
    at /kdesdk/umbrello/umbrello/widgets/messagewidget.cpp:710
#8  0x082320f3 in MessageWidget::slotWidgetMoved (this=0x8695ee8,
id="7xVVq7gC8ZOl")
    at /kdesdk/umbrello/umbrello/widgets/messagewidget.cpp:730
#9  0x08231372 in MessageWidget::qt_metacall (this=0x8695ee8,
_c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, 
    _a=0xbf804938) at /kdesdk/umbrello/build/umbrello/messagewidget.moc:81
#10 0xb719defd in QMetaObject::metacall(QObject*, QMetaObject::Call, int,
void**) () from /usr/lib/libQtCore.so.4
#11 0xb71acfe8 in QMetaObject::activate(QObject*, QMetaObject const*, int,
void**) () from /usr/lib/libQtCore.so.4
#12 0x08244a25 in UMLWidget::sigWidgetMoved (this=0x868e938,
_t1="7xVVq7gC8ZOl")
    at /kdesdk/umbrello/build/umbrello/umlwidget.moc:111
#13 0x082375bc in ObjectWidget::moveEvent (this=0x868e938, event=0x0)
    at /kdesdk/umbrello/umbrello/widgets/objectwidget.cpp:305
#14 0x082312bf in MessageWidget::setY (this=0x8698ce8, y=237)
    at /kdesdk/umbrello/umbrello/widgets/messagewidget.cpp:158
#15 0x082320eb in MessageWidget::slotWidgetMoved (this=0x8698ce8,
id="7xVVq7gC8ZOl")
    at /kdesdk/umbrello/umbrello/widgets/messagewidget.cpp:729
#16 0x08231372 in MessageWidget::qt_metacall (this=0x8698ce8,
_c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, 
    _a=0xbf804b98) at /kdesdk/umbrello/build/umbrello/messagewidget.moc:81
#17 0xb719defd in QMetaObject::metacall(QObject*, QMetaObject::Call, int,
void**) () from /usr/lib/libQtCore.so.4
#18 0xb71acfe8 in QMetaObject::activate(QObject*, QMetaObject const*, int,
void**) () from /usr/lib/libQtCore.so.4
#19 0x08244a25 in UMLWidget::sigWidgetMoved (this=0x868e938,
_t1="7xVVq7gC8ZOl")
    at /kdesdk/umbrello/build/umbrello/umlwidget.moc:111
#20 0x082375bc in ObjectWidget::moveEvent (this=0x868e938, event=0x0)
    at /kdesdk/umbrello/umbrello/widgets/objectwidget.cpp:305
#21 0x082312bf in MessageWidget::setY (this=0x8698ce8, y=237)
    at /kdesdk/umbrello/umbrello/widgets/messagewidget.cpp:158
#22 0x082320eb in MessageWidget::slotWidgetMoved (this=0x8698ce8,
id="7xVVq7gC8ZOl")
    at /kdesdk/umbrello/umbrello/widgets/messagewidget.cpp:729
#23 0x08231372 in MessageWidget::qt_metacall (this=0x8698ce8,
_c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, 
    _a=0xbf804df8) at /kdesdk/umbrello/build/umbrello/messagewidget.moc:81
#24 0xb719defd in QMetaObject::metacall(QObject*, QMetaObject::Call, int,
void**) () from /usr/lib/libQtCore.so.4
#25 0xb71acfe8 in QMetaObject::activate(QObject*, QMetaObject const*, int,
void**) () from /usr/lib/libQtCore.so.4
#26 0x08244a25 in UMLWidget::sigWidgetMoved (this=0x868e938,
_t1="7xVVq7gC8ZOl")
    at /kdesdk/umbrello/build/umbrello/umlwidget.moc:111
#27 0x082375bc in ObjectWidget::moveEvent (this=0x868e938, event=0x0)
    at /kdesdk/umbrello/umbrello/widgets/objectwidget.cpp:305
#28 0x082312bf in MessageWidget::setY (this=0x8698ce8, y=237)
    at /kdesdk/umbrello/umbrello/widgets/messagewidget.cpp:158
#29 0x082320eb in MessageWidget::slotWidgetMoved (this=0x8698ce8,
id="7xVVq7gC8ZOl")
    at /kdesdk/umbrello/umbrello/widgets/messagewidget.cpp:729
#30 0x08231372 in MessageWidget::qt_metacall (this=0x8698ce8,
_c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, 
    _a=0xbf805058) at /kdesdk/umbrello/build/umbrello/messagewidget.moc:81
#31 0xb719defd in QMetaObject::metacall(QObject*, QMetaObject::Call, int,
void**) () from /usr/lib/libQtCore.so.4
#32 0xb71acfe8 in QMetaObject::activate(QObject*, QMetaObject const*, int,
void**) () from /usr/lib/libQtCore.so.4
#33 0x08244a25 in UMLWidget::sigWidgetMoved (this=0x868e938,
_t1="7xVVq7gC8ZOl")
    at /kdesdk/umbrello/build/umbrello/umlwidget.moc:111
#34 0x082375bc in ObjectWidget::moveEvent (this=0x868e938, event=0x0)
    at /kdesdk/umbrello/umbrello/widgets/objectwidget.cpp:305
#35 0x082312bf in MessageWidget::setY (this=0x8698ce8, y=237)
    at /kdesdk/umbrello/umbrello/widgets/messagewidget.cpp:158
#36 0x082320eb in MessageWidget::slotWidgetMoved (this=0x8698ce8,
id="7xVVq7gC8ZOl")
    at /kdesdk/umbrello/umbrello/widgets/messagewidget.cpp:729
#37 0x08231372 in MessageWidget::qt_metacall (this=0x8698ce8,
_c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, 
    _a=0xbf8052b8) at /kdesdk/umbrello/build/umbrello/messagewidget.moc:81
#38 0xb719defd in QMetaObject::metacall(QObject*, QMetaObject::Call, int,
void**) () from /usr/lib/libQtCore.so.4
#39 0xb71acfe8 in QMetaObject::activate(QObject*, QMetaObject const*, int,
void**) () from /usr/lib/libQtCore.so.4
#40 0x08244a25 in UMLWidget::sigWidgetMoved (this=0x868e938,
_t1="7xVVq7gC8ZOl")
    at /kdesdk/umbrello/build/umbrello/umlwidget.moc:111
#41 0x082375bc in ObjectWidget::moveEvent (this=0x868e938, event=0x0)
    at /kdesdk/umbrello/umbrello/widgets/objectwidget.cpp:305
#42 0x082312bf in MessageWidget::setY (this=0x8698ce8, y=237)
    at /kdesdk/umbrello/umbrello/widgets/messagewidget.cpp:158
#43 0x082320eb in MessageWidget::slotWidgetMoved (this=0x8698ce8,
id="7xVVq7gC8ZOl")
    at /kdesdk/umbrello/umbrello/widgets/messagewidget.cpp:729
#44 0x08231372 in MessageWidget::qt_metacall (this=0x8698ce8,
_c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, 
    _a=0xbf805518) at /kdesdk/umbrello/build/umbrello/messagewidget.moc:81


Reproducible: Always

Steps to Reproduce:
1. Start recent umbrello built from git.
2. Load an XMI file of your choice containing a sequence diagram (IMHO any ol'
file will do.)
3. Witness segfault.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the umbrello-devel mailing list