Bug 332612 - Umbrello Crash when opening XMI
Summary: Umbrello Crash when opening XMI
Status: RESOLVED FIXED
Alias: None
Product: umbrello
Classification: Applications
Component: general (show other bugs)
Version: 2.10.5
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Oliver Kellogg
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2014-03-26 06:36 UTC by pierre fermat
Modified: 2014-08-09 03:01 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.14.0


Attachments
This xmi file caused umbrello to crash. This works in other tools. (466.33 KB, application/zip)
2014-04-02 00:40 UTC, pierre fermat
Details

Note You need to log in before you can comment on or make changes to this bug.
Description pierre fermat 2014-03-26 06:36:30 UTC
Application: umbrello (2.10.5)
KDE Platform Version: 4.10.5
Qt Version: 4.8.4
Operating System: Linux 3.8.0-35-generic i686
Distribution: Ubuntu 13.04

-- Information about the crash:
TMforum the telecom standards bodypublishes XMI files of their data model. It is widely distributed across. Umbrello crashes everytime when one of the XMI files are opened. If it is of any help, they may have been originally created using casewise.

The crash can be reproduced every time.

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

Thread 3 (Thread 0xb281fb40 (LWP 22199)):
#0  0xb77ac424 in __kernel_vsyscall ()
#1  0xb5b459db in poll () from /lib/i386-linux-gnu/libc.so.6
#2  0xb52e42db in g_poll () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb52d56d0 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb52d5831 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb69dec3f in QEventDispatcherGlib::processEvents (this=0xb1f00468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#6  0xb69ab3ec in QEventLoop::processEvents (this=this@entry=0xb281f228, flags=...) at kernel/qeventloop.cpp:149
#7  0xb69ab6e1 in QEventLoop::exec (this=this@entry=0xb281f228, flags=...) at kernel/qeventloop.cpp:204
#8  0xb6896fec in QThread::exec (this=this@entry=0xa324d90) at thread/qthread.cpp:542
#9  0xb698af2d in QInotifyFileSystemWatcherEngine::run (this=0xa324d90) at io/qfilesystemwatcher_inotify.cpp:256
#10 0xb6899b18 in QThreadPrivate::start (arg=0xa324d90) at thread/qthread_unix.cpp:338
#11 0xb5a4ed78 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#12 0xb5b54fee in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 2 (Thread 0xb1503b40 (LWP 22241)):
#0  0xb77ac424 in __kernel_vsyscall ()
#1  0xb5b684f2 in clock_gettime () from /lib/i386-linux-gnu/libc.so.6
#2  0xb68f80d5 in do_gettime (frac=0xb1502f60, sec=0xb1502f58) at tools/qelapsedtimer_unix.cpp:123
#3  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#4  0xb69df80e in QTimerInfoList::updateCurrentTime (this=this@entry=0xb0c02074) at kernel/qeventdispatcher_unix.cpp:354
#5  0xb69dfb9a in QTimerInfoList::timerWait (this=0xb0c02074, tm=...) at kernel/qeventdispatcher_unix.cpp:461
#6  0xb69de373 in timerSourcePrepareHelper (src=<optimized out>, timeout=0xb150308c) at kernel/qeventdispatcher_glib.cpp:136
#7  0xb69de40d in timerSourcePrepare (source=0xb0c02040, timeout=0xb150308c) at kernel/qeventdispatcher_glib.cpp:169
#8  0xb52d4d21 in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#9  0xb52d55cf in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#10 0xb52d5831 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#11 0xb69dec3f in QEventDispatcherGlib::processEvents (this=0xb0c00468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#12 0xb69ab3ec in QEventLoop::processEvents (this=this@entry=0xb1503228, flags=...) at kernel/qeventloop.cpp:149
#13 0xb69ab6e1 in QEventLoop::exec (this=this@entry=0xb1503228, flags=...) at kernel/qeventloop.cpp:204
#14 0xb6896fec in QThread::exec (this=this@entry=0xa572e48) at thread/qthread.cpp:542
#15 0xb698af2d in QInotifyFileSystemWatcherEngine::run (this=0xa572e48) at io/qfilesystemwatcher_inotify.cpp:256
#16 0xb6899b18 in QThreadPrivate::start (arg=0xa572e48) at thread/qthread_unix.cpp:338
#17 0xb5a4ed78 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#18 0xb5b54fee in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 1 (Thread 0xb4e2a740 (LWP 22198)):
[KCrash Handler]
#7  0xb6550204 in operator QGraphicsScene* (this=<error reading variable: Cannot access memory at address 0x4>) at ../../include/QtCore/../../src/corelib/kernel/qpointer.h:78
#8  QGraphicsView::scene (this=0x0) at graphicsview/qgraphicsview.cpp:1592
#9  0x083c8f24 in ?? ()
#10 0xb5ef26f2 in QWidget::event (this=0xa44c878, event=0xbffdb2d4) at kernel/qwidget.cpp:8371
#11 0xb63064b5 in QFrame::event (this=this@entry=0xa44c878, e=e@entry=0xbffdb2d4) at widgets/qframe.cpp:557
#12 0xb63991d3 in QAbstractScrollArea::viewportEvent (this=0xa44c878, e=0xbffdb2d4) at widgets/qabstractscrollarea.cpp:1043
#13 0xb644309c in QAbstractItemView::viewportEvent (this=0xa44c878, event=0xbffdb2d4) at itemviews/qabstractitemview.cpp:1644
#14 0xb6488f57 in QTreeView::viewportEvent (this=0xa44c878, event=0xbffdb2d4) at itemviews/qtreeview.cpp:1257
#15 0xb6399676 in viewportEvent (event=0xbffdb2d4, this=<optimized out>) at widgets/qabstractscrollarea_p.h:100
#16 QAbstractScrollAreaFilter::eventFilter (this=0xa453de8, o=0xa44be70, e=0xbffdb2d4) at widgets/qabstractscrollarea_p.h:116
#17 0xb69aca7e in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=this@entry=0xa224298, receiver=receiver@entry=0xa44be70, event=event@entry=0xbffdb2d4) at kernel/qcoreapplication.cpp:1056
#18 0xb5e9bc4d in QApplicationPrivate::notify_helper (this=0xa224298, receiver=0xa44be70, e=0xbffdb2d4) at kernel/qapplication.cpp:4563
#19 0xb5e9f587 in QApplication::notify (this=0xa224298, receiver=0xa44be70, e=0xbffdb2d4) at kernel/qapplication.cpp:4110
#20 0xb701e491 in KApplication::notify (this=0xbffdcfd4, receiver=0xa44be70, event=0xbffdb2d4) at ../../kdeui/kernel/kapplication.cpp:311
#21 0xb69ac90e in QCoreApplication::notifyInternal (this=0xbffdcfd4, receiver=receiver@entry=0xa44be70, event=event@entry=0xbffdb2d4) at kernel/qcoreapplication.cpp:946
#22 0xb5ea2823 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#23 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0xa44be70, event=event@entry=0xbffdb2d4, alienWidget=alienWidget@entry=0xa44be70, nativeWidget=nativeWidget@entry=0xa44ae80, buttonDown=buttonDown@entry=0xb682ed14 <qt_button_down>, lastMouseReceiver=..., spontaneous=spontaneous@entry=true) at kernel/qapplication.cpp:3178
#24 0xb5f24735 in QETWidget::translateMouseEvent (this=0xa44ae80, event=0xbffdb6fc) at kernel/qapplication_x11.cpp:4631
#25 0xb5f23525 in QApplication::x11ProcessEvent (this=0xbffdcfd4, event=0xbffdb6fc) at kernel/qapplication_x11.cpp:3746
#26 0xb5f52904 in x11EventSourceDispatch (s=0xa1f6400, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#27 0xb52d53b3 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#28 0xb52d5750 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#29 0xb52d5831 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#30 0xb69dec21 in QEventDispatcherGlib::processEvents (this=this@entry=0xa21a238, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#31 0xb5f52a0a in QGuiEventDispatcherGlib::processEvents (this=0xa21a238, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#32 0xb69b0bb3 in QCoreApplication::processEvents (flags=...) at kernel/qcoreapplication.cpp:1133
#33 0x083701ae in ?? ()
#34 0x083710bd in ?? ()
#35 0x083d7158 in ?? ()
#36 0x08317e11 in ?? ()
#37 0x0837c218 in ?? ()
#38 0x0837c218 in ?? ()
#39 0x0837c218 in ?? ()
#40 0x083a5261 in ?? ()
#41 0x083b187d in ?? ()
#42 0x083b693d in ?? ()
#43 0x0839268a in ?? ()
#44 0xb69c2b56 in QMetaObject::activate (sender=sender@entry=0xa38edd0, m=m@entry=0xb6811398 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0xbffdc058) at kernel/qobject.cpp:3539
#45 0xb5e944cd in QAction::triggered (this=this@entry=0xa38edd0, _t1=false) at .moc/release-shared/moc_qaction.cpp:277
#46 0xb5e95a7c in QAction::activate (this=0xa38edd0, event=event@entry=QAction::Trigger) at kernel/qaction.cpp:1257
#47 0xb63945b0 in trigger (this=<optimized out>) at ../../include/QtGui/../../src/gui/kernel/qaction.h:218
#48 QToolButton::nextCheckState (this=0xa395108) at widgets/qtoolbutton.cpp:1144
#49 0xb62bc157 in QAbstractButtonPrivate::click (this=this@entry=0xa3d3388) at widgets/qabstractbutton.cpp:530
#50 0xb62bc456 in QAbstractButton::mouseReleaseEvent (this=this@entry=0xa395108, e=e@entry=0xbffdc794) at widgets/qabstractbutton.cpp:1123
#51 0xb639464d in QToolButton::mouseReleaseEvent (this=0xa395108, e=0xbffdc794) at widgets/qtoolbutton.cpp:718
#52 0xb5ef2710 in QWidget::event (this=0xa395108, event=0xbffdc794) at kernel/qwidget.cpp:8375
#53 0xb62bd2f2 in QAbstractButton::event (this=this@entry=0xa395108, e=e@entry=0xbffdc794) at widgets/qabstractbutton.cpp:1082
#54 0xb639456d in QToolButton::event (this=0xa395108, event=0xbffdc794) at widgets/qtoolbutton.cpp:1160
#55 0xb5e9bc7c in QApplicationPrivate::notify_helper (this=0xa224298, receiver=0xa395108, e=0xbffdc794) at kernel/qapplication.cpp:4567
#56 0xb5e9f587 in QApplication::notify (this=0xa224298, receiver=0xa395108, e=0xbffdc794) at kernel/qapplication.cpp:4110
#57 0xb701e491 in KApplication::notify (this=0xbffdcfd4, receiver=0xa395108, event=0xbffdc794) at ../../kdeui/kernel/kapplication.cpp:311
#58 0xb69ac90e in QCoreApplication::notifyInternal (this=0xbffdcfd4, receiver=receiver@entry=0xa395108, event=event@entry=0xbffdc794) at kernel/qcoreapplication.cpp:946
#59 0xb5ea2823 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#60 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0xa395108, event=event@entry=0xbffdc794, alienWidget=alienWidget@entry=0xa395108, nativeWidget=nativeWidget@entry=0xa392318, buttonDown=buttonDown@entry=0xb682ed14 <qt_button_down>, lastMouseReceiver=..., spontaneous=spontaneous@entry=true) at kernel/qapplication.cpp:3178
#61 0xb5f24735 in QETWidget::translateMouseEvent (this=0xa392318, event=0xbffdcbbc) at kernel/qapplication_x11.cpp:4631
#62 0xb5f23525 in QApplication::x11ProcessEvent (this=0xbffdcfd4, event=0xbffdcbbc) at kernel/qapplication_x11.cpp:3746
#63 0xb5f52904 in x11EventSourceDispatch (s=0xa1f6400, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#64 0xb52d53b3 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#65 0xb52d5750 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#66 0xb52d5831 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#67 0xb69dec21 in QEventDispatcherGlib::processEvents (this=this@entry=0xa21a238, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#68 0xb5f52a0a in QGuiEventDispatcherGlib::processEvents (this=0xa21a238, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#69 0xb69ab3ec in QEventLoop::processEvents (this=this@entry=0xbffdceb8, flags=...) at kernel/qeventloop.cpp:149
#70 0xb69ab6e1 in QEventLoop::exec (this=this@entry=0xbffdceb8, flags=...) at kernel/qeventloop.cpp:204
#71 0xb69b13fa in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1218
#72 0xb5e99fc4 in QApplication::exec () at kernel/qapplication.cpp:3828
#73 0x0807713a in ?? ()
#74 0xb5a7c935 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
#75 0x08078d19 in _start ()

Possible duplicates by query: bug 331746, bug 318916.

Reported using DrKonqi
Comment 1 Ralf Habacker 2014-04-01 09:40:52 UTC
From the backtrace I would say that the xmi file do not contains any class diagrams. Umbrello requires at least on class diagram to have in the xmi file. Is there a test file or a link to a test file available, so that we can reproduce this ?
Comment 2 pierre fermat 2014-04-02 00:40:14 UTC
Created attachment 85894 [details]
This xmi file caused umbrello to crash. This works in other tools.
Comment 3 Ralf Habacker 2014-04-02 19:42:31 UTC
Thanks for this test case. 

The second line of the file indicates that this file is of xmi version 2.1 which is unsupported yet.
<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" 

I compiled a 2.10.5 version from git and tried to load the unpacked file. The application did not crash it reports something like "Loading of .... has failed".
Comment 4 Ralf Habacker 2014-04-02 21:19:12 UTC
(In reply to comment #3)
> Thanks for this test case. 
> 
> The second line of the file indicates that this file is of xmi version 2.1
> which is unsupported yet.
> <xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" 
There are additional issues with this file

1. ... <packageImport xmi:type="uml:PackageImport" xmi:id="_PHV3o0V4EeO4xoMJaWvqzA">
The creator of this xmi file does not follow the announced schema version because  packageImport and packagedElement are uml 2.2 elements. 

2. ... <importedPackage xmi:type="uml:Model" href="http://schema.omg.org/spec/UML/2.2/uml.xml#_0"/>
    the href link is broken
Comment 5 Ralf Habacker 2014-04-05 21:36:19 UTC
(In reply to comment #4)
> (In reply to comment #3)
> > Thanks for this test case. 
> > 
> > The second line of the file indicates that this file is of xmi version 2.1
> > which is unsupported yet.
> > <xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" 
> There are additional issues with this file
> 
> 1. ... <packageImport xmi:type="uml:PackageImport"
> xmi:id="_PHV3o0V4EeO4xoMJaWvqzA">
> The creator of this xmi file does not follow the announced schema version
> because  packageImport and packagedElement are uml 2.2 elements. 
This is because there is no xmi 2.2 version according to http://en.wikipedia.org/wiki/XML_Metadata_Interchange
Comment 6 Ralf Habacker 2014-04-22 17:45:30 UTC
(In reply to comment #3)
> Thanks for this test case. 
> 
> The second line of the file indicates that this file is of xmi version 2.1
> which is unsupported yet.
Thanks to the recent effort of Olliver Kellogg this file could be loaded with git master.