Bug 384385

Summary: Segmentation fault when moving class in classdiagram
Product: [Applications] umbrello Reporter: Spammmy2106234
Component: generalAssignee: Umbrello Development Group <umbrello-devel>
Status: RESOLVED FIXED    
Severity: crash CC: micky686, ralf.habacker
Priority: NOR Keywords: drkonqi
Version: frameworks5   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In: 2.24.0
Sentry Crash Report:

Description Spammmy2106234 2017-09-05 13:47:13 UTC
Application: umbrello5 (2.23.0)

Qt Version: 5.9.1
Frameworks Version: 5.37.0
Operating System: Linux 4.12.8-2-ARCH x86_64
Distribution: "Arch Linux"

-- Information about the crash:
OS: ArchLinux x86_64 Kernel: Linux 4.12.8-2 ARCH , qt5-base: 5.9.1-3, plasma-workspace: 5.10.5-3

Desktop Environment: GNOME
Window Manager: GNOME Shell

- What I was doing when the application crashed:
1. I created a class "A" and a class "B"
2. I selected the "Directional Association" tool
3. I drew two lines from "A" to "B"
4. I selected the "Select" tool
5. I selected one arrow and deleted it using the delete key
6. I moved "A" with the mouse
7. ==> The program crashed
( I tried this 3 times - always the same result; Version="Umbrello UML Modeller Version 2.23.0" )

- Unusual behavior I noticed:
The second time I I've tried I deselected the "Directional Association" tool after the first arrow and reselected it to draw the second arrow. This time Umbrello just froze and no crash report tab opened.

The crash can be reproduced every time.

-- Backtrace:
Application: Umbrello UML Modeller (umbrello5), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f3373889880 (LWP 25344))]

Thread 6 (Thread 0x7f3346d79700 (LWP 25350)):
#0  0x00007f3364e0ca69 in g_mutex_lock () at /usr/lib/libglib-2.0.so.0
#1  0x00007f3364dc7bce in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007f3364dc7d1c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007f336ea6d084 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007f336ea10ffb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007f336e82a40e in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007f3367eb3396 in  () at /usr/lib/libQt5DBus.so.5
#7  0x00007f336e82f15b in  () at /usr/lib/libQt5Core.so.5
#8  0x00007f3367398049 in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007f336de30f0f in clone () at /usr/lib/libc.so.6

Thread 5 (Thread 0x7f334c9b7700 (LWP 25349)):
#0  0x00007f336de26e9d in poll () at /usr/lib/libc.so.6
#1  0x00007f3364dc7c09 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007f3364dc7fa2 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#3  0x00007f3362f8c546 in  () at /usr/lib/libgio-2.0.so.0
#4  0x00007f3364deeae5 in  () at /usr/lib/libglib-2.0.so.0
#5  0x00007f3367398049 in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007f336de30f0f in clone () at /usr/lib/libc.so.6

Thread 4 (Thread 0x7f334d1b8700 (LWP 25348)):
#0  0x00007f336de26e9d in poll () at /usr/lib/libc.so.6
#1  0x00007f3364dc7c09 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007f3364dc7d1c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007f3364dc7d61 in  () at /usr/lib/libglib-2.0.so.0
#4  0x00007f3364deeae5 in  () at /usr/lib/libglib-2.0.so.0
#5  0x00007f3367398049 in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007f336de30f0f in clone () at /usr/lib/libc.so.6

Thread 3 (Thread 0x7f33565b9700 (LWP 25347)):
#0  0x00007f336de26e9d in poll () at /usr/lib/libc.so.6
#1  0x00007f3364b608e0 in  () at /usr/lib/libxcb.so.1
#2  0x00007f3364b62679 in xcb_wait_for_event () at /usr/lib/libxcb.so.1
#3  0x00007f3358f4f72a in  () at /usr/lib/libQt5XcbQpa.so.5
#4  0x00007f336e82f15b in  () at /usr/lib/libQt5Core.so.5
#5  0x00007f3367398049 in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007f336de30f0f in clone () at /usr/lib/libc.so.6

Thread 2 (Thread 0x7f335a03c700 (LWP 25346)):
#0  0x00007f336739e1ad in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007f336e4b0ccc in __gthread_cond_wait (__mutex=<optimized out>, __cond=<optimized out>) at /build/gcc/src/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:864
#2  0x00007f336e4b0ccc in std::condition_variable::wait(std::unique_lock<std::mutex>&) (this=<optimized out>, __lock=...) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/condition_variable.cc:53
#3  0x00007f336cabd3f7 in  () at /usr/lib/libQt5WebKit.so.5
#4  0x00007f336cabd539 in  () at /usr/lib/libQt5WebKit.so.5
#5  0x00007f336e4b700f in std::execute_native_thread_routine(void*) (__p=0x55589d2a0c80) at /build/gcc/src/gcc/libstdc++-v3/src/c++11/thread.cc:83
#6  0x00007f3367398049 in start_thread () at /usr/lib/libpthread.so.0
#7  0x00007f336de30f0f in clone () at /usr/lib/libc.so.6

Thread 1 (Thread 0x7f3373889880 (LWP 25344)):
[KCrash Handler]
#5  0x00007f336fcb0e34 in QGraphicsItem::parentItem() const () at /usr/lib/libQt5Widgets.so.5
#6  0x00007f336fcb0e5c in QGraphicsItem::topLevelItem() const () at /usr/lib/libQt5Widgets.so.5
#7  0x00007f336fcf8b3e in  () at /usr/lib/libQt5Widgets.so.5
#8  0x00007f336fcf7b46 in  () at /usr/lib/libQt5Widgets.so.5
#9  0x00007f336fcf7b9a in  () at /usr/lib/libQt5Widgets.so.5
#10 0x00007f336fcf7b46 in  () at /usr/lib/libQt5Widgets.so.5
#11 0x00007f336fcf7c23 in  () at /usr/lib/libQt5Widgets.so.5
#12 0x00007f336fcfaf76 in  () at /usr/lib/libQt5Widgets.so.5
#13 0x00007f336fcfb257 in  () at /usr/lib/libQt5Widgets.so.5
#14 0x00007f336fcec3bb in  () at /usr/lib/libQt5Widgets.so.5
#15 0x00007f336fd0f7e8 in QGraphicsView::paintEvent(QPaintEvent*) () at /usr/lib/libQt5Widgets.so.5
#16 0x00007f336fa14d68 in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#17 0x00007f336faf860f in QFrame::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#18 0x00007f336fd0e2ac in QGraphicsView::viewportEvent(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#19 0x00007f336ea1289c in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#20 0x00007f336f9d2e28 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#21 0x00007f336f9da926 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#22 0x00007f336ea12bd0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#23 0x00007f336fa0dbbc in QWidgetPrivate::sendPaintEvent(QRegion const&) () at /usr/lib/libQt5Widgets.so.5
#24 0x00007f336fa0e1b3 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () at /usr/lib/libQt5Widgets.so.5
#25 0x00007f336f9e283f in  () at /usr/lib/libQt5Widgets.so.5
#26 0x00007f336f9e2af5 in  () at /usr/lib/libQt5Widgets.so.5
#27 0x00007f336f9fca72 in QWidgetPrivate::syncBackingStore() () at /usr/lib/libQt5Widgets.so.5
#28 0x00007f336fa14ee9 in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#29 0x00007f336fb075e4 in QMainWindow::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#30 0x00007f33723ba31b in KMainWindow::event(QEvent*) () at /usr/lib/libKF5XmlGui.so.5
#31 0x00007f337240b616 in KXmlGuiWindow::event(QEvent*) () at /usr/lib/libKF5XmlGui.so.5
#32 0x00007f336f9d2e4c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#33 0x00007f336f9da926 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#34 0x00007f336ea12bd0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#35 0x00007f336ea15426 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#36 0x00007f336fcdf304 in  () at /usr/lib/libQt5Widgets.so.5
#37 0x00007f336fce4649 in  () at /usr/lib/libQt5Widgets.so.5
#38 0x00007f336ea431d2 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#39 0x00007f336fcefdac in QGraphicsScene::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#40 0x00007f336f9d2e4c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#41 0x00007f336f9da926 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#42 0x00007f336ea12bd0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#43 0x00007f336ea15426 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#44 0x00007f336ea6da74 in  () at /usr/lib/libQt5Core.so.5
#45 0x00007f3364dc7a57 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#46 0x00007f3364dc7c88 in  () at /usr/lib/libglib-2.0.so.0
#47 0x00007f3364dc7d1c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#48 0x00007f336ea6d061 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#49 0x00007f336ea10ffb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#50 0x00007f336ea1a048 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#51 0x000055589c101e36 in  ()
#52 0x00007f336dd634ca in __libc_start_main () at /usr/lib/libc.so.6
#53 0x000055589c11c9da in _start ()

Reported using DrKonqi
Comment 1 mickeyak 2018-01-23 22:06:57 UTC
I have tried to reproduce this on the current master version 2.24.70-ee85974d6 and there is no crash.
Comment 2 Spammmy2106234 2018-01-27 14:39:11 UTC
Indeed, as mickeyak reported this bug seems to be fixed in the latest version (I tested with version 2.24).

Feel free to close this bug.