https://bugs.kde.org/show_bug.cgi?id=386498
Bug ID: 386498 Summary: Crash with multithreaded brushes.(segfault with gdb backtrace) Product: krita Version: git master Platform: Other OS: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: Brush engines Assignee: krita-bugs-n...@kde.org Reporter: griffinval...@gmail.com Target Milestone: --- Might be related to 386497. This one happens with predefined brushes while I was testing rad's sharpness patch. As I cannot see sharpness mentioned in the backtrace, I suspect it is a general bug: Backtrace ---------- Thread 617 "Thread (pooled)" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fffbffff700 (LWP 32354)] KisDabRenderingQueue::addDab (this=0x7fffb805b910, request=..., opacity=<optimized out>, flow=<optimized out>) at /home/wolthera/krita/src/plugins/paintops/defaultpaintops/brush/KisDabRenderingQueue.cpp:177 177 if (m_d->jobs[lastDabJobIndex]->status == KisDabRenderingJob::Completed) { (gdb) thread apply all backtrace Thread 620 (Thread 0x7fffc5bd0700 (LWP 32357)): #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 #1 0x00007ffff590cae5 in QBasicMutex::lockInternal() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007ffff590cb47 in QMutex::lock() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #3 0x00007fffc75758c8 in QMutexLocker::QMutexLocker (m=0x7fffb805b0a0, this=<synthetic pointer>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:200 #4 KisDabRenderingQueue::fetchCachedPaintDevce (this=this@entry=0x7fffb805b910) at /home/wolthera/krita/src/plugins/paintops/defaultpaintops/brush/KisDabRenderingQueue.cpp:372 #5 0x00007fffc7577eb8 in KisDabRenderingJobRunner::executeOneJob (job=0x7fffac1c2b50, resources=resources@entry= 0x7fffb4152830, parentQueue=0x7fffb805b910) at /home/wolthera/krita/src/plugins/paintops/defaultpaintops/brush/KisDabRenderingJob.cpp:122 #6 0x00007fffc7577fef in KisDabRenderingJobRunner::run (this=0x7fffac08bcb0) at /home/wolthera/krita/src/plugins/paintops/defaultpaintops/brush/KisDabRenderingJob.cpp:146 #7 0x00007ffff777ab1f in FreehandStrokeStrategy::doStrokeCallback (this=0x18116f10, data=0x7fffac043480) at /home/wolthera/krita/src/libs/ui/tool/strokes/freehand_stroke.cpp:223 #8 0x00007ffff30f7626 in KisStrokeJob::run (this=<optimized out>) at /home/wolthera/krita/build/libs/image/../../../src/libs/image/kis_stroke_job.h:44 #9 KisUpdateJobItem::run (this=0x12b488e0) at /home/wolthera/krita/build/libs/image/../../../src/libs/image/kis_update_job_item.h:90 #10 0x00007ffff5911c73 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #11 0x00007ffff5915989 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #12 0x00007fffef8866ba in start_thread (arg=0x7fffc5bd0700) at pthread_create.c:333 #13 0x00007ffff500c3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 ---Type <return> to continue, or q <return> to quit--- Thread 619 (Thread 0x7fffc53cf700 (LWP 32356)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225 #1 0x00007ffff5916826 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007ffff5911e9a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #3 0x00007ffff5915989 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007fffef8866ba in start_thread (arg=0x7fffc53cf700) at pthread_create.c:333 #5 0x00007ffff500c3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 618 (Thread 0x7fffc4bce700 (LWP 32355)): #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38 #1 0x00007ffff590cae5 in QBasicMutex::lockInternal() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007ffff590cb47 in QMutex::lock() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #3 0x00007fffc7574aee in QMutexLocker::QMutexLocker (m=0x7fffb805b0a0, this=<synthetic pointer>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmutex.h:200 #4 KisDabRenderingQueue::notifyJobFinished (this=0x7fffb805b910, seqNo=92, usecsTime=3633) at /home/wolthera/krita/src/plugins/paintops/defaultpaintops/brush/KisDabRenderingQueue.cpp:209 #5 0x00007fffc757800a in KisDabRenderingJobRunner::run (this=0x7fffb800f4d0) at /home/wolthera/krita/src/plugins/paintops/defaultpaintops/brush/KisDabRenderingJob.cpp:147 #6 0x00007ffff777ab1f in FreehandStrokeStrategy::doStrokeCallback (this=0x18116f10, data=0x7fffb82296f0) at /home/wolthera/krita/src/libs/ui/tool/strokes/freehand_stroke.cpp:223 #7 0x00007ffff30f7626 in KisStrokeJob::run (this=<optimized out>) at /home/wolthera/krita/build/libs/image/../../../src/libs/image/kis_stroke_job.h:44 #8 KisUpdateJobItem::run (this=0x12b484f0) at /home/wolthera/krita/build/libs/image/../../../src/libs/image/kis_update_job_item.h:90 ---Type <return> to continue, or q <return> to quit--- #9 0x00007ffff5911c73 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #10 0x00007ffff5915989 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #11 0x00007fffef8866ba in start_thread (arg=0x7fffc4bce700) at pthread_create.c:333 #12 0x00007ffff500c3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 617 (Thread 0x7fffbffff700 (LWP 32354)): #0 KisDabRenderingQueue::addDab (this=0x7fffb805b910, request=..., opacity=<optimized out>, flow=<optimized out>) at /home/wolthera/krita/src/plugins/paintops/defaultpaintops/brush/KisDabRenderingQueue.cpp:177 #1 0x00007fffc757881e in KisDabRenderingExecutor::addDab (this=0x7fffb805b880, request=..., opacity=<optimized out>, flow=<optimized out>) at /home/wolthera/krita/src/plugins/paintops/defaultpaintops/brush/KisDabRenderingExecutor.cpp:61 #2 0x00007fffc756d271 in KisBrushOp::paintAt (this=0x7fffb8099900, info=...) at /home/wolthera/krita/src/plugins/paintops/defaultpaintops/brush/kis_brushop.cpp:161 #3 0x00007ffff2ef1eba in KisPaintInformation::paintAt<KisPaintOp> (distanceInfo=0x18158c70, op=..., this=0x7fffbfffe8e0) at /home/wolthera/krita/src/libs/image/brushengine/kis_paint_information.h:115 #4 KisPaintOpUtils::paintLine<KisPaintOp> (op=..., pi1=..., pi2=..., currentDistance=currentDistance@entry=0x18158c70, fanCornersEnabled=true, fanCornersStep=0.20943951023931953) at /home/wolthera/krita/src/libs/image/brushengine/kis_paintop_utils.h:96 #5 0x00007ffff2ef1933 in KisPaintOp::paintLine (this=this@entry=0x7fffb8099900, pi1=..., pi2=..., currentDistance=currentDistance@entry=0x18158c70) at /home/wolthera/krita/src/libs/image/brushengine/kis_paintop.cc:158 #6 0x00007fffc756fd60 in KisBrushOp::paintLine (this=0x7fffb8099900, pi1=..., pi2=..., currentDistance=0x18158c70) at /home/wolthera/krita/src/plugins/paintops/defaultpaintops/brush/kis_brushop.cpp:351 #7 0x00007ffff2ef0ff4 in paintBezierCurve (paintOp=0x7fffb8099900, pi1=..., control1=..., control2=..., pi2=..., ---Type <return> to continue, or q <return> to quit--- currentDistance=0x18158c70) at /home/wolthera/krita/src/libs/image/brushengine/kis_paintop.cc:125 #8 0x00007ffff2ef123a in KisPaintOp::paintBezierCurve (this=<optimized out>, pi1=..., control1=..., control2=..., pi2=..., currentDistance=<optimized out>) at /home/wolthera/krita/src/libs/image/brushengine/kis_paintop.cc:148 #9 0x00007ffff777aed2 in FreehandStrokeStrategy::doStrokeCallback (this=0x18116f10, data=<optimized out>) at /home/wolthera/krita/src/libs/ui/tool/strokes/freehand_stroke.cpp:185 #10 0x00007ffff30f7626 in KisStrokeJob::run (this=<optimized out>) at /home/wolthera/krita/build/libs/image/../../../src/libs/image/kis_stroke_job.h:44 #11 KisUpdateJobItem::run (this=0x12b48a30) at /home/wolthera/krita/build/libs/image/../../../src/libs/image/kis_update_job_item.h:90 #12 0x00007ffff5911c73 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #13 0x00007ffff5915989 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #14 0x00007fffef8866ba in start_thread (arg=0x7fffbffff700) at pthread_create.c:333 #15 0x00007ffff500c3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 11 (Thread 0x7fff97fff700 (LWP 31733)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007ffff59168eb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007ffff6672d8a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #3 0x00007ffff5915989 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007fffef8866ba in start_thread (arg=0x7fff97fff700) at pthread_create.c:333 #5 0x00007ffff500c3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 10 (Thread 0x7fffaa0b4700 (LWP 31732)): ---Type <return> to continue, or q <return> to quit--- #0 0x00007ffff500070d in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007fffee28e38c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007fffee28e49c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007ffff5b3e92f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007ffff5ae77ca in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #5 0x00007ffff5910cd4 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #6 0x00007fffdc4800c5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 #7 0x00007ffff5915989 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #8 0x00007fffef8866ba in start_thread (arg=0x7fffaa0b4700) at pthread_create.c:333 #9 0x00007ffff500c3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 9 (Thread 0x7fffa98b3700 (LWP 31731)): #0 0x00007ffff4fd130d in nanosleep () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007ffff5b3e2ad in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #2 0x00007ffff5914d18 in QThread::msleep(unsigned long) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #3 0x00007ffff2ed3e2a in KisTileDataSwapper::run ( this=0x7ffff33b3c40 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder+64>) at /home/wolthera/krita/src/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:97 #4 0x00007ffff5915989 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #5 0x00007fffef8866ba in start_thread (arg=0x7fffa98b3700) at pthread_create.c:333 #6 0x00007ffff500c3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 3 (Thread 0x7fffd36e3700 (LWP 31720)): ---Type <return> to continue, or q <return> to quit--- #0 0x00007ffff500070d in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007fffee28e38c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007fffee28e49c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007ffff5b3e92f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007ffff5ae77ca in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #5 0x00007ffff5910cd4 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #6 0x00007fffefab1b75 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5 #7 0x00007ffff5915989 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #8 0x00007fffef8866ba in start_thread (arg=0x7fffd36e3700) at pthread_create.c:333 #9 0x00007ffff500c3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 2 (Thread 0x7fffded4a700 (LWP 31718)): #0 0x00007ffff500070d in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007ffff3611c62 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1 #2 0x00007ffff36138d7 in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1 #3 0x00007fffe1092329 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 #4 0x00007ffff5915989 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #5 0x00007fffef8866ba in start_thread (arg=0x7fffded4a700) at pthread_create.c:333 #6 0x00007ffff500c3dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109 Thread 1 (Thread 0x7fffe11c3900 (LWP 31714)): #0 0x00007ffff500070d in poll () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007fffee28e38c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 ---Type <return> to continue, or q <return> to quit--- #2 0x00007fffee28e49c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007ffff5b3e92f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007ffff5ae77ca in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #5 0x00007ffff5af0704 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #6 0x00000000004052e2 in main (argc=1, argv=<optimized out>) at /home/wolthera/krita/src/krita/main.cc:305 (gdb) (gdb) -- You are receiving this mail because: You are watching all bug changes.