Bug 292551 - Crash in Krita when trying to manipulate selection
Summary: Crash in Krita when trying to manipulate selection
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-27 06:03 UTC by Robert Downing
Modified: 2012-02-03 10:36 UTC (History)
2 users (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 Robert Downing 2012-01-27 06:03:51 UTC
Application: krita (2.4 Beta 6)
KDE Platform Version: 4.7.97 (4.8 RC2 (4.7.97)
Qt Version: 4.7.4
Operating System: Linux 3.0.0-15-generic-pae i686
Distribution: Ubuntu 11.10

-- Information about the crash:
- What I was doing when the application crashed:
Selected area using free-form tool, then tried to apply darkeing filter to selected area. Application crashed.

-- Backtrace:
Application: Krita (krita), signal: Segmentation fault
[Current thread is 1 (Thread 0xb41de950 (LWP 4164))]

Thread 7 (Thread 0xaecfeb70 (LWP 4165)):
#0  0xb785e424 in __kernel_vsyscall ()
#1  0xb4fd8a5c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xb7760cfc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0xb6123cc0 in wait (time=4294967295, this=0xbdca978) at thread/qwaitcondition_unix.cpp:88
#4  QWaitCondition::wait (this=0xbdca904, mutex=0xbdca900, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#5  0xb6120112 in QSemaphore::acquire (this=0xbdca660, n=1) at thread/qsemaphore.cpp:144
#6  0xb28b987b in KisTileDataPooler::waitForWork (this=0xbdca658) at /build/buildd/calligra-2.3.86/krita/image/tiles3/kis_tile_data_pooler.cc:162
#7  0xb28ba02d in KisTileDataPooler::run (this=0xbdca658) at /build/buildd/calligra-2.3.86/krita/image/tiles3/kis_tile_data_pooler.cc:184
#8  0xb61237b3 in QThreadPrivate::start (arg=0xbdca658) at thread/qthread_unix.cpp:331
#9  0xb4fd4d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#10 0xb77530ce in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 6 (Thread 0xae4fdb70 (LWP 4166)):
#0  0xb785e424 in __kernel_vsyscall ()
#1  0xb4fd8a5c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xb7760cfc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0xb6123cc0 in wait (time=4294967295, this=0xbdcace8) at thread/qwaitcondition_unix.cpp:88
#4  QWaitCondition::wait (this=0xbdcac74, mutex=0xbdcac70, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#5  0xb6120386 in QSemaphore::tryAcquire (this=0xbdca9d0, n=1, timeout=-1) at thread/qsemaphore.cpp:221
#6  0xb28dbbee in KisTileDataSwapper::waitForWork (this=0xbdca678) at /build/buildd/calligra-2.3.86/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:86
#7  0xb28dbd84 in KisTileDataSwapper::run (this=0xbdca678) at /build/buildd/calligra-2.3.86/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:92
#8  0xb61237b3 in QThreadPrivate::start (arg=0xbdca678) at thread/qthread_unix.cpp:331
#9  0xb4fd4d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#10 0xb77530ce in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 5 (Thread 0xac37eb70 (LWP 4171)):
#0  0xb4d27d10 in clock_gettime () from /lib/i386-linux-gnu/librt.so.1
#1  0xb617a7d5 in do_gettime (frac=0xac37e050, sec=0xac37e048) at tools/qelapsedtimer_unix.cpp:123
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0xb624d4b6 in QTimerInfoList::updateCurrentTime (this=0xd95bb90) at kernel/qeventdispatcher_unix.cpp:339
#4  0xb624eeab in QEventDispatcherUNIXPrivate::doSelect (this=0xd95b4f0, flags=..., timeout=0x0) at kernel/qeventdispatcher_unix.cpp:182
#5  0xb624f454 in QEventDispatcherUNIX::processEvents (this=0xd95b410, flags=...) at kernel/qeventdispatcher_unix.cpp:918
#6  0xb621d1dd in QEventLoop::processEvents (this=0xac37e2a0, flags=...) at kernel/qeventloop.cpp:149
#7  0xb621d421 in QEventLoop::exec (this=0xac37e2a0, flags=...) at kernel/qeventloop.cpp:201
#8  0xb612090b in QThread::exec (this=0xd8cc1c8) at thread/qthread.cpp:498
#9  0xb61fde2d in QInotifyFileSystemWatcherEngine::run (this=0xd8cc1c8) at io/qfilesystemwatcher_inotify.cpp:248
#10 0xb61237b3 in QThreadPrivate::start (arg=0xd8cc1c8) at thread/qthread_unix.cpp:331
#11 0xb4fd4d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#12 0xb77530ce in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 4 (Thread 0xadcd5b70 (LWP 4176)):
#0  0xb4d27d10 in clock_gettime () from /lib/i386-linux-gnu/librt.so.1
#1  0xb617a7d5 in do_gettime (frac=0xadcd5130, sec=0xadcd5128) at tools/qelapsedtimer_unix.cpp:123
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0xb624d4b6 in QTimerInfoList::updateCurrentTime (this=0xe3d8108) at kernel/qeventdispatcher_unix.cpp:339
#4  0xb624d80a in QTimerInfoList::timerWait (this=0xe3d8108, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0xb624f4de in QEventDispatcherUNIX::processEvents (this=0xebbb2e8, flags=...) at kernel/qeventdispatcher_unix.cpp:905
#6  0xb621d1dd in QEventLoop::processEvents (this=0xadcd52a0, flags=...) at kernel/qeventloop.cpp:149
#7  0xb621d421 in QEventLoop::exec (this=0xadcd52a0, flags=...) at kernel/qeventloop.cpp:201
#8  0xb612090b in QThread::exec (this=0xac60cd90) at thread/qthread.cpp:498
#9  0xb61fde2d in QInotifyFileSystemWatcherEngine::run (this=0xac60cd90) at io/qfilesystemwatcher_inotify.cpp:248
#10 0xb61237b3 in QThreadPrivate::start (arg=0xac60cd90) at thread/qthread_unix.cpp:331
#11 0xb4fd4d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#12 0xb77530ce in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 3 (Thread 0xa63ffb70 (LWP 4185)):
#0  0xb785e424 in __kernel_vsyscall ()
#1  0xb4fd8a5c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xb7760cfc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0xb6123cc0 in wait (time=4294967295, this=0x11d7bb58) at thread/qwaitcondition_unix.cpp:88
#4  QWaitCondition::wait (this=0x11d7b6a0, mutex=0x11d7b69c, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#5  0xb6cefdcb in QFileInfoGatherer::run (this=0x11d7b694) at dialogs/qfileinfogatherer.cpp:214
#6  0xb61237b3 in QThreadPrivate::start (arg=0x11d7b694) at thread/qthread_unix.cpp:331
#7  0xb4fd4d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#8  0xb77530ce in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 2 (Thread 0xab37cb70 (LWP 4186)):
#0  0xb4d27d10 in clock_gettime () from /lib/i386-linux-gnu/librt.so.1
#1  0xb617a7d5 in do_gettime (frac=0xab37c130, sec=0xab37c128) at tools/qelapsedtimer_unix.cpp:123
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0xb624d4b6 in QTimerInfoList::updateCurrentTime (this=0x11d9e9a8) at kernel/qeventdispatcher_unix.cpp:339
#4  0xb624d80a in QTimerInfoList::timerWait (this=0x11d9e9a8, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0xb624f4de in QEventDispatcherUNIX::processEvents (this=0x11d997b8, flags=...) at kernel/qeventdispatcher_unix.cpp:905
#6  0xb621d1dd in QEventLoop::processEvents (this=0xab37c2a0, flags=...) at kernel/qeventloop.cpp:149
#7  0xb621d421 in QEventLoop::exec (this=0xab37c2a0, flags=...) at kernel/qeventloop.cpp:201
#8  0xb612090b in QThread::exec (this=0x11d7bd70) at thread/qthread.cpp:498
#9  0xb61fde2d in QInotifyFileSystemWatcherEngine::run (this=0x11d7bd70) at io/qfilesystemwatcher_inotify.cpp:248
#10 0xb61237b3 in QThreadPrivate::start (arg=0x11d7bd70) at thread/qthread_unix.cpp:331
#11 0xb4fd4d31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#12 0xb77530ce in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 1 (Thread 0xb41de950 (LWP 4164)):
[KCrash Handler]
#7  QString (other=) at /usr/include/qt4/QtCore/qstring.h:728
#8  KoCompositeOp::id (this=0x0) at /build/buildd/calligra-2.3.86/libs/pigment/KoCompositeOp.cpp:112
#9  0xb2b4a443 in KisDlgLayerProperties::KisDlgLayerProperties (this=0x1a06b8a0, layer=..., view=0xbf9bf908, doc=0xbf9bf908, parent=0xbf9bf908, name=0xbf9bf908 "\360\245J\032\240\177\065\266\060", f=...) at /build/buildd/calligra-2.3.86/krita/ui/dialogs/kis_dlg_layer_properties.cc:109
#10 0xb2bdb51d in KisLayerManager::layerProperties (this=0x11f60978) at /build/buildd/calligra-2.3.86/krita/ui/kis_layer_manager.cc:273
#11 0xb2beb138 in KisNodeManager::nodeProperties (this=0x11f60910, node=...) at /build/buildd/calligra-2.3.86/krita/ui/kis_node_manager.cpp:381
#12 0xad09a7b0 in KisLayerBox::slotPropertiesClicked (this=0x11ea5e68) at /build/buildd/calligra-2.3.86/krita/plugins/extensions/dockers/defaultdockers/kis_layer_box.cpp:552
#13 0xad09af3d in KisLayerBox::qt_metacall (this=0x11ea5e68, _c=QMetaObject::InvokeMetaMethod, _id=16, _a=0xbf9bfbf8) at /build/buildd/calligra-2.3.86/obj-i686-linux-gnu/krita/plugins/extensions/dockers/defaultdockers/kis_layer_box.moc:139
#14 0xb6224b7d in metacall (argv=0xbf9bfbf8, idx=50, cl=QMetaObject::InvokeMetaMethod, object=0x11ea5e68) at kernel/qmetaobject.cpp:237
#15 QMetaObject::metacall (object=0x11ea5e68, cl=QMetaObject::InvokeMetaMethod, idx=50, argv=0xbf9bfbf8) at kernel/qmetaobject.cpp:232
#16 0xb6233a6a in QMetaObject::activate (sender=0x11ebec28, m=0xb70d5a28, local_signal_index=2, argv=0xbf9bfbf8) at kernel/qobject.cpp:3278
#17 0xb6e8ee6d in QAbstractButton::clicked (this=0x11ebec28, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:206
#18 0xb6b8d5dd in QAbstractButtonPrivate::emitClicked (this=0x11ebec40) at widgets/qabstractbutton.cpp:546
#19 0xb6b8ec4b in QAbstractButtonPrivate::click (this=0x11ebec40) at widgets/qabstractbutton.cpp:539
#20 0xb6b8ef06 in QAbstractButton::mouseReleaseEvent (this=0x11ebec28, e=0xbf9c01bc) at widgets/qabstractbutton.cpp:1121
#21 0xb6c6625d in QToolButton::mouseReleaseEvent (this=0x11ebec28, e=0xbf9c01bc) at widgets/qtoolbutton.cpp:721
#22 0xb67d3fc8 in QWidget::event (this=0x11ebec28, event=0xbf9c01bc) at kernel/qwidget.cpp:8295
#23 0xb6b8e1a9 in QAbstractButton::event (this=0x11ebec28, e=0xbf9c01bc) at widgets/qabstractbutton.cpp:1080
#24 0xb6c6799c in QToolButton::event (this=0x11ebec28, event=0xbf9c01bc) at widgets/qtoolbutton.cpp:1163
#25 0xb6779d84 in notify_helper (e=0xbf9c01bc, receiver=0x11ebec28, this=0xa058af8) at kernel/qapplication.cpp:4486
#26 QApplicationPrivate::notify_helper (this=0xa058af8, receiver=0x11ebec28, e=0xbf9c01bc) at kernel/qapplication.cpp:4458
#27 0xb677fdeb in QApplication::notify (this=0xa058af8, receiver=0x11ebec28, e=0xbf9c01bc) at kernel/qapplication.cpp:4047
#28 0xb72d0011 in KApplication::notify (this=0xbf9c0830, receiver=0x11ebec28, event=0xbf9c01bc) at ../../kdeui/kernel/kapplication.cpp:311
#29 0xb621e19e in QCoreApplication::notifyInternal (this=0xbf9c0830, receiver=0x11ebec28, event=0xbf9c01bc) at kernel/qcoreapplication.cpp:787
#30 0xb677ad45 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#31 QApplicationPrivate::sendMouseEvent (receiver=0x11ebec28, event=0xbf9c01bc, alienWidget=0x11ebec28, nativeWidget=0x11ea5e68, buttonDown=0xb70e4eb4, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3146
#32 0xb6807304 in QETWidget::translateMouseEvent (this=0x11ea5e68, event=0xbf9c063c) at kernel/qapplication_x11.cpp:4571
#33 0xb6805e8d in QApplication::x11ProcessEvent (this=0xbf9c0830, event=0xbf9c063c) at kernel/qapplication_x11.cpp:3693
#34 0xb6832e78 in QEventDispatcherX11::processEvents (this=0xa003248, flags=...) at kernel/qeventdispatcher_x11.cpp:132
#35 0xb621d1dd in QEventLoop::processEvents (this=0xbf9c07c4, flags=...) at kernel/qeventloop.cpp:149
#36 0xb621d421 in QEventLoop::exec (this=0xbf9c07c4, flags=...) at kernel/qeventloop.cpp:201
#37 0xb622219d in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064
#38 0xb6777924 in QApplication::exec () at kernel/qapplication.cpp:3760
#39 0xb781a831 in kdemain (argc=1, argv=0xbf9c0944) at /build/buildd/calligra-2.3.86/krita/main.cc:71
#40 0x0804850b in main (argc=1, argv=0xbf9c0944) at /build/buildd/calligra-2.3.86/obj-i686-linux-gnu/krita/krita_dummy.cpp:3

Reported using DrKonqi
Comment 1 Halla Rempt 2012-01-27 09:33:20 UTC
Hi Robert,

Thanks for your report -- but I'm not I completely get it. There's no "darken" filter and the crash seems to happen in the layer properties dialog. I get the impression that you opened the layer properties dialog and selected a composite mode from the "darken" section. Is that correct? If I do that with an RGBA/8 image, there is no crash. Which color model/channel depth was your image?
Comment 2 Robert Downing 2012-01-27 14:24:43 UTC
Sorry, you are correct. 

Image info: w 4375 h 2394; reso 72 ppi; model RGB; depth 8bits; profile Apple RGB

A recovery version had been saved, which I can attach if it would help (would need instruction on how to find it), but I was attempting to darken a selected portion of a person's forehead (to remove the shine).
Comment 3 Sven Langkamp 2012-01-30 01:30:37 UTC
Are you able to reproduce the bug? If so, could you describe the steps needed?
Comment 4 Dmitry Kazakov 2012-02-03 09:58:28 UTC
I had almost the same bug in my branch, but in KisLayerBox. It happened when the selection mask which was a child of the root node was activated. The composite op of the root node is null (intentively), so the crash happened.

This crash can be reproduced in the following way:

1) Activate ShowRootLayer option
2) Open properties of the root layer.

I'll fix it in KisDlgLayerProperties
Comment 5 Dmitry Kazakov 2012-02-03 10:36:33 UTC
Git commit 6c8a221448375cc8aee9807cb422a3f988b72ac0 by Dmitry Kazakov.
Committed on 03/02/2012 at 12:26.
Pushed by dkazakov into branch 'shapes-as-node-model-kazakov'.

Fixed a crash in KisDlgLayerProperties

The root layer will not have a compositeOp, because it is
meaningless for it. Actually, it doesn't have layer flags and
opacity as well, but this is a different bug.

M  +22   -14   krita/ui/dialogs/kis_dlg_layer_properties.cc
M  +3    -0    krita/ui/dialogs/kis_dlg_layer_properties.h

http://commits.kde.org/calligra/6c8a221448375cc8aee9807cb422a3f988b72ac0