Bug 398015 - Stroke Selection on a Clone layer causing a SIGSEGV
Summary: Stroke Selection on a Clone layer causing a SIGSEGV
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Layer Stack (show other bugs)
Version: git master (please specify the git hash!)
Platform: Appimage Linux
: NOR normal
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-08-29 12:49 UTC by mvowada
Modified: 2018-09-24 07:25 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Video (870.21 KB, video/mp4)
2018-08-29 12:49 UTC, mvowada
Details
GDB report (appimage) (11.37 KB, text/plain)
2018-08-29 12:54 UTC, mvowada
Details
patch to fix this issue. (1.37 KB, patch)
2018-09-01 10:27 UTC, Halla Rempt
Details

Note You need to log in before you can comment on or make changes to this bug.
Description mvowada 2018-08-29 12:49:53 UTC
Created attachment 114677 [details]
Video

(Krita 4.2.0-pre-alpha (git 0ebf6d9) - Ubuntu 14.04)

Steps:

    1. make a selection on the active Clone layer
    2. Edit > Stroke Selection > Type: Current brush > OK

Actual Results: I'm getting a SIGSEGV signal
Comment 1 mvowada 2018-08-29 12:54:09 UTC
Created attachment 114678 [details]
GDB report (appimage)

(Since I'm using an Appimage, I doubt this GDB report can be of some help. However here it is...)
Comment 2 Halla Rempt 2018-09-01 10:18:35 UTC
I can confirm the issue.

Application: Krita (krita), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fbbdb767840 (LWP 24309))]

Thread 6 (Thread 0x7fbb7d850700 (LWP 24397)):
[KCrash Handler]
#6  KisPaintDevice::Private::y (this=<error reading variable: Cannot access memory at address 0x20>) at /home/boud/dev/resources/libs/image/kis_paint_device.cc:129
#7  KisPaintDevice::y (this=0x0) at /home/boud/dev/resources/libs/image/kis_paint_device.cc:1193
#8  0x00007fbbd5871bfa in KisTransactionData::init (this=this@entry=0x7fbb6c0054e0, device=...) at /home/boud/dev/resources/libs/image/kis_transaction_data.cpp:102
#9  0x00007fbbd5872657 in KisTransactionData::KisTransactionData (this=0x7fbb6c0054e0, name=..., device=..., resetSelectionOutlineCache=<optimized out>, parent=<optimized out>) at /home/boud/dev/resources/libs/image/kis_transaction_data.cpp:72
#10 0x00007fbbdab2e9d7 in KisTransaction::KisTransaction (timedID=-1, parent=0x0, device=..., name=..., this=0x7fbb6c007ce0) at /home/boud/dev/resources/libs/image/kis_transaction.h:42
#11 KisPainterBasedStrokeStrategy::initStrokeCallback (this=this@entry=0x55f38c728ec0) at /home/boud/dev/resources/libs/ui/tool/strokes/kis_painter_based_stroke_strategy.cpp:264
#12 0x00007fbbdab2c169 in FreehandStrokeStrategy::initStrokeCallback (this=0x55f38c728ec0) at /home/boud/dev/resources/libs/ui/tool/strokes/freehand_stroke.cpp:135
#13 0x00007fbbd5958460 in non-virtual thunk to KisUpdateJobItem::run() () from /home/boud/dev/i-resources/lib/x86_64-linux-gnu/libkritaimage.so.18
#14 0x00007fbbd84c7fd2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#15 0x00007fbbd84d0aab in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007fbbd10c26db in start_thread (arg=0x7fbb7d850700) at pthread_create.c:463
#17 0x00007fbbd7bab88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fbb98619700 (LWP 24314)):
#0  0x00007fbbcf80bcd9 in g_mutex_lock () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007fbbcf7c6538 in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fbbd86f6a9b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007fbbd869adea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fbbd84c5b8a in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fbbb7cb78b5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#6  0x00007fbbd84d0aab in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fbbd10c26db in start_thread (arg=0x7fbb98619700) at pthread_create.c:463
#8  0x00007fbbd7bab88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fbb97e18700 (LWP 24313)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007fbbd84c4840 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007fbbd84c46b2 in QSemaphore::tryAcquire(int, int) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007fbbd56b1e83 in KisTileDataSwapper::waitForWork (this=<optimized out>) at /home/boud/dev/resources/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:86
#4  0x00007fbbd56b20ba in KisTileDataSwapper::run (this=0x7fbbd5c23fc0 <_ZZN12_GLOBAL__N_116Q_QGS_s_instance13innerFunctionEvE6holder+64>) at /home/boud/dev/resources/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:92
#5  0x00007fbbd84d0aab in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fbbd10c26db in start_thread (arg=0x7fbb97e18700) at pthread_create.c:463
#7  0x00007fbbd7bab88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fbbb1bb6700 (LWP 24311)):
#0  0x00007fbbd7b9ebf9 in __GI___poll (fds=0x7fbbac004db0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fbbcf7c6439 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fbbcf7c654c in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fbbd86f6a9b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fbbd869adea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fbbd84c5b8a in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fbbcdc34e45 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007fbbd84d0aab in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fbbd10c26db in start_thread (arg=0x7fbbb1bb6700) at pthread_create.c:463
#9  0x00007fbbd7bab88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fbbbf60a700 (LWP 24310)):
#0  0x00007fbbd7b9ebf9 in __GI___poll (fds=0x7fbbbf609c68, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fbbd5e83747 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007fbbd5e8536a in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007fbbc1f77129 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4  0x00007fbbd84d0aab in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fbbd10c26db in start_thread (arg=0x7fbbbf60a700) at pthread_create.c:463
#6  0x00007fbbd7bab88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7fbbdb767840 (LWP 24309)):
#0  0x00007fbbd10c89f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7fff6a6341a8) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x55f381334238, cond=0x7fff6a634180) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x7fff6a634180, mutex=0x55f381334238) at pthread_cond_wait.c:655
#3  0x00007fbbd5e83952 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#4  0x00007fbbd5e8506f in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#5  0x00007fbbd5e852a8 in xcb_request_check () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#6  0x00007fbbc1f9586d in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#7  0x00007fbbc1f95a64 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#8  0x00007fbbc1f978c9 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#9  0x00007fbbc1f97989 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#10 0x00007fbbd8dd19cb in QBackingStore::~QBackingStore() () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#11 0x00007fbbd944f167 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007fbbd9457dc2 in QWidgetPrivate::deleteTLSysExtra() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007fbbd945ccc8 in QWidget::destroy(bool, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007fbbd9464468 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007fbbd952f83d in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007fbbd86c96ab in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x00007fbbd946444c in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007fbbd9521d79 in QComboBox::~QComboBox() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007fbbd86c96ab in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007fbbd946444c in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007fbbd9464699 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007fbbd86c96ab in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007fbbd946444c in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007fbbd95cad29 in QStackedWidget::~QStackedWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007fbbd86c96ab in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007fbbd946444c in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007fbbd95ebc39 in QTabWidget::~QTabWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007fbbd86c96ab in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x00007fbbd946444c in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007fbbdad5a45d in WdgStrokeSelection::~WdgStrokeSelection (this=0x55f38c8ceaf0, __in_chrg=<optimized out>) at /home/boud/dev/b-resources/libs/ui/kritaui_autogen/2NRMJ5X7RK/../../../../../resources/libs/ui/dialogs/kis_dlg_stroke_selection_properties.h:59
#31 WdgStrokeSelection::~WdgStrokeSelection (this=0x55f38c8ceaf0, __in_chrg=<optimized out>) at /home/boud/dev/b-resources/libs/ui/kritaui_autogen/2NRMJ5X7RK/../../../../../resources/libs/ui/dialogs/kis_dlg_stroke_selection_properties.h:59
#32 0x00007fbbda922a7e in KisDlgStrokeSelection::~KisDlgStrokeSelection (this=0x55f38c81c2c0, __in_chrg=<optimized out>) at /home/boud/dev/resources/libs/ui/dialogs/kis_dlg_stroke_selection_properties.cpp:151
#33 0x00007fbbda923199 in KisDlgStrokeSelection::~KisDlgStrokeSelection (this=0x55f38c81c2c0, __in_chrg=<optimized out>) at /home/boud/dev/resources/libs/ui/dialogs/kis_dlg_stroke_selection_properties.cpp:152
#34 0x00007fbbdaa96422 in KisSelectionManager::slotStrokeSelection (this=0x55f38a03d0c0) at /home/boud/dev/resources/libs/ui/kis_selection_manager.cc:604
#35 0x00007fbbdad45cf5 in KisSelectionManager::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /home/boud/dev/b-resources/libs/ui/kritaui_autogen/EWIEGA46WW/moc_kis_selection_manager.cpp:255
#36 0x00007fbbd86cbad5 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#37 0x00007fbbd9423732 in QAction::triggered(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007fbbd9425d6c in QAction::activate(QAction::ActionEvent) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007fbbd95994bc in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007fbbd95a0a3b in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007fbbd95a18f3 in QMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007fbbd9468b08 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#43 0x00007fbbd95a3c2b in QMenu::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007fbbd9429e8c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#45 0x00007fbbd9431ff7 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#46 0x00007fbbdac4acf7 in KisApplication::notify (this=<optimized out>, receiver=0x55f38c241710, event=0x7fff6a6352c0) at /home/boud/dev/resources/libs/ui/KisApplication.cpp:676
#47 0x00007fbbd869cab8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#48 0x00007fbbd9430942 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#49 0x00007fbbd94839aa in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#50 0x00007fbbd9486289 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#51 0x00007fbbd9429e8c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#52 0x00007fbbd943145f in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#53 0x00007fbbdac4acf7 in KisApplication::notify (this=<optimized out>, receiver=0x55f38c6092c0, event=0x7fff6a635730) at /home/boud/dev/resources/libs/ui/KisApplication.cpp:676
#54 0x00007fbbd869cab8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#55 0x00007fbbd8c2e2ab in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#56 0x00007fbbd8c2fe55 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#57 0x00007fbbd8c08f0b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#58 0x00007fbbc2001edb in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#59 0x00007fbbd869adea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#60 0x00007fbbd86a3fa0 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#61 0x000055f37f522f88 in main (argc=<optimized out>, argv=0x7fff6a635c88) at /home/boud/dev/resources/krita/main.cc:435
Comment 3 Halla Rempt 2018-09-01 10:27:31 UTC
Created attachment 114732 [details]
patch to fix this issue.
Comment 4 Dmitry Kazakov 2018-09-21 10:11:03 UTC
Git commit c03b924d9adf714acb0eea4706b3aff68367d400 by Dmitry Kazakov.
Committed on 21/09/2018 at 10:10.
Pushed by dkazakov into branch 'master'.

Stroke Selection: don't try to add a shape just because a layer doesn't have a paint device

M  +1    -1    libs/ui/actions/kis_selection_action_factories.cpp

https://commits.kde.org/krita/c03b924d9adf714acb0eea4706b3aff68367d400
Comment 5 Halla Rempt 2018-09-24 07:25:19 UTC
Git commit f210fa2a888028bf35085cc4f787fdda6c8046e6 by Boudewijn Rempt, on behalf of Dmitry Kazakov.
Committed on 24/09/2018 at 07:05.
Pushed by rempt into branch 'krita/4.1'.

Stroke Selection: don't try to add a shape just because a layer doesn't have a paint device

M  +1    -1    libs/ui/actions/kis_selection_action_factories.cpp

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