Bug 265362

Summary: Painting on mask layer get crash
Product: [Applications] krita Reporter: sinozzuke <sinozzuke>
Component: GeneralAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: cberger
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:

Description sinozzuke 2011-02-04 04:51:58 UTC
Application: krita (2.4 Alpha 1)
KDE Platform Version: 4.6.00 (4.6.0)
Qt Version: 4.7.1
Operating System: Linux 2.6.34.7-0.7-desktop x86_64
Distribution: "openSUSE 11.3 (x86_64)"

-- Information about the crash:
- What I was doing when the application crashed:
Make a new layer
Make a mask layer on it
choose a brush
choose black color
paint on mask layer
get the crash

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

Thread 5 (Thread 0x7fc60647f710 (LWP 395)):
#0  0x00007fffbfb18851 in clock_gettime ()
#1  0x00007fc62ae752a3 in clock_gettime () from /lib64/librt.so.1
#2  0x00007fc633ee6522 in do_gettime () at tools/qelapsedtimer_unix.cpp:123
#3  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#4  0x00007fc633faa4ad in QTimerInfoList::updateCurrentTime (this=0x1096da0) at kernel/qeventdispatcher_unix.cpp:339
#5  0x00007fc633faa835 in QTimerInfoList::timerWait (this=0x1096da0, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#6  0x00007fc633facdc1 in QEventDispatcherUNIX::processEvents (this=0x1014210, flags=...) at kernel/qeventdispatcher_unix.cpp:920
#7  0x00007fc633f7e262 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#8  0x00007fc633f7e475 in QEventLoop::exec (this=0x7fc60647ece0, flags=...) at kernel/qeventloop.cpp:201
#9  0x00007fc633e911a4 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#10 0x00007fc633f5f918 in QInotifyFileSystemWatcherEngine::run (this=0x108a610) at io/qfilesystemwatcher_inotify.cpp:248
#11 0x00007fc633e93a1e in QThreadPrivate::start (arg=0x108a610) at thread/qthread_unix.cpp:285
#12 0x00007fc6320caae3 in ?? () from /usr/lib64/libGL.so.1
#13 0x00007fc633c04a4f in start_thread () from /lib64/libpthread.so.0
#14 0x00007fc62b76982d in clone () from /lib64/libc.so.6
#15 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fc605140710 (LWP 407)):
#0  0x00007fc633c0939c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fc633e9410b in wait (this=<value optimized out>, mutex=0x137de80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x137de80, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007fc633e90a95 in QSemaphore::acquire (this=0x144b4c0, n=1) at thread/qsemaphore.cpp:144
#4  0x00007fc6330d807e in KisTileDataPooler::waitForWork (this=0x144b4b0) at /home/sinozzuke/kde4/calligra/src/krita/image/tiles3/kis_tile_data_pooler.cc:127
#5  0x00007fc6330d813c in KisTileDataPooler::run (this=0x144b4b0) at /home/sinozzuke/kde4/calligra/src/krita/image/tiles3/kis_tile_data_pooler.cc:156
#6  0x00007fc633e93a1e in QThreadPrivate::start (arg=0x144b4b0) at thread/qthread_unix.cpp:285
#7  0x00007fc6320caae3 in ?? () from /usr/lib64/libGL.so.1
#8  0x00007fc633c04a4f in start_thread () from /lib64/libpthread.so.0
#9  0x00007fc62b76982d in clone () from /lib64/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fc60493f710 (LWP 408)):
#0  0x00007fc633c0939c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007fc633e9410b in wait (this=<value optimized out>, mutex=0x1433090, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x1433090, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007fc633e90cc9 in QSemaphore::tryAcquire (this=0x14c8c80, n=1, timeout=-1) at thread/qsemaphore.cpp:221
#4  0x00007fc63311385a in KisTileDataSwapper::run (this=0x144b4e0) at /home/sinozzuke/kde4/calligra/src/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:90
#5  0x00007fc633e93a1e in QThreadPrivate::start (arg=0x144b4e0) at thread/qthread_unix.cpp:285
#6  0x00007fc6320caae3 in ?? () from /usr/lib64/libGL.so.1
#7  0x00007fc633c04a4f in start_thread () from /lib64/libpthread.so.0
#8  0x00007fc62b76982d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fc602e16710 (LWP 503)):
[KCrash Handler]
#6  KisUniformColorSource::applyColorTransformation (this=0x63e5ea0, transfo=0x0) at /home/sinozzuke/kde4/calligra/src/krita/plugins/paintops/libpaintop/kis_color_source.cpp:77
#7  0x00007fc60f71aae2 in KisPressureDarkenOption::apply (this=<value optimized out>, colorSource=0x63e5ea0, info=<value optimized out>)
    at /home/sinozzuke/kde4/calligra/src/krita/plugins/paintops/libpaintop/kis_pressure_darken_option.cpp:58
#8  0x00007fc60e537c98 in KisBrushOp::paintAt (this=0x735aa20, info=...) at /home/sinozzuke/kde4/calligra/src/krita/plugins/paintops/defaultpaintops/brush/kis_brushop.cpp:134
#9  0x00007fc6331260e0 in KisPaintOp::paintLine (this=0x735aa20, pi1=..., pi2=..., savedDist=<value optimized out>) at /home/sinozzuke/kde4/calligra/src/krita/image/brushengine/kis_paintop.cc:194
#10 0x00007fc60e536de1 in KisBrushOp::paintLine (this=0x735aa20, pi1=..., pi2=..., savedDist=...) at /home/sinozzuke/kde4/calligra/src/krita/plugins/paintops/defaultpaintops/brush/kis_brushop.cpp:196
#11 0x00007fc6331269cb in paintBezierCurve (paintOp=0x735aa20, pi1=..., control1=..., control2=..., pi2=..., savedDist=...)
    at /home/sinozzuke/kde4/calligra/src/krita/image/brushengine/kis_paintop.cc:133
#12 0x00007fc633126a45 in KisPaintOp::paintBezierCurve (this=<value optimized out>, pi1=<value optimized out>, control1=<value optimized out>, control2=<value optimized out>, 
    pi2=<value optimized out>, savedDist=<value optimized out>) at /home/sinozzuke/kde4/calligra/src/krita/image/brushengine/kis_paintop.cc:160
#13 0x00007fc63311476d in KisPainter::paintBezierCurve (this=0xf5c500, pi1=..., control1=..., control2=..., pi2=..., savedDist=...) at /home/sinozzuke/kde4/calligra/src/krita/image/kis_painter.cc:849
#14 0x00007fc6338d8f8f in FreehandPaintBezierJob::run (this=0x13ce7b0) at /home/sinozzuke/kde4/calligra/src/krita/ui/tool/kis_tool_freehand_p.cpp:110
#15 0x00007fc633e89e08 in QThreadPoolThread::run (this=0x28aec30) at concurrent/qthreadpool.cpp:106
#16 0x00007fc633e93a1e in QThreadPrivate::start (arg=0x28aec30) at thread/qthread_unix.cpp:285
#17 0x00007fc6320caae3 in ?? () from /usr/lib64/libGL.so.1
#18 0x00007fc633c04a4f in start_thread () from /lib64/libpthread.so.0
#19 0x00007fc62b76982d in clone () from /lib64/libc.so.6
#20 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fc6346747a0 (LWP 394)):
#0  0x00007fc62b7606b3 in poll () from /lib64/libc.so.6
#1  0x00007fc62722bc0a in ?? () from /usr/lib64/libxcb.so.1
#2  0x00007fc62722cdaf in xcb_wait_for_reply () from /usr/lib64/libxcb.so.1
#3  0x00007fc63191ac33 in _XReply () from /usr/lib64/libX11.so.6
#4  0x00007fc63190ff7d in XTranslateCoordinates () from /usr/lib64/libX11.so.6
#5  0x00007fc62cd52b5e in QWidget::mapFromGlobal (this=<value optimized out>, pos=<value optimized out>) at kernel/qwidget_x11.cpp:1323
#6  0x00007fc62ccc8ace in QApplication::notify (this=<value optimized out>, receiver=0x2130530, e=0x7fffbfa2bdc0) at kernel/qapplication.cpp:4026
#7  0x00007fc62d92bec6 in KApplication::notify (this=0x7fffbfa2c910, receiver=0x2130530, event=0x7fffbfa2bdc0) at /usr/src/debug/kdelibs-4.6.0/kdeui/kernel/kapplication.cpp:311
#8  0x00007fc633f7ee2c in QCoreApplication::notifyInternal (this=0x7fffbfa2c910, receiver=0x2130530, event=0x7fffbfa2bdc0) at kernel/qcoreapplication.cpp:732
#9  0x00007fc62ccc0cd5 in sendEvent (receiver=0x2130530, event=0x7fffbfa2bdc0, alienWidget=0x0, nativeWidget=0x2130530, buttonDown=0x7fc62d79b178, lastMouseReceiver=..., spontaneous=true)
    at ../../src/corelib/kernel/qcoreapplication.h:215
#10 QApplicationPrivate::sendMouseEvent (receiver=0x2130530, event=0x7fffbfa2bdc0, alienWidget=0x0, nativeWidget=0x2130530, buttonDown=0x7fc62d79b178, lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:3105
#11 0x00007fc62cd3eef8 in QETWidget::translateMouseEvent (this=0x2130530, event=<value optimized out>) at kernel/qapplication_x11.cpp:4438
#12 0x00007fc62cd3d5d9 in QApplication::x11ProcessEvent (this=0x7fffbfa2c910, event=0x7fffbfa2c730) at kernel/qapplication_x11.cpp:3564
#13 0x00007fc62cd65c04 in QEventDispatcherX11::processEvents (this=0x659580, flags=...) at kernel/qeventdispatcher_x11.cpp:132
#14 0x00007fc633f7e262 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#15 0x00007fc633f7e475 in QEventLoop::exec (this=0x7fffbfa2c8c0, flags=...) at kernel/qeventloop.cpp:201
#16 0x00007fc633f828db in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#17 0x00007fc6342b63f5 in kdemain (argc=<value optimized out>, argv=<value optimized out>) at /home/sinozzuke/kde4/calligra/src/krita/main.cc:49
#18 0x00007fc62b6b7b7d in __libc_start_main () from /lib64/libc.so.6
#19 0x0000000000400929 in _start () at ../sysdeps/x86_64/elf/start.S:113

Reported using DrKonqi
Comment 1 Cyrille Berger 2011-02-04 10:46:02 UTC
It happen when the "darken" option is selected (which I had a lot of trouble to enable...). This is "logical" since there is no darken option in alpha colorspace.
Comment 2 Cyrille Berger 2011-02-12 16:34:42 UTC
Git commit 80f4b3bc959e15546361711e6608c322aa5a1392 by Cyrille Berger.
Committed on 12/02/2011 at 16:31.
Pushed by berger into branch 'master'.

Fix: crash when drawing on a mask with a darken enabled brush

BUG: 265362

M  +2    -1    krita/plugins/paintops/libpaintop/kis_pressure_darken_option.cpp     

http://commits.kde.org/calligra/80f4b3bc959e15546361711e6608c322aa5a1392