Bug 168273

Summary: Crash on ER foreign key constraint save
Product: [Applications] umbrello Reporter: Roman I Khimov <rik>
Component: generalAssignee: Umbrello Development Group <umbrello-devel>
Status: RESOLVED FIXED    
Severity: crash CC: dimon, emdeck, FOXN, jgelens, laisemberg, mark, ralf.habacker, schkovich
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In: 4.10.97
Sentry Crash Report:

Description Roman I Khimov 2008-08-03 22:39:20 UTC
Version:           2.1.0 (using KDE 4.1.0)
Installed from:    Debian testing/unstable Packages
OS:                Linux

Debian experimental chrooted.

(gdb) bt
#0  0x00007fea2549c341 in qt_meta_stringdata_QActionGroup () from /usr/lib/libQtGui.so.4
#1  0x0000000003589b10 in ?? ()
#2  0x0000000000bb44d6 in UMLForeignKeyConstraint::saveToXMI (this=0x31946b0, qDoc=@0x7fff2fe97ff0, qElement=@0x7fff2fe974c0) at /tmp/buildd/kdesdk-4.1.0/umbrello/umbrello/foreignkeyconstraint.cpp:122
#3  0x0000000000b9cc09 in UMLEntity::saveToXMI (this=0x3193270, qDoc=@0x7fff2fe97ff0, qElement=@0x7fff2fe975f0) at /tmp/buildd/kdesdk-4.1.0/umbrello/umbrello/entity.cpp:362
#4  0x0000000000baec5b in UMLFolder::saveContents (this=0x267bf80, qDoc=@0x7fff2fe97ff0, qElement=@0x7fff2fe97660) at /tmp/buildd/kdesdk-4.1.0/umbrello/umbrello/folder.cpp:204
#5  0x0000000000baf1a6 in UMLFolder::save (this=0x267bf80, qDoc=@0x7fff2fe97ff0, qElement=@0x7fff2fe97bb0) at /tmp/buildd/kdesdk-4.1.0/umbrello/umbrello/folder.cpp:234
#6  0x0000000000baf56d in UMLFolder::saveToXMI (this=0x7fff2fe97300, qDoc=@0x7fff2fe97ff0, qElement=@0x7fff2fe97bb0) at /tmp/buildd/kdesdk-4.1.0/umbrello/umbrello/folder.cpp:241
#7  0x0000000000c3543a in UMLDoc::saveToXMI (this=0x267b090, file=@0x7fff2fe98060) at /tmp/buildd/kdesdk-4.1.0/umbrello/umbrello/umldoc.cpp:1346
#8  0x0000000000c458c4 in UMLDoc::saveDocument (this=0x267b090, url=@0x267b0f0, format=<value optimized out>) at /tmp/buildd/kdesdk-4.1.0/umbrello/umbrello/umldoc.cpp:632
#9  0x0000000000c1e260 in UMLApp::slotFileSave (this=0x267eae0) at /tmp/buildd/kdesdk-4.1.0/umbrello/umbrello/uml.cpp:950
#10 0x0000000000c2c5cd in UMLApp::qt_metacall (this=0x267eae0, _c=QMetaObject::InvokeMetaMethod, _id=629503568, _a=0x7fff2fe988b0) at /tmp/buildd/kdesdk-4.1.0/obj-x86_64-linux-gnu/umbrello/umbrello/uml.moc:226
#11 0x00007fea24a78764 in QMetaObject::activate (sender=0x268b430, from_signal_index=<value optimized out>, to_signal_index=6, argv=0x3589b10) at kernel/qobject.cpp:3010
#12 0x00007fea24f0f1c7 in QAction::triggered (this=0x7fff2fe97300, _t1=false) at .moc/release-shared/moc_qaction.cpp:216
#13 0x00007fea24f0f990 in QAction::activate (this=0x268b430, event=<value optimized out>) at kernel/qaction.cpp:1119
#14 0x00007fea24f12f37 in QAction::event (this=0x7fff2fe97300, e=<value optimized out>) at kernel/qaction.cpp:1038
#15 0x00007fea24f6b6e3 in QWidgetAction::event (this=0x268b430, event=0x7fff2fe98dd0) at kernel/qwidgetaction.cpp:239
#16 0x00007fea24f14e5d in QApplicationPrivate::notify_helper (this=0x25c7420, receiver=0x268b430, e=0x7fff2fe98dd0) at kernel/qapplication.cpp:3772
#17 0x00007fea24f1cb2a in QApplication::notify (this=0x7fff2fe9a390, receiver=0x268b430, e=0x7fff2fe98dd0) at kernel/qapplication.cpp:3739
#18 0x00007fea27158bfb in KApplication::notify (this=0x7fff2fe9a390, receiver=0x268b430, event=0x7fff2fe98dd0) at /tmp/buildd/kde4libs-4.1.0/kdeui/kernel/kapplication.cpp:311
#19 0x00007fea24a64411 in QCoreApplication::notifyInternal (this=0x7fff2fe9a390, receiver=0x268b430, event=0x7fff2fe98dd0) at kernel/qcoreapplication.cpp:587
#20 0x00007fea24f4a23d in QShortcutMap::dispatchEvent (this=<value optimized out>, e=0x7fff2fe992d0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#21 0x00007fea24f4bb6c in QShortcutMap::tryShortcutEvent (this=0x25c7530, w=<value optimized out>, e=0x7fff2fe992d0) at kernel/qshortcutmap.cpp:365
#22 0x00007fea24f1db52 in QApplication::notify (this=<value optimized out>, receiver=0x2870260, e=0x7fff2fe992d0) at kernel/qapplication.cpp:3403
#23 0x00007fea27158bfb in KApplication::notify (this=0x7fff2fe9a390, receiver=0x2870260, event=0x7fff2fe992d0) at /tmp/buildd/kde4libs-4.1.0/kdeui/kernel/kapplication.cpp:311
#24 0x00007fea24a64411 in QCoreApplication::notifyInternal (this=0x7fff2fe9a390, receiver=0x2870260, event=0x7fff2fe992d0) at kernel/qcoreapplication.cpp:587
#25 0x00007fea24fa2d04 in QKeyMapper::sendKeyEvent (keyWidget=0x2870260, grab=<value optimized out>, type=QEvent::KeyPress, code=83, modifiers={i = 803837952}, text=@0x7fff2fe997f0, autorepeat=<value optimized out>, count=1,
    nativeScanCode=39, nativeVirtualKey=115, nativeModifiers=4) at kernel/qkeymapper_x11.cpp:1656
#26 0x00007fea24fa4fbe in QKeyMapperPrivate::translateKeyEvent (this=0x25f4090, keyWidget=0x2870260, event=0x7fff2fe99fd0, grab=128) at kernel/qkeymapper_x11.cpp:1627
#27 0x00007fea24f7ef10 in QApplication::x11ProcessEvent (this=0x7fff2fe9a390, event=0x7fff2fe99fd0) at kernel/qapplication_x11.cpp:3148
#28 0x00007fea24fa69cc in x11EventSourceDispatch (s=0x25c9d30, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:148
#29 0x00007fea20aadc52 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#30 0x00007fea20ab13dd in ?? () from /usr/lib/libglib-2.0.so.0
#31 0x00007fea20ab159b in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#32 0x00007fea24a8c83f in QEventDispatcherGlib::processEvents (this=0x25c6b50, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:325
#33 0x00007fea24fa616f in QGuiEventDispatcherGlib::processEvents (this=0x7fff2fe97300, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#34 0x00007fea24a62d22 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 803840704}) at kernel/qeventloop.cpp:149
#35 0x00007fea24a62ead in QEventLoop::exec (this=0x7fff2fe9a300, flags={i = 803840784}) at kernel/qeventloop.cpp:200
#36 0x00007fea24a6537d in QCoreApplication::exec () at kernel/qcoreapplication.cpp:845
#37 0x0000000000bd4ac5 in main (argc=1, argv=0x7fff2fe9a7b8) at /tmp/buildd/kdesdk-4.1.0/umbrello/umbrello/main.cpp:110

Actually, I've been experiencing some other crash when manipulating foreign keys (without saving), so ran umbrello under gdb and catched this one.
Comment 1 Roman I Khimov 2008-08-07 20:47:04 UTC
Looks like I have reproducable procedure for this one now.

Fire up Umbrello. Create New ER diagram.

Create new entity, add some fields. Add Primary Key.

Create another entity, add some fields. Add Foreign Key referencing first entity.

Save the file.

Now in the first entity delete field which is Primary Key based on. Save the file. Boom!
Comment 2 Lucio 2008-11-12 21:08:33 UTC
i have same problem but just when i tried to save changes of the entity that has the fk, the applicattion crashes before saving
Comment 3 Dmitry S. Makovey 2008-12-01 21:43:35 UTC
same here with Gentoo & KDE-4.1.3 from portage. Umbrello crashes every time I select "Foreign key" constraint. Hitting "Apply" doesn't kill app, but after hitting "OK" it crashes for sure. It's quite annoying and unpleasant as-is. Don't have much time to go through traces etc. to help narrow down the issue, but it looks like this is a common problem and it's distro-independent so should be easy to reproduce in "lab" environment.
Comment 4 Mark Johnson 2009-01-18 13:44:26 UTC
I'm experiencing the same problem, exactly as Lucio and Dmitry describe it.
Comment 5 Jeffrey Gelens 2009-02-06 09:50:47 UTC
Same problem here using the Arch Linux package.
Comment 6 Goran Miskovic 2009-04-25 16:52:04 UTC
Same problem on Ubuntu 8.10. I just thought that I finally have found nice tool. :(

Application: Umbrello UML Modeller (umbrello), signal SIGABRT
0x00007f3b0879f6b0 in __nanosleep_nocancel () from /lib/libc.so.6

Thread 1 (Thread 0x7f3b0c79d6f0 (LWP 31726)):
[KCrash Handler]
#5  0x00007f3b0872a015 in raise () from /lib/libc.so.6
#6  0x00007f3b0872bb83 in abort () from /lib/libc.so.6
#7  0x00007f3b0a8bc6b5 in qt_message_output () from /usr/lib/libQtCore.so.4
#8  0x00007f3b0a8bc7fd in qFatal () from /usr/lib/libQtCore.so.4
#9  0x000000000046abd9 in _start ()

No data in other logs.
Comment 7 Norm Fox 2009-09-03 22:43:40 UTC
I'm getting the same result with Umbrello 2.1.3 on 
System:  openSUSE 11.1 (x86_64)
KDE:  4.1.3 (KDE 4.1.3) "release 4.10.4"
In the diagram:
New "Foreign key" constraint. 
Change Referenced Entity from default to correct Entity
Hitting "Apply" doesn't kill app
Hitting "OK" does every time.

Backtrace reports as useless or I'd include it.

Interestingly enough if I add the FK and allow it to keep it's default self reference, I can go back and edit it to reference the correct entity and Umbrello won't crash.
Comment 8 MichaƂ D. (Emdek) 2010-12-26 15:05:51 UTC
This is a bit more complicated (at least in Version 2.5.90).
Every try to use this feature using Properties dialog leads to crash but adding FK using context menu option works fine (also when not using defaults).
Comment 9 Ralf Habacker 2013-07-25 14:06:35 UTC
Could not reproduce the mentioned issues in git master.