Bug 334518 - Umbrello was suddenly closed after choosing 'Add point' from pop-up shown after clicking point on line.
Summary: Umbrello was suddenly closed after choosing 'Add point' from pop-up shown aft...
Status: RESOLVED FIXED
Alias: None
Product: umbrello
Classification: Applications
Component: general (show other bugs)
Version: 2.11.5
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Umbrello Development Group
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2014-05-08 14:55 UTC by kipu44
Modified: 2014-05-09 17:24 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.12.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kipu44 2014-05-08 14:55:10 UTC
Application: umbrello (2.11.5)
KDE Platform Version: 4.11.5
Qt Version: 4.8.4
Operating System: Linux 3.11.0-20-generic x86_64
Distribution: Ubuntu 13.10

-- Information about the crash:
- What I was doing when the application crashed:

I added directed connection between classes, then I created point on the connection. After that I clicked on the point with right mouse button and choose 'Add point' option (should it be 'Remove point'?) and then Umbrello was suddenly closed.

-- Backtrace:
Application: Umbrello UML Modeller (umbrello), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f447c2ba7c0 (LWP 5805))]

Thread 4 (Thread 0x7f4467a97700 (LWP 5812)):
#0  0x00007f44787b1f7d in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f44755076a4 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f4475507b0a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f446f4efb66 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007f447552c0f5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f44759ccf6e in start_thread (arg=0x7f4467a97700) at pthread_create.c:311
#6  0x00007f44787be9cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 3 (Thread 0x7f4466924700 (LWP 5813)):
#0  0x00007f44759d005f in __pthread_mutex_unlock_usercnt (mutex=0x2260c70, decr=<optimized out>) at pthread_mutex_unlock.c:52
#1  0x00007f44755473d1 in g_mutex_unlock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f4475506d40 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f44755075c3 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f44755077ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f44755077f9 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007f447552c0f5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007f44759ccf6e in start_thread (arg=0x7f4466924700) at pthread_create.c:311
#8  0x00007f44787be9cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 2 (Thread 0x7f4466123700 (LWP 5849)):
#0  0x00007f44755470ea in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f44755473c9 in g_mutex_unlock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f4475506d40 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f44755075c3 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f44755077ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f447a103a76 in QEventDispatcherGlib::processEvents (this=0x7f445c001390, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#6  0x00007f447a0d55ef in QEventLoop::processEvents (this=this@entry=0x7f4466122d70, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007f447a0d58e5 in QEventLoop::exec (this=this@entry=0x7f4466122d70, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007f4479fd488f in QThread::exec (this=this@entry=0x29d3d30) at thread/qthread.cpp:542
#9  0x00007f447a0b6d13 in QInotifyFileSystemWatcherEngine::run (this=0x29d3d30) at io/qfilesystemwatcher_inotify.cpp:265
#10 0x00007f4479fd6f2f in QThreadPrivate::start (arg=0x29d3d30) at thread/qthread_unix.cpp:338
#11 0x00007f44759ccf6e in start_thread (arg=0x7f4466123700) at pthread_create.c:311
#12 0x00007f44787be9cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 1 (Thread 0x7f447c2ba7c0 (LWP 5805)):
[KCrash Handler]
#6  QGraphicsLineItem::line (this=this@entry=0x21) at graphicsview/qgraphicsitem.cpp:9324
#7  0x000000000066722a in AssociationLine::isPoint (this=<optimized out>, index=index@entry=-1, point=..., delta=delta@entry=5) at ../../umbrello/widgets/associationline.cpp:386
#8  0x0000000000675f5b in AssociationWidget::checkAddPoint (this=this@entry=0x2ed2380, scenePos=...) at ../../umbrello/widgets/associationwidget.cpp:3141
#9  0x000000000067ac9a in AssociationWidget::slotMenuSelection (this=0x2ed2380, action=0x3002e00) at ../../umbrello/widgets/associationwidget.cpp:2909
#10 0x00000000006769e4 in AssociationWidget::contextMenuEvent (this=<optimized out>, event=0x7fffb43d9d50) at ../../umbrello/widgets/associationwidget.cpp:4009
#11 0x00007f4479a1cb25 in QGraphicsItem::sceneEvent (this=0x2ed2390, event=0x7fffb43d9d50) at graphicsview/qgraphicsitem.cpp:6712
#12 0x00007f4479a43c9a in QGraphicsScene::contextMenuEvent (this=this@entry=0x26f20d0, contextMenuEvent=contextMenuEvent@entry=0x7fffb43d9d50) at graphicsview/qgraphicsscene.cpp:3617
#13 0x000000000079b6eb in UMLScene::contextMenuEvent (this=0x26f20d0, contextMenuEvent=0x7fffb43d9d50) at ../../umbrello/umlscene.cpp:2973
#14 0x00007f4479a587a5 in QGraphicsScene::event (this=0x26f20d0, event=0x7fffb43d9d50) at graphicsview/qgraphicsscene.cpp:3412
#15 0x00007f4479473dfc in QApplicationPrivate::notify_helper (this=this@entry=0x20a7e60, receiver=receiver@entry=0x26f20d0, e=e@entry=0x7fffb43d9d50) at kernel/qapplication.cpp:4567
#16 0x00007f447947a470 in QApplication::notify (this=this@entry=0x7fffb43dabe0, receiver=receiver@entry=0x26f20d0, e=e@entry=0x7fffb43d9d50) at kernel/qapplication.cpp:4353
#17 0x00007f447ad76a6a in KApplication::notify (this=0x7fffb43dabe0, receiver=0x26f20d0, event=0x7fffb43d9d50) at ../../kdeui/kernel/kapplication.cpp:311
#18 0x00007f447a0d68bd in QCoreApplication::notifyInternal (this=0x7fffb43dabe0, receiver=0x26f20d0, event=event@entry=0x7fffb43d9d50) at kernel/qcoreapplication.cpp:946
#19 0x00007f4479a70357 in sendEvent (event=0x7fffb43d9d50, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#20 QGraphicsView::contextMenuEvent (this=0x26dc430, event=0x7fffb43da220) at graphicsview/qgraphicsview.cpp:2892
#21 0x00007f44794c35e2 in QWidget::event (this=this@entry=0x26dc430, event=event@entry=0x7fffb43da220) at kernel/qwidget.cpp:8553
#22 0x00007f44798645be in QFrame::event (this=0x26dc430, e=0x7fffb43da220) at widgets/qframe.cpp:557
#23 0x00007f4479a6fe09 in QGraphicsView::viewportEvent (this=0x26dc430, event=0x7fffb43da220) at graphicsview/qgraphicsview.cpp:2866
#24 0x00007f447a0d6a26 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=this@entry=0x20a7e60, receiver=receiver@entry=0x26b44a0, event=event@entry=0x7fffb43da220) at kernel/qcoreapplication.cpp:1056
#25 0x00007f4479473ddc in QApplicationPrivate::notify_helper (this=this@entry=0x20a7e60, receiver=receiver@entry=0x26b44a0, e=e@entry=0x7fffb43da220) at kernel/qapplication.cpp:4563
#26 0x00007f447947b1d0 in QApplication::notify (this=this@entry=0x7fffb43dabe0, receiver=receiver@entry=0x26b44a0, e=e@entry=0x7fffb43da220) at kernel/qapplication.cpp:4189
#27 0x00007f447ad76a6a in KApplication::notify (this=0x7fffb43dabe0, receiver=0x26b44a0, event=0x7fffb43da220) at ../../kdeui/kernel/kapplication.cpp:311
#28 0x00007f447a0d68bd in QCoreApplication::notifyInternal (this=0x7fffb43dabe0, receiver=receiver@entry=0x26b44a0, event=event@entry=0x7fffb43da220) at kernel/qcoreapplication.cpp:946
#29 0x00007f44794ee830 in sendSpontaneousEvent (event=0x7fffb43da220, receiver=0x26b44a0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234
#30 QETWidget::translateMouseEvent (this=this@entry=0x26b44a0, event=event@entry=0x7fffb43da570) at kernel/qapplication_x11.cpp:4636
#31 0x00007f44794ee079 in QApplication::x11ProcessEvent (this=0x7fffb43dabe0, event=event@entry=0x7fffb43da570) at kernel/qapplication_x11.cpp:3624
#32 0x00007f4479515922 in x11EventSourceDispatch (s=0x20a5200, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#33 0x00007f44755073b6 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#34 0x00007f4475507708 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007f44755077ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007f447a103a55 in QEventDispatcherGlib::processEvents (this=0x2073760, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#37 0x00007f44795159d6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#38 0x00007f447a0d55ef in QEventLoop::processEvents (this=this@entry=0x7fffb43da950, flags=...) at kernel/qeventloop.cpp:149
#39 0x00007f447a0d58e5 in QEventLoop::exec (this=this@entry=0x7fffb43da950, flags=...) at kernel/qeventloop.cpp:204
#40 0x00007f447a0dae5b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1218
#41 0x00007f447947234c in QApplication::exec () at kernel/qapplication.cpp:3828
#42 0x00000000004380bb in main (argc=<optimized out>, argv=<optimized out>) at ../../umbrello/main.cpp:113

Reported using DrKonqi
Comment 1 Ralf Habacker 2014-05-09 16:47:47 UTC
>#7 0x000000000066722a in AssociationLine::isPoint (this=<optimized out>, index=index@entry=-1, point=..., delta=delta@entry=5) at ../../umbrello/widgets/associationline.cpp:386

The backtrace indicates a -1 a point index which is not been catched in the related code below.  

bool AssociationLine::isPoint(int index, const QPointF &point, unsigned short delta)
{
    int count = m_LineList.count();
    if (index >= count)
        return false;

!!!!    QGraphicsLineItem* line = m_LineList.at(index);

This bug has been fixed in 4.12.0