Bug 173565 - Image type conversion crashs krita
Summary: Image type conversion crashs krita
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: 2.0
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2008-10-26 08:57 UTC by Fabian
Modified: 2008-11-04 00:03 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 Fabian 2008-10-26 08:57:12 UTC
Version:           2.0 beta-2 (using Devel)
OS:                Linux
Installed from:    Compiled sources

When converting an grayscale image to a RGB image, krita crashes on the next paint operation.


Backtrace:
Application: Krita (krita), signal SIGSEGV
[?1034hUsing host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 0xb40dc6f0 (LWP 16068)]
[New Thread 0xb01e6b90 (LWP 16076)]
[KCrash handler]
#6  0xb75469ee in KoColorSpace::bitBlt () from /usr/lib/libpigmentcms.so.5
#7  0xb78b0100 in KisPainter::bitBlt () from /usr/lib/libkritaimage.so.5
#8  0xb78eac27 in (anonymous namespace)::KisMergeVisitor::visit ()
   from /usr/lib/libkritaimage.so.5
#9  0xb78bc438 in KisPaintLayer::accept () from /usr/lib/libkritaimage.so.5
#10 0xb78ec2da in KisTopDownUpdateStrategy::updateGroupLayerProjection ()
   from /usr/lib/libkritaimage.so.5
#11 0xb787cbf3 in KisGroupLayer::updateProjection ()
   from /usr/lib/libkritaimage.so.5
#12 0xb78eb85e in KisTopDownUpdateStrategy::setDirty ()
   from /usr/lib/libkritaimage.so.5
#13 0xb789d24e in KisNode::setDirty () from /usr/lib/libkritaimage.so.5
#14 0xb78eba3b in KisTopDownUpdateStrategy::setDirty ()
   from /usr/lib/libkritaimage.so.5
#15 0xb789d4cd in KisNode::setDirty () from /usr/lib/libkritaimage.so.5
#16 0xb7c411c2 in KisToolFreehand::setDirty () from /usr/lib/libkritaui.so.5
#17 0xb7c43589 in FreehandPaintAtJob::run () from /usr/lib/libkritaui.so.5
#18 0xb7c432e5 in FreehandPaintJobExecutor::run ()
   from /usr/lib/libkritaui.so.5
#19 0xb7d60c9e in QThreadPrivate::start () from /usr/lib/libQtCore.so.4
#20 0xb7cea192 in start_thread () from /lib/libpthread.so.0
#21 0xb53ec02e in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb40dc6f0 (LWP 16068)):
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb53e5591 in select () from /lib/libc.so.6
#2  0xb5261205 in _xcb_conn_wait () from /usr/lib/libxcb.so.1
#3  0xb5262f56 in xcb_wait_for_reply () from /usr/lib/libxcb.so.1
#4  0xb79f8b0b in _XReply () from /usr/lib/libX11.so.6
#5  0xb79ede64 in XTranslateCoordinates () from /usr/lib/libX11.so.6
#6  0xb5be0050 in QWidget::mapFromGlobal () from /usr/lib/libQtGui.so.4
#7  0xb5be0093 in QWidget::mapFromGlobal () from /usr/lib/libQtGui.so.4
#8  0xb5be0093 in QWidget::mapFromGlobal () from /usr/lib/libQtGui.so.4
#9  0xb5be0093 in QWidget::mapFromGlobal () from /usr/lib/libQtGui.so.4
#10 0xb5be0093 in QWidget::mapFromGlobal () from /usr/lib/libQtGui.so.4
#11 0xb5be0093 in QWidget::mapFromGlobal () from /usr/lib/libQtGui.so.4
#12 0xb7472732 in KoDocument::hitTest () from /usr/lib/libkomain.so.5
#13 0xb7ba9bbb in KisDoc2::hitTest () from /usr/lib/libkritaui.so.5
#14 0xb68a513b in KParts::PartManager::findPartFromWidget ()
   from /usr/lib/libkparts.so.4
#15 0xb68a6ede in KParts::PartManager::eventFilter ()
   from /usr/lib/libkparts.so.4
#16 0xb74a0e8c in KoPartManager::eventFilter () from /usr/lib/libkomain.so.5
#17 0xb7e4e0f8 in QCoreApplicationPrivate::sendThroughApplicationEventFilters
    () from /usr/lib/libQtCore.so.4
#18 0xb5b5b143 in QApplicationPrivate::notify_helper ()
   from /usr/lib/libQtGui.so.4
#19 0xb5b601a5 in QApplication::notify () from /usr/lib/libQtGui.so.4
#20 0xb6ced2bd in KApplication::notify () from /usr/lib/libkdeui.so.5
#21 0xb7e4dcb9 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#22 0xb5b5f8b1 in QApplicationPrivate::sendMouseEvent ()
   from /usr/lib/libQtGui.so.4
#23 0xb5bc823f in QETWidget::translateMouseEvent () from /usr/lib/libQtGui.so.4
#24 0xb5bc7a30 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#25 0xb5bee62a in ?? () from /usr/lib/libQtGui.so.4
#26 0xb52a85d6 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#27 0xb52ab972 in ?? () from /usr/lib/libglib-2.0.so.0
#28 0x08078090 in ?? ()
#29 0x00000000 in ?? ()
#0  0xffffe410 in __kernel_vsyscall ()
Comment 1 Halla Rempt 2008-10-26 10:46:00 UTC
Confirmed (also, creating the image from the grayscale template gives very funny results.)
Comment 2 Elián Hanisch 2008-10-27 04:40:37 UTC
I can confirm it too, but I can't get a backtrace.

Found a workaround, after converting to rgb, if you hide and unhide the layer you can paint with the brush tool without a crash.
Comment 3 Cyrille Berger 2008-11-04 00:03:24 UTC
SVN commit 879756 by berger:

* emit signal when the color space of a paint device is changed
* change the composite ops when the color space of the current layer is changed

all in all it fix the crash on painting just after changing the colorspace of an image

BUG:173565

 M  +1 -0      image/kis_colorspace_convert_visitor.h  
 M  +1 -1      image/kis_paint_device.cc  
 M  +15 -1     ui/tool/kis_tool_paint.cc  
 M  +2 -5      ui/tool/kis_tool_paint.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=879756