Bug 376497 - Krita crash at double click on polyline object.
Summary: Krita crash at double click on polyline object.
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: 3.1.1
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2017-02-14 22:32 UTC by tuxtoriel
Modified: 2017-03-14 10:55 UTC (History)
1 user (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 tuxtoriel 2017-02-14 22:32:40 UTC
Application: krita (3.1.1)

Qt Version: 5.7.1
Frameworks Version: 5.30.0
Operating System: Linux 4.9.6-1-MANJARO x86_64
Distribution: "Manjaro Linux"

-- Information about the crash:
- What I was doing when the application crashed:
	Double click selecting polyline objects, and at one moment it crashed, without any apparent reason.

The crash does not seem to be reproducible.

-- Backtrace:
Application: Krita (krita), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fa3cc600c80 (LWP 5721))]

Thread 7 (Thread 0x7fa35bfff700 (LWP 5869)):
#0  0x00007fa3c34104f7 in do_futex_wait.constprop () at /usr/lib/libpthread.so.0
#1  0x00007fa3c34105a4 in __new_sem_wait_slow.constprop.0 () at /usr/lib/libpthread.so.0
#2  0x00007fa3c2d3d99a in  () at /usr/lib/primus/libGL.so.1
#3  0x00007fa3c3408454 in start_thread () at /usr/lib/libpthread.so.0
#4  0x00007fa3c93d87df in clone () at /usr/lib/libc.so.6

Thread 6 (Thread 0x7fa363ffe700 (LWP 5868)):
#0  0x00007fa3c34104f7 in do_futex_wait.constprop () at /usr/lib/libpthread.so.0
#1  0x00007fa3c34105a4 in __new_sem_wait_slow.constprop.0 () at /usr/lib/libpthread.so.0
#2  0x00007fa3c2d3b8da in  () at /usr/lib/primus/libGL.so.1
#3  0x00007fa3c3408454 in start_thread () at /usr/lib/libpthread.so.0
#4  0x00007fa3c93d87df in clone () at /usr/lib/libc.so.6

Thread 5 (Thread 0x7fa37e6a0700 (LWP 5812)):
#0  0x00007fa3c340e10f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007fa3c9cdab9b in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5
#2  0x00007fa3cadb3c41 in  () at /usr/lib/libQt5Widgets.so.5
#3  0x00007fa3c9cd9ce8 in  () at /usr/lib/libQt5Core.so.5
#4  0x00007fa3c3408454 in start_thread () at /usr/lib/libpthread.so.0
#5  0x00007fa3c93d87df in clone () at /usr/lib/libc.so.6

Thread 4 (Thread 0x7fa37f2a2700 (LWP 5803)):
#0  0x00007fa3c340e10f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007fa3c9cdab9b in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5
#2  0x00007fa3c9cd3d86 in QSemaphore::tryAcquire(int, int) () at /usr/lib/libQt5Core.so.5
#3  0x00007fa3c74f30ca in KisTileDataSwapper::run() () at /usr/lib/libkritaimage.so.16
#4  0x00007fa3c9cd9ce8 in  () at /usr/lib/libQt5Core.so.5
#5  0x00007fa3c3408454 in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007fa3c93d87df in clone () at /usr/lib/libc.so.6

Thread 3 (Thread 0x7fa37faa3700 (LWP 5802)):
#0  0x00007fa3c340e10f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007fa3c9cdab9b in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/libQt5Core.so.5
#2  0x00007fa3c9cd3a93 in QSemaphore::acquire(int) () at /usr/lib/libQt5Core.so.5
#3  0x00007fa3c74d6c6d in  () at /usr/lib/libkritaimage.so.16
#4  0x00007fa3c9cd9ce8 in  () at /usr/lib/libQt5Core.so.5
#5  0x00007fa3c3408454 in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007fa3c93d87df in clone () at /usr/lib/libc.so.6

Thread 2 (Thread 0x7fa3a8f45700 (LWP 5723)):
#0  0x00007ffe71bbeb02 in clock_gettime ()
#1  0x00007fa3c93e56b6 in clock_gettime () at /usr/lib/libc.so.6
#2  0x00007fa3c9d7f261 in  () at /usr/lib/libQt5Core.so.5
#3  0x00007fa3c9f07119 in QTimerInfoList::updateCurrentTime() () at /usr/lib/libQt5Core.so.5
#4  0x00007fa3c9f076c5 in QTimerInfoList::timerWait(timespec&) () at /usr/lib/libQt5Core.so.5
#5  0x00007fa3c9f08a5e in  () at /usr/lib/libQt5Core.so.5
#6  0x00007fa3c1db9c89 in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0
#7  0x00007fa3c1dba6ab in  () at /usr/lib/libglib-2.0.so.0
#8  0x00007fa3c1dba89c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#9  0x00007fa3c9f0948b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#10 0x00007fa3c9eb2e9a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#11 0x00007fa3c9cd5053 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#12 0x00007fa3c3633de5 in  () at /usr/lib/libQt5DBus.so.5
#13 0x00007fa3c9cd9ce8 in  () at /usr/lib/libQt5Core.so.5
#14 0x00007fa3c3408454 in start_thread () at /usr/lib/libpthread.so.0
#15 0x00007fa3c93d87df in clone () at /usr/lib/libc.so.6

Thread 1 (Thread 0x7fa3cc600c80 (LWP 5721)):
[KCrash Handler]
#6  0x00007fa3c6acb2fe in KoSelection::count() const () at /usr/lib/libkritaflake.so.16
#7  0x00007fa3919ad46d in  () at /usr/lib/kritaplugins/krita_flaketools.so
#8  0x00007fa3c6b2141e in KoToolProxy::setActiveTool(KoToolBase*) () at /usr/lib/libkritaflake.so.16
#9  0x00007fa3cbc8d7ca in  () at /usr/lib/libkritaui.so.16
#10 0x00007fa3c6b1377a in  () at /usr/lib/libkritaflake.so.16
#11 0x00007fa3c6b15288 in  () at /usr/lib/libkritaflake.so.16
#12 0x00007fa3c6b15b05 in  () at /usr/lib/libkritaflake.so.16
#13 0x00007fa3c6b15cc2 in  () at /usr/lib/libkritaflake.so.16
#14 0x00007fa3c6b15eaa in KoToolManager::switchToolRequested(QString const&) () at /usr/lib/libkritaflake.so.16
#15 0x00007fa3919aa1d7 in  () at /usr/lib/kritaplugins/krita_flaketools.so
#16 0x00007fa3c6b20d43 in KoToolProxy::mousePressEvent(KoPointerEvent*) () at /usr/lib/libkritaflake.so.16
#17 0x00007fa3c6b20e41 in KoToolProxy::mouseDoubleClickEvent(KoPointerEvent*) () at /usr/lib/libkritaflake.so.16
#18 0x00007fa3c6b20ebf in KoToolProxy::mouseDoubleClickEvent(QMouseEvent*, QPointF const&) () at /usr/lib/libkritaflake.so.16
#19 0x00007fa3cbc8d6ee in  () at /usr/lib/libkritaui.so.16
#20 0x00007fa3cbf4a077 in  () at /usr/lib/libkritaui.so.16
#21 0x00007fa3cbf5732e in KisShortcutMatcher::tryRunReadyShortcut(Qt::MouseButton, QEvent*) () at /usr/lib/libkritaui.so.16
#22 0x00007fa3cbf57c8b in KisShortcutMatcher::buttonPressed(Qt::MouseButton, QEvent*) () at /usr/lib/libkritaui.so.16
#23 0x00007fa3cbf418df in KisInputManager::eventFilterImpl(QEvent*) () at /usr/lib/libkritaui.so.16
#24 0x00007fa3c9eb47a1 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#25 0x00007fa3cab8e335 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#26 0x00007fa3cab9698d in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#27 0x00007fa3cbfb2447 in KisApplication::notify(QObject*, QEvent*) () at /usr/lib/libkritaui.so.16
#28 0x00007fa3c9eb4a40 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#29 0x00007fa3cab9503d in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () at /usr/lib/libQt5Widgets.so.5
#30 0x00007fa3cabf00f6 in  () at /usr/lib/libQt5Widgets.so.5
#31 0x00007fa3cabf2b03 in  () at /usr/lib/libQt5Widgets.so.5
#32 0x00007fa3cab8e35c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#33 0x00007fa3cab95ad1 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#34 0x00007fa3cbfb2447 in KisApplication::notify(QObject*, QEvent*) () at /usr/lib/libkritaui.so.16
#35 0x00007fa3c9eb4a40 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#36 0x00007fa3ca3fa39f in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at /usr/lib/libQt5Gui.so.5
#37 0x00007fa3ca3fc1e5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/libQt5Gui.so.5
#38 0x00007fa3ca3da15b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Gui.so.5
#39 0x00007fa3b6393da0 in  () at /usr/lib/libQt5XcbQpa.so.5
#40 0x00007fa3c1dba587 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#41 0x00007fa3c1dba7f0 in  () at /usr/lib/libglib-2.0.so.0
#42 0x00007fa3c1dba89c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#43 0x00007fa3c9f0946f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#44 0x00007fa3c9eb2e9a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#45 0x00007fa3c9ebb39c in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#46 0x0000000000404cee in main ()

Reported using DrKonqi
Comment 1 wolthera 2017-02-17 16:52:28 UTC
Setting this to confirmed because of backtrace.
Comment 2 Halla Rempt 2017-03-14 10:54:43 UTC
Git commit 96ab9d3363a092d06d3f024a48d4362fa1b5f507 by Boudewijn Rempt.
Committed on 14/03/2017 at 10:37.
Pushed by rempt into branch 'master'.

Check the pointer, and where we keep a pointer to it locally,
use QPointer.

M  +2    -2    libs/flake/KoToolProxy.cpp
M  +5    -1    libs/ui/kis_selection_manager.cc
M  +4    -4    plugins/dockers/shapedockers/shapeproperties/ShapePropertiesDocker.cpp
M  +19   -13   plugins/tools/defaulttool/defaulttool/DefaultTool.cpp
M  +8    -5    plugins/tools/defaulttool/defaulttool/DefaultToolWidget.cpp
M  +20   -18   plugins/tools/defaulttool/defaulttool/SelectionDecorator.cpp
M  +3    -1    plugins/tools/defaulttool/defaulttool/SelectionDecorator.h
M  +3    -0    plugins/tools/defaulttool/defaulttool/ShapeResizeStrategy.cpp
M  +22   -21   plugins/tools/karbonplugins/tools/CalligraphyTool/KarbonCalligraphyTool.cpp

https://commits.kde.org/krita/96ab9d3363a092d06d3f024a48d4362fa1b5f507
Comment 3 Halla Rempt 2017-03-14 10:55:22 UTC
Git commit 32a3dc423b783d1c7db0b28800e0ee7cde5a4268 by Boudewijn Rempt.
Committed on 14/03/2017 at 10:55.
Pushed by rempt into branch 'krita/3.1'.

Check the pointer, and where we keep a pointer to it locally,
use QPointer.

M  +2    -2    libs/flake/KoToolProxy.cpp
M  +5    -1    libs/ui/kis_selection_manager.cc
M  +4    -4    plugins/dockers/shapedockers/shapeproperties/ShapePropertiesDocker.cpp
M  +19   -13   plugins/tools/defaulttool/defaulttool/DefaultTool.cpp
M  +8    -5    plugins/tools/defaulttool/defaulttool/DefaultToolWidget.cpp
M  +20   -18   plugins/tools/defaulttool/defaulttool/SelectionDecorator.cpp
M  +3    -1    plugins/tools/defaulttool/defaulttool/SelectionDecorator.h
M  +3    -0    plugins/tools/defaulttool/defaulttool/ShapeResizeStrategy.cpp
M  +22   -21   plugins/tools/karbonplugins/tools/CalligraphyTool/KarbonCalligraphyTool.cpp

https://commits.kde.org/krita/32a3dc423b783d1c7db0b28800e0ee7cde5a4268