Summary: | Stroke Selection on a Clone layer causing a SIGSEGV | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | mvowada <freebox64> |
Component: | Layer Stack | Assignee: | Dmitry Kazakov <dimula73> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | halla |
Priority: | NOR | ||
Version: | git master (please specify the git hash!) | ||
Target Milestone: | --- | ||
Platform: | Appimage | ||
OS: | Linux | ||
Latest Commit: | https://commits.kde.org/krita/f210fa2a888028bf35085cc4f787fdda6c8046e6 | Version Fixed In: | |
Sentry Crash Report: | |||
Attachments: |
Video
GDB report (appimage) patch to fix this issue. |
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...)
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 Created attachment 114732 [details]
patch to fix this issue.
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 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 |
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