Bug 378137 - [Crash] [svg/loading branch] Selecting vector shape and calligraphy stroke with select shape tool crashes krita
Summary: [Crash] [svg/loading branch] Selecting vector shape and calligraphy stroke wi...
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2017-03-27 06:27 UTC by Raghavendra kamath
Modified: 2017-04-07 09:42 UTC (History)
0 users

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 Raghavendra kamath 2017-03-27 06:27:24 UTC
Application: krita (3.1.88 (git cb56566))
 (Compiled from sources)
Qt Version: 5.8.0
Frameworks Version: 5.32.0
Operating System: Linux 4.10.5-1-ARCH x86_64
Distribution: "Arch Linux"

-- Information about the crash:
To reproduce - 
1) open krita (built from svg/loading branch) and add a vector layer
2) add a vector shape like rectangle and also add a calligraphic stroke on same layer with calligraphy tool.
3) Now with select shape tool active draw a selection encompassing both calligraphic stroke and the vector stroke

Actual result - 
Krita crashes with below backtrace from Dr. Konqi

expected result - 
Both shapes should be selected and krita shouldn't crash

The crash can be reproduced every time.

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

Thread 15 (Thread 0x7fd2babfe700 (LWP 15187)):
#0  0x00007fd35c3d0b63 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007fd35e61e4c6 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQt5Core.so.5
#2  0x00007fd35e619bc4 in ?? () from /usr/lib/libQt5Core.so.5
#3  0x00007fd35e61d6d8 in ?? () from /usr/lib/libQt5Core.so.5
#4  0x00007fd35c3ca2e7 in start_thread () from /usr/lib/libpthread.so.0
#5  0x00007fd35da0654f in clone () from /usr/lib/libc.so.6

Thread 14 (Thread 0x7fd327fff700 (LWP 15186)):
#0  0x00007fd35c3d0b63 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007fd35e61e4c6 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQt5Core.so.5
#2  0x00007fd35e619bc4 in ?? () from /usr/lib/libQt5Core.so.5
#3  0x00007fd35e61d6d8 in ?? () from /usr/lib/libQt5Core.so.5
#4  0x00007fd35c3ca2e7 in start_thread () from /usr/lib/libpthread.so.0
#5  0x00007fd35da0654f in clone () from /usr/lib/libc.so.6

Thread 13 (Thread 0x7fd3340b2700 (LWP 15185)):
#0  0x00007fd35c3d0b63 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007fd35e61e4c6 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQt5Core.so.5
#2  0x00007fd35e619bc4 in ?? () from /usr/lib/libQt5Core.so.5
#3  0x00007fd35e61d6d8 in ?? () from /usr/lib/libQt5Core.so.5
#4  0x00007fd35c3ca2e7 in start_thread () from /usr/lib/libpthread.so.0
#5  0x00007fd35da0654f in clone () from /usr/lib/libc.so.6

Thread 12 (Thread 0x7fd3348b3700 (LWP 15184)):
#0  0x00007fd35c3d0b63 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007fd35e61e4c6 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQt5Core.so.5
#2  0x00007fd35e619bc4 in ?? () from /usr/lib/libQt5Core.so.5
#3  0x00007fd35e61d6d8 in ?? () from /usr/lib/libQt5Core.so.5
#4  0x00007fd35c3ca2e7 in start_thread () from /usr/lib/libpthread.so.0
#5  0x00007fd35da0654f in clone () from /usr/lib/libc.so.6

Thread 11 (Thread 0x7fd331eb0700 (LWP 15183)):
#0  0x00007fd35c3d0b63 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007fd35e61e4c6 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQt5Core.so.5
#2  0x00007fd35e619bc4 in ?? () from /usr/lib/libQt5Core.so.5
#3  0x00007fd35e61d6d8 in ?? () from /usr/lib/libQt5Core.so.5
#4  0x00007fd35c3ca2e7 in start_thread () from /usr/lib/libpthread.so.0
#5  0x00007fd35da0654f in clone () from /usr/lib/libc.so.6

Thread 10 (Thread 0x7fd2bb3ff700 (LWP 15182)):
#0  0x00007fd35c3d0b63 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007fd35e61e4c6 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQt5Core.so.5
#2  0x00007fd35e619bc4 in ?? () from /usr/lib/libQt5Core.so.5
#3  0x00007fd35e61d6d8 in ?? () from /usr/lib/libQt5Core.so.5
#4  0x00007fd35c3ca2e7 in start_thread () from /usr/lib/libpthread.so.0
#5  0x00007fd35da0654f in clone () from /usr/lib/libc.so.6

Thread 9 (Thread 0x7fd3326b1700 (LWP 15181)):
#0  0x00007fd35c3d0b63 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007fd35e61e4c6 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQt5Core.so.5
#2  0x00007fd35e619bc4 in ?? () from /usr/lib/libQt5Core.so.5
#3  0x00007fd35e61d6d8 in ?? () from /usr/lib/libQt5Core.so.5
#4  0x00007fd35c3ca2e7 in start_thread () from /usr/lib/libpthread.so.0
#5  0x00007fd35da0654f in clone () from /usr/lib/libc.so.6

Thread 8 (Thread 0x7fd2b9bfd700 (LWP 15180)):
#0  0x00007fd35c3d0b63 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007fd35e61e4c6 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQt5Core.so.5
#2  0x00007fd35e619bc4 in ?? () from /usr/lib/libQt5Core.so.5
#3  0x00007fd35e61d6d8 in ?? () from /usr/lib/libQt5Core.so.5
#4  0x00007fd35c3ca2e7 in start_thread () from /usr/lib/libpthread.so.0
#5  0x00007fd35da0654f in clone () from /usr/lib/libc.so.6

Thread 7 (Thread 0x7fd31d192700 (LWP 15071)):
#0  0x00007fd35c3d0756 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007fd35e61e58b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQt5Core.so.5
#2  0x00007fd35f903a71 in ?? () from /usr/lib/libQt5Widgets.so.5
#3  0x00007fd35e61d6d8 in ?? () from /usr/lib/libQt5Core.so.5
#4  0x00007fd35c3ca2e7 in start_thread () from /usr/lib/libpthread.so.0
#5  0x00007fd35da0654f in clone () from /usr/lib/libc.so.6

Thread 6 (Thread 0x7fd31d993700 (LWP 15070)):
#0  0x00007fd35c3d0756 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007fd35e61e58b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQt5Core.so.5
#2  0x00007fd35e6177c6 in QSemaphore::tryAcquire(int, int) () from /usr/lib/libQt5Core.so.5
#3  0x00007fd3674efe73 in KisTileDataSwapper::waitForWork (this=<optimized out>) at /run/media/raghu/Data/krita-build/src/krita/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:86
#4  0x00007fd3674f007a in KisTileDataSwapper::run (this=0x7fd3679a58e0 <_ZZN12_GLOBAL__N_116Q_QGS_s_instance13innerFunctionEvE6holder+64>) at /run/media/raghu/Data/krita-build/src/krita/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:92
#5  0x00007fd35e61d6d8 in ?? () from /usr/lib/libQt5Core.so.5
#6  0x00007fd35c3ca2e7 in start_thread () from /usr/lib/libpthread.so.0
#7  0x00007fd35da0654f in clone () from /usr/lib/libc.so.6

Thread 5 (Thread 0x7fd31e194700 (LWP 15069)):
#0  0x00007fd35c3d0756 in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007fd35e61e58b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQt5Core.so.5
#2  0x00007fd35e6174d3 in QSemaphore::acquire(int) () from /usr/lib/libQt5Core.so.5
#3  0x00007fd3674d61be in KisTileDataPooler::waitForWork (this=0x7fd3679a58a0 <_ZZN12_GLOBAL__N_116Q_QGS_s_instance13innerFunctionEvE6holder>) at /run/media/raghu/Data/krita-build/src/krita/libs/image/tiles3/kis_tile_data_pooler.cc:165
#4  0x00007fd3674d690a in KisTileDataPooler::run (this=0x7fd3679a58a0 <_ZZN12_GLOBAL__N_116Q_QGS_s_instance13innerFunctionEvE6holder>) at /run/media/raghu/Data/krita-build/src/krita/libs/image/tiles3/kis_tile_data_pooler.cc:187
#5  0x00007fd35e61d6d8 in ?? () from /usr/lib/libQt5Core.so.5
#6  0x00007fd35c3ca2e7 in start_thread () from /usr/lib/libpthread.so.0
#7  0x00007fd35da0654f in clone () from /usr/lib/libc.so.6

Thread 4 (Thread 0x7fd345c9d700 (LWP 15053)):
#0  0x00007fd35d9fc67d in poll () from /usr/lib/libc.so.6
#1  0x00007fd35996e7a6 in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007fd35996e8bc in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007fd35e84d06b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#4  0x00007fd35e7f689a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#5  0x00007fd35e618a73 in QThread::exec() () from /usr/lib/libQt5Core.so.5
#6  0x00007fd361fa3125 in ?? () from /usr/lib/libQt5DBus.so.5
#7  0x00007fd35e61d6d8 in ?? () from /usr/lib/libQt5Core.so.5
#8  0x00007fd35c3ca2e7 in start_thread () from /usr/lib/libpthread.so.0
#9  0x00007fd35da0654f in clone () from /usr/lib/libc.so.6

Thread 3 (Thread 0x7fd347901700 (LWP 15052)):
#0  0x00007fd35c3d0ca6 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007fd3499afe44 in ?? () from /usr/lib/libGLX_nvidia.so.0
#2  0x00007fd3486cd394 in ?? () from /usr/lib/libnvidia-glcore.so.378.13
#3  0x00007fd3499af12c in ?? () from /usr/lib/libGLX_nvidia.so.0
#4  0x00007fd35c3ca2e7 in start_thread () from /usr/lib/libpthread.so.0
#5  0x00007fd35da0654f in clone () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7fd352c93700 (LWP 15050)):
#0  0x00007fd35d9fc67d in poll () from /usr/lib/libc.so.6
#1  0x00007fd361b5f8e0 in ?? () from /usr/lib/libxcb.so.1
#2  0x00007fd361b61679 in xcb_wait_for_event () from /usr/lib/libxcb.so.1
#3  0x00007fd354bbf239 in ?? () from /usr/lib/libQt5XcbQpa.so.5
#4  0x00007fd35e61d6d8 in ?? () from /usr/lib/libQt5Core.so.5
#5  0x00007fd35c3ca2e7 in start_thread () from /usr/lib/libpthread.so.0
#6  0x00007fd35da0654f in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7fd368fc1840 (LWP 15049)):
[KCrash Handler]
#6  KoShapeStroke::lineWidth (this=0x0) at /run/media/raghu/Data/krita-build/src/krita/libs/flake/KoShapeStroke.cpp:352
#7  0x00007fd3689026d3 in CheckShapeStrokeWidthPolicy::compareTo (p2=..., p1=...) at /run/media/raghu/Data/krita-build/src/krita/libs/ui/widgets/KoStrokeConfigWidget.cpp:635
#8  KoFlake::compareShapePropertiesEqual<CheckShapeStrokeWidthPolicy> (shapes=..., policy=...) at /run/media/raghu/Data/krita-build/src/krita/libs/flake/KoFlakeUtils.h:70
#9  0x00007fd3688fea83 in KoFlake::compareShapePropertiesEqual<CheckShapeStrokeWidthPolicy> (shapes=...) at /run/media/raghu/Data/krita-build/src/krita/libs/flake/KoFlakeUtils.h:83
#10 KoStrokeConfigWidget::selectionChanged (this=0xc2d58b0) at /run/media/raghu/Data/krita-build/src/krita/libs/ui/widgets/KoStrokeConfigWidget.cpp:677
#11 0x00007fd35e823d49 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
#12 0x00007fd364b13f00 in KisAcyclicSignalConnector::backwardSlotVoid (this=0xc2d5bf0) at /run/media/raghu/Data/krita-build/src/krita/libs/global/kis_acyclic_signal_connector.cpp:199
#13 0x00007fd35e823d49 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
#14 0x00007fd368a3071e in KisSelectedShapesProxy::selectionChanged (this=<optimized out>) at /run/media/raghu/Data/krita-build/build/libs/ui/kritaui_automoc.dir/moc_KisSelectedSha_E7U35WDKD7FHXF.cpp:152
#15 KisSelectedShapesProxy::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /run/media/raghu/Data/krita-build/build/libs/ui/kritaui_automoc.dir/moc_KisSelectedSha_E7U35WDKD7FHXF.cpp:81
#16 0x00007fd35e823d49 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
#17 0x00007fd35e823d49 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
#18 0x00007fd35e823d49 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
#19 0x00007fd35e823d49 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQt5Core.so.5
#20 0x00007fd35e830d98 in QTimer::timerEvent(QTimerEvent*) () from /usr/lib/libQt5Core.so.5
#21 0x00007fd35e824b63 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#22 0x00007fd35f6de34c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#23 0x00007fd35f6e5b61 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#24 0x00007fd3689746e7 in KisApplication::notify (this=<optimized out>, receiver=0xbee55d0, event=0x7ffd91c426a0) at /run/media/raghu/Data/krita-build/src/krita/libs/ui/KisApplication.cpp:542
#25 0x00007fd35e7f8440 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#26 0x00007fd35e84bcbe in QTimerInfoList::activateTimers() () from /usr/lib/libQt5Core.so.5
#27 0x00007fd35e84c511 in ?? () from /usr/lib/libQt5Core.so.5
#28 0x00007fd35996e5a7 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#29 0x00007fd35996e810 in ?? () from /usr/lib/libglib-2.0.so.0
#30 0x00007fd35996e8bc in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#31 0x00007fd35e84d04f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#32 0x00007fd35e7f689a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#33 0x00007fd35e7fede4 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#34 0x000000000040538a in main (argc=<optimized out>, argv=<optimized out>) at /run/media/raghu/Data/krita-build/src/krita/krita/main.cc:269

Reported using DrKonqi
Comment 1 Dmitry Kazakov 2017-04-07 09:42:26 UTC
Git commit ee09084541de30f462fa538e9cef7d84d90857a4 by Dmitry Kazakov.
Committed on 07/04/2017 at 09:41.
Pushed by dkazakov into branch 'master'.

Fix crash when trying to multiselect a shape without a stroke
Ref T5753

M  +4    -2    libs/flake/KoFlakeUtils.h

https://commits.kde.org/krita/ee09084541de30f462fa538e9cef7d84d90857a4