Bug 347356 - Umbrello crashes when closing the application
Summary: Umbrello crashes when closing the application
Status: RESOLVED FIXED
Alias: None
Product: umbrello
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Umbrello Development Group
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2015-05-07 02:01 UTC by Guus
Modified: 2015-05-07 07:33 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Guus 2015-05-07 02:01:34 UTC
Application: umbrello (2.16.99-1088e8b)
KDE Platform Version: 4.14.6
Qt Version: 4.8.6
Operating System: Linux 3.19.5-200.fc21.x86_64 x86_64
Distribution (Platform): Fedora RPMs

-- Information about the crash:
- What I was doing when the application crashed:
Steps to create the abort:

1. Start Umbrello
2. Create a Test Class
3. Add one attribute (public)
4. Close application
5. Chose to discard changes.

This is when the abort took place. I did it twice in succession. I did not test any other combination of actions.

- Custom settings of the application:
I use the Umbrello (updated version) from a git repo of Umbrello in stead of the Fedora standard version.

The crash can be reproduced every time.

-- Backtrace:
Application: Umbrello UML Modeller (umbrello), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f1601ba7880 (LWP 6421))]

Thread 2 (Thread 0x7f15da550700 (LWP 6422)):
#0  0x00007f15fd345c8d in poll () at /lib64/libc.so.6
#1  0x00007f15f8a8fb34 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#2  0x00007f15f8a8fec2 in g_main_loop_run () at /lib64/libglib-2.0.so.0
#3  0x00007f15eb76ce66 in gdbus_shared_thread_func () at /lib64/libgio-2.0.so.0
#4  0x00007f15f8ab63d5 in g_thread_proxy () at /lib64/libglib-2.0.so.0
#5  0x00007f15fde4352a in start_thread () at /lib64/libpthread.so.0
#6  0x00007f15fd35122d in clone () at /lib64/libc.so.6

Thread 1 (Thread 0x7f1601ba7880 (LWP 6421)):
[KCrash Handler]
#6  0x00007f15ff568c94 in QAbstractScrollArea::horizontalScrollBar() const () at /lib64/libQtGui.so.4
#7  0x00000000005f32cd in BirdView::slotViewChanged() (this=0x14ded60) at /home/gbonnema/projects/cpp/tools-projects/umbrello/master/umbrello/birdview.cpp:120
#8  0x00007f15fe1f73d1 in QObject::event(QEvent*) () at /lib64/libQtCore.so.4
#9  0x00007f15ff126633 in QWidget::event(QEvent*) () at /lib64/libQtGui.so.4
#10 0x00007f15ff4e649e in QFrame::event(QEvent*) () at /lib64/libQtGui.so.4
#11 0x00007f15ff0d2efc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQtGui.so.4
#12 0x00007f15ff0d9958 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQtGui.so.4
#13 0x00007f15ffe47c6a in KApplication::notify(QObject*, QEvent*) () at /lib64/libkdeui.so.5
#14 0x00007f15fe1de16d in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /lib64/libQtCore.so.4
#15 0x00007f15fe1e1431 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQtCore.so.4
#16 0x00007f15fe20d32e in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQtCore.so.4
#17 0x00007f15f8a8f7fb in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#18 0x00007f15f8a8fb98 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#19 0x00007f15f8a8fc4c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#20 0x00007f15fe20d49e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtCore.so.4
#21 0x00007f15ff176176 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtGui.so.4
#22 0x00007f15fe1dccc1 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtCore.so.4
#23 0x00007f15fe1dd025 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtCore.so.4
#24 0x00007f15fe1e2709 in QCoreApplication::exec() () at /lib64/libQtCore.so.4
#25 0x0000000000440697 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/gbonnema/projects/cpp/tools-projects/umbrello/master/umbrello/main.cpp:140

Reported using DrKonqi
Comment 1 Ralf Habacker 2015-05-07 06:06:18 UTC
(In reply to Guus from comment #0)
> This is when the abort took place. I did it twice in succession. I did not
> test any other combination of actions.

> [KCrash Handler]
> #6  0x00007f15ff568c94 in QAbstractScrollArea::horizontalScrollBar() const
> () at /lib64/libQtGui.so.4
> #7  0x00000000005f32cd in BirdView::slotViewChanged() (this=0x14ded60) at
In 
void BirdView::slotDockSizeChanged(const QSize& size)
{
...
#if 1
    DEBUG(DBG_SRC) << "setting the size to the scene: " << itemsRect
                   << " / to the frame: " << frameRect
                   << " / scaleW: " << scaleW << " / scaleH: " << scaleH << " / scale: " << scale;
#endif

the following line has been added recently, which causes the crash. 

   QTimer::singleShot(0, this, SLOT(slotViewChanged()));
}

commenting out should fix the crash.
Comment 2 Ralf Habacker 2015-05-07 07:33:19 UTC
Git commit 3771e0d71d6689f0c7ed7ab44bc0a55c4c8a6e07 by Ralf Habacker.
Committed on 07/05/2015 at 07:29.
Pushed by habacker into branch 'master'.

Fix 'Umbrello crashes when closing the application'.

Make sure that bird view do not access a destroyed view.

M  +17   -0    umbrello/birdview.cpp
M  +1    -0    umbrello/birdview.h

http://commits.kde.org/umbrello/3771e0d71d6689f0c7ed7ab44bc0a55c4c8a6e07