Bug 346990 - Drawing rectangle in selected area
Summary: Drawing rectangle in selected area
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: General (other bugs)
Version First Reported In: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2015-05-01 00:39 UTC by romuluspb
Modified: 2015-05-01 09:06 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description romuluspb 2015-05-01 00:39:16 UTC
Application: krita (2.9.2)
KDE Platform Version: 4.14.6
Qt Version: 4.8.6
Operating System: Linux 3.19.0-15-generic x86_64
Distribution: Ubuntu 15.04

-- Information about the crash:
I tried it without a selection, it did not crash, but with canvas completely selected it crashed always, the rectangle was pattern filled and brush outlined

The crash can be reproduced every time.

-- Backtrace:
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 0x7f36bf3367c0 (LWP 4894))]

Thread 6 (Thread 0x7f36a003a700 (LWP 4901)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f36bd11bc56 in wait (time=18446744073709551615, this=0x2b6b420) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=mutex@entry=0x2b6b3d0, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f36bd117a7b in QSemaphore::acquire (this=this@entry=0x2b6b100, n=n@entry=1) at thread/qsemaphore.cpp:144
#4  0x00007f36bb9932fe in KisTileDataPooler::waitForWork (this=0x2b6b0f0) at /build/buildd/calligra-2.9.2/krita/image/tiles3/kis_tile_data_pooler.cc:162
#5  0x00007f36bb993727 in KisTileDataPooler::run (this=0x2b6b0f0) at /build/buildd/calligra-2.9.2/krita/image/tiles3/kis_tile_data_pooler.cc:184
#6  0x00007f36bd11b6ff in QThreadPrivate::start (arg=0x2b6b0f0) at thread/qthread_unix.cpp:349
#7  0x00007f36b74e46aa in start_thread (arg=0x7f36a003a700) at pthread_create.c:333
#8  0x00007f36bc8b6eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 5 (Thread 0x7f3695d20700 (LWP 4902)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f36bd11bc56 in wait (time=18446744073709551615, this=0x2b6b7d0) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=mutex@entry=0x2b6b780, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f36bd117eb3 in QSemaphore::tryAcquire (this=0x2b6b490, n=n@entry=1, timeout=timeout@entry=-1) at thread/qsemaphore.cpp:221
#4  0x00007f36bb9adb83 in KisTileDataSwapper::waitForWork (this=this@entry=0x2b6b128) at /build/buildd/calligra-2.9.2/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:86
#5  0x00007f36bb9ade3a in KisTileDataSwapper::run (this=0x2b6b128) at /build/buildd/calligra-2.9.2/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:92
#6  0x00007f36bd11b6ff in QThreadPrivate::start (arg=0x2b6b128) at thread/qthread_unix.cpp:349
#7  0x00007f36b74e46aa in start_thread (arg=0x7f3695d20700) at pthread_create.c:333
#8  0x00007f36bc8b6eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7f3694d1e700 (LWP 4904)):
#0  0x00007f36bc8ad743 in select () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f36bd252911 in qt_safe_select (nfds=22, fdread=fdread@entry=0x7f36785ee898, fdwrite=fdwrite@entry=0x7f36785eeb30, fdexcept=fdexcept@entry=0x7f36785eedc8, orig_timeout=orig_timeout@entry=0x0) at kernel/qcore_unix.cpp:79
#2  0x00007f36bd2583cf in select (timeout=0x0, exceptfds=0x7f36785eedc8, writefds=0x7f36785eeb30, readfds=0x7f36785ee898, nfds=<optimized out>, this=0x7f368c000910) at kernel/qeventdispatcher_unix.cpp:649
#3  QEventDispatcherUNIXPrivate::doSelect (this=this@entry=0x7f36785ee6e0, flags=..., timeout=0x0) at kernel/qeventdispatcher_unix.cpp:223
#4  0x00007f36bd258887 in QEventDispatcherUNIX::processEvents (this=0x7f368c000910, flags=...) at kernel/qeventdispatcher_unix.cpp:944
#5  0x00007f36bd224cd1 in QEventLoop::processEvents (this=this@entry=0x7f3694d1ddc0, flags=...) at kernel/qeventloop.cpp:149
#6  0x00007f36bd225035 in QEventLoop::exec (this=this@entry=0x7f3694d1ddc0, flags=...) at kernel/qeventloop.cpp:204
#7  0x00007f36bd118e89 in QThread::exec (this=this@entry=0x32a8c00) at thread/qthread.cpp:538
#8  0x00007f36bd205443 in QInotifyFileSystemWatcherEngine::run (this=0x32a8c00) at io/qfilesystemwatcher_inotify.cpp:265
#9  0x00007f36bd11b6ff in QThreadPrivate::start (arg=0x32a8c00) at thread/qthread_unix.cpp:349
#10 0x00007f36b74e46aa in start_thread (arg=0x7f3694d1e700) at pthread_create.c:333
#11 0x00007f36bc8b6eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7f369551f700 (LWP 4906)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007f36bd11bc56 in wait (time=18446744073709551615, this=0x3389bf0) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=this@entry=0x3389758, mutex=mutex@entry=0x3389750, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f36be1448dd in QFileInfoGatherer::run (this=0x3389740) at dialogs/qfileinfogatherer.cpp:214
#4  0x00007f36bd11b6ff in QThreadPrivate::start (arg=0x3389740) at thread/qthread_unix.cpp:349
#5  0x00007f36b74e46aa in start_thread (arg=0x7f369551f700) at pthread_create.c:333
#6  0x00007f36bc8b6eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f3687fff700 (LWP 4907)):
#0  QEventDispatcherUNIXPrivate::initThreadWakeUp (this=0x7f3680000930) at kernel/qeventdispatcher_unix.cpp:295
#1  0x00007f36bd258393 in QEventDispatcherUNIXPrivate::doSelect (this=this@entry=0x7f3680000930, flags=..., timeout=0x0) at kernel/qeventdispatcher_unix.cpp:216
#2  0x00007f36bd258887 in QEventDispatcherUNIX::processEvents (this=0x7f3680000910, flags=...) at kernel/qeventdispatcher_unix.cpp:944
#3  0x00007f36bd224cd1 in QEventLoop::processEvents (this=this@entry=0x7f3687ffedc0, flags=...) at kernel/qeventloop.cpp:149
#4  0x00007f36bd225035 in QEventLoop::exec (this=this@entry=0x7f3687ffedc0, flags=...) at kernel/qeventloop.cpp:204
#5  0x00007f36bd118e89 in QThread::exec (this=this@entry=0x3389cf0) at thread/qthread.cpp:538
#6  0x00007f36bd205443 in QInotifyFileSystemWatcherEngine::run (this=0x3389cf0) at io/qfilesystemwatcher_inotify.cpp:265
#7  0x00007f36bd11b6ff in QThreadPrivate::start (arg=0x3389cf0) at thread/qthread_unix.cpp:349
#8  0x00007f36b74e46aa in start_thread (arg=0x7f3687fff700) at pthread_create.c:333
#9  0x00007f36bc8b6eed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f36bf3367c0 (LWP 4894)):
[KCrash Handler]
#6  QImage::QImage (this=0x7ffe819a3000, image=...) at image/qimage.cpp:1094
#7  0x00007f36b8ca204d in KoPattern::pattern (this=<optimized out>) at /build/buildd/calligra-2.9.2/libs/pigment/resources/KoPattern.cpp:370
#8  0x00007f36bebb5fdb in KisToolShape::addShape (this=this@entry=0x737a400, shape=shape@entry=0x6b875f0) at /build/buildd/calligra-2.9.2/krita/ui/tool/kis_tool_shape.cc:170
#9  0x00007f369dee3265 in KisToolRectangle::finishRect (this=this@entry=0x737a400, rect=...) at /build/buildd/calligra-2.9.2/krita/plugins/tools/defaulttools/kis_tool_rectangle.cc:80
#10 0x00007f36bebb9765 in KisToolRectangleBase::endPrimaryAction (this=0x737a400, event=0x7ffe819a3260) at /build/buildd/calligra-2.9.2/krita/ui/tool/kis_tool_rectangle_base.cpp:190
#11 0x00007f36be9ee31d in KisToolProxy::forwardToTool (this=this@entry=0x3e97f10, state=state@entry=KisToolProxy::END, action=action@entry=KisTool::Primary, event=event@entry=0x7e6ead0, docPoint=...) at /build/buildd/calligra-2.9.2/krita/ui/canvas/kis_tool_proxy.cpp:180
#12 0x00007f36be9ee5c1 in KisToolProxy::forwardEvent (this=0x3e97f10, state=state@entry=KisToolProxy::END, action=action@entry=KisTool::Primary, event=event@entry=0x7ffe819a3530, originalEvent=originalEvent@entry=0x7ffe819a3530, lastTabletEvent=lastTabletEvent@entry=0x7e6ead0) at /build/buildd/calligra-2.9.2/krita/ui/canvas/kis_tool_proxy.cpp:119
#13 0x00007f36bec08c5b in KisToolInvocationAction::end (this=0x29189c0, event=0x7ffe819a3530) at /build/buildd/calligra-2.9.2/krita/ui/input/kis_tool_invocation_action.cpp:132
#14 0x00007f36bec11219 in KisShortcutMatcher::tryEndRunningShortcut (this=this@entry=0x29184d0, button=<optimized out>, event=event@entry=0x7ffe819a3530) at /build/buildd/calligra-2.9.2/krita/ui/input/kis_shortcut_matcher.cpp:439
#15 0x00007f36bec11c3a in KisShortcutMatcher::buttonReleased (this=0x29184d0, button=Qt::LeftButton, event=event@entry=0x7ffe819a3530) at /build/buildd/calligra-2.9.2/krita/ui/input/kis_shortcut_matcher.cpp:193
#16 0x00007f36bec047a5 in KisInputManager::eventFilter (this=0x2918400, object=<optimized out>, event=0x7ffe819a3530) at /build/buildd/calligra-2.9.2/krita/ui/input/kis_input_manager.cpp:658
#17 0x00007f36bec03e9f in KisInputManager::Private::handleKisTabletEvent (this=0x29184b0, object=object@entry=0x42f1e40, tevent=tevent@entry=0x7ffe819a3a90) at /build/buildd/calligra-2.9.2/krita/ui/input/kis_input_manager.cpp:898
#18 0x00007f36bec046d8 in KisInputManager::eventFilter (this=0x2918400, object=<optimized out>, event=0x7ffe819a3a90) at /build/buildd/calligra-2.9.2/krita/ui/input/kis_input_manager.cpp:829
#19 0x00007f36bd2262e6 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=this@entry=0x1f18fc0, receiver=receiver@entry=0x42f1e40, event=event@entry=0x7ffe819a3a90) at kernel/qcoreapplication.cpp:1065
#20 0x00007f36bdc3299c in QApplicationPrivate::notify_helper (this=this@entry=0x1f18fc0, receiver=receiver@entry=0x42f1e40, e=e@entry=0x7ffe819a3a90) at kernel/qapplication.cpp:4566
#21 0x00007f36bdc394d8 in QApplication::notify (this=0x7ffe819a43d0, receiver=receiver@entry=0x42f1e40, e=e@entry=0x7ffe819a3a90) at kernel/qapplication.cpp:4356
#22 0x00007f36bec38a27 in KisApplication::notify (this=<optimized out>, receiver=0x42f1e40, event=0x7ffe819a3a90) at /build/buildd/calligra-2.9.2/krita/ui/KisApplication.cpp:488
#23 0x00007f36bd22617d in QCoreApplication::notifyInternal (this=0x7ffe819a43d0, receiver=receiver@entry=0x42f1e40, event=event@entry=0x7ffe819a3a90) at kernel/qcoreapplication.cpp:955
#24 0x00007f36becc181c in sendEvent (event=0x7ffe819a3a90, receiver=0x42f1e40) at /usr/include/qt4/QtCore/qcoreapplication.h:231
#25 translateXinputEvent (ev=ev@entry=0x7ffe819a3e10, tablet=tablet@entry=0x20055a0, defaultWidget=<optimized out>) at /build/buildd/calligra-2.9.2/krita/ui/input/wintab/kis_tablet_support_x11.cpp:732
#26 0x00007f36becc1e81 in KisTabletSupportX11::eventFilter (ev=0x7ffe819a3e10) at /build/buildd/calligra-2.9.2/krita/ui/input/wintab/kis_tablet_support_x11.cpp:802
#27 0x00007f36bdca02e5 in qt_x11EventFilter (ev=0x7ffe819a3e10) at kernel/qapplication_x11.cpp:432
#28 0x00007f36bdcb0d0b in QApplication::x11ProcessEvent (this=0x7ffe819a43d0, event=event@entry=0x7ffe819a3e10) at kernel/qapplication_x11.cpp:3460
#29 0x00007f36bdcdb52c in QEventDispatcherX11::processEvents (this=0x1cae750, flags=...) at kernel/qeventdispatcher_x11.cpp:132
#30 0x00007f36bd224cd1 in QEventLoop::processEvents (this=this@entry=0x7ffe819a4070, flags=...) at kernel/qeventloop.cpp:149
#31 0x00007f36bd225035 in QEventLoop::exec (this=this@entry=0x7ffe819a4070, flags=...) at kernel/qeventloop.cpp:204
#32 0x00007f36bd22aab9 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1227
#33 0x00007f36bdc30c1c in QApplication::exec () at kernel/qapplication.cpp:3828
#34 0x0000000000402696 in main (argc=<optimized out>, argv=<optimized out>) at /build/buildd/calligra-2.9.2/krita/main.cc:179

Possible duplicates by query: bug 343758.

Reported using DrKonqi
Comment 1 Halla Rempt 2015-05-01 07:45:14 UTC
Hi!

Thanks for your report. I think I can reproduce something like it: it seems that there is no pattern selected by default. But the backtrace is different from yours!

krita(14849): "[
0: /usr/lib64/libkdecore.so.5(kRealBacktrace(int)+0x3b) [0x7f02c159b85b]
1: /home/boud/kde/inst/lib64/libkritaimage.so.14(KisPainter::Private::fillPainterPathImpl(QPainterPath const&, QRect const&)+0x921) [0x7f02c7b098d1]
2: /home/boud/kde/inst/lib64/libkritaimage.so.14(KisPainter::fillPainterPath(QPainterPath const&, QRect const&)+0x112) [0x7f02c7b09e82]
3: /home/boud/kde/inst/lib64/libkritaimage.so.14(KisPainter::fillPainterPath(QPainterPath const&)+0x19) [0x7f02c7b0a139]
4: /home/boud/kde/inst/lib64/libkritaimage.so.14(KisPainter::fillPolygon(QVector<QPointF> const&, KisPainter::FillStyle)+0xfb) [0x7f02c7b0a23b]
5: /home/boud/kde/inst/lib64/libkritaimage.so.14(KisPainter::paintPolygon(QVector<QPointF> const&)+0x255) [0x7f02c7b0a4c5]
6: /home/boud/kde/inst/lib64/libkritaimage.so.14(KisPainter::paintRect(QRectF const&)+0xec) [0x7f02c7b0a63c]
7: /home/boud/kde/inst/lib64/libkritaui.so.14(FreehandStrokeStrategy::doStrokeCallback(KisStrokeJobData*)+0x25d) [0x7f02c88e66bd]
8: /home/boud/kde/inst/lib64/libkritaimage.so.14(+0xe389c) [0x7f02c7ace89c]
9: /usr/lib64/libQtCore.so.4(+0x756ae) [0x7f02c10216ae]
10: /usr/lib64/libQtCore.so.4(+0x8179f) [0x7f02c102d79f]
11: /usr/X11R6/lib64/libGL.so.1(+0xaa754) [0x7f02c70a0754]
]
" 
ASSERT: "pattern != 0" in file /home/boud/kde/src/2.9/krita/image/kis_painter.cc, line 1352
Comment 2 romuluspb 2015-05-01 07:59:28 UTC
The archive I was working is different by now, but I noticed it have not only to be with selected areas, in fact I can confirm it ocurre always if:

The archive is opened in recent archives, in Krita start presentation windows, and the first thing done is selecting a vectorial layer, selecting rectangle with pattern as filing and then trying to draw a rectangle.

As the work was saved with all canvas covered by a selection area, It start with it, I did not tested if it occur without selected area.
Comment 3 Halla Rempt 2015-05-01 08:05:08 UTC
Ah, you were adding a rectangle on a vector layer. But the principle is the same: no active pattern.
Comment 4 Halla Rempt 2015-05-01 09:06:34 UTC
Git commit d4a24da810ecdd23b42953bd152f392464c4d614 by Boudewijn Rempt.
Committed on 01/05/2015 at 09:05.
Pushed by rempt into branch 'calligra/2.9'.

This removes the static_cast'ing of resources by using the qt metatype
system instead. Now we don't get weird void* pointers pointing into the
void.

M  +4    -0    krita/image/filter/kis_filter_configuration.h
M  +0    -2    krita/image/kis_painter.cc
M  +20   -10   krita/ui/kis_canvas_resource_provider.cpp
M  +3    -3    krita/ui/tool/kis_resources_snapshot.cpp
M  +17   -11   krita/ui/tool/kis_tool.cc
M  +3    -0    libs/pigment/resources/KoAbstractGradient.h
M  +4    -0    libs/pigment/resources/KoPattern.h

http://commits.kde.org/calligra/d4a24da810ecdd23b42953bd152f392464c4d614