Summary: | Crash on closing a document | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | Tiar <tamtamy.tymona> |
Component: | Color models | Assignee: | Dmitry Kazakov <dimula73> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | dimula73, griffinvalley, halla |
Priority: | NOR | ||
Version: | git master (please specify the git hash!) | ||
Target Milestone: | --- | ||
Platform: | Mint (Ubuntu based) | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/graphics/krita/commit/fd21c4a8ce2cdc9e2594c4e0899aa509fe82ce6d | Version Fixed In: | |
Sentry Crash Report: | |||
Attachments: |
gdb backtrace - thread apply all bt
gdb backtrace - thread apply all bt full |
Description
Tiar
2020-03-19 14:37:58 UTC
This is the only relevant bit of the backtrace Thread 2738 (Thread 0x7fff8bb05700 (LWP 5864)): #0 0x0000000000000064 in () #1 0x00007ffff6c33fec in KisCanvasUpdatesCompressor::putUpdateInfo(KisSharedPtr<KisUpdateInfo>) (this=0x55556f4d9a10, info=...) at /home/tymon/kritadev/krita/libs/global/kis_shared_ptr.h:179 #2 0x00007ffff6c2b174 in KisCanvas2::startUpdateCanvasProjection(QRect const&) (this=0x555576fb64a8, rc=...) at /usr/include/c++/8/bits/atomic_base.h:295 #3 0x00007ffff48e86db in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #4 0x00007ffff5eee4c2 in KisImage::sigImageUpdated(QRect const&) (this=this@entry=0x555582de9ff0, _t1=...) at /home/tymon/kritadev/build/libs/image/kritaimage_autogen/EWIEGA46WW/moc_kis_image.cpp:702 #5 0x00007ffff5ce1005 in KisImage::notifyProjectionUpdated(QRect const&) (rc=..., this=0x555582de9ff0) at /home/tymon/kritadev/krita/libs/image/kis_image.cc:2013 #6 0x00007ffff5ce1005 in KisImage::notifyProjectionUpdated(QRect const&) (this=0x555582de9ff0, rc=...) at /home/tymon/kritadev/krita/libs/image/kis_image.cc:2003 #7 0x00007ffff5cc271e in KisUpdateScheduler::continueUpdate(QRect const&) (this=<optimized out>, rect=...) at /home/tymon/kritadev/krita/libs/image/kis_update_scheduler.cpp:457 #8 0x00007ffff5ef5b1b in non-virtual thunk to KisUpdateJobItem::run() () at /usr/include/c++/8/bits/atomic_base.h:295 #9 0x00007ffff470ef71 in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #10 0x00007ffff4716c87 in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #11 0x00007ffff1992164 in start_thread (arg=<optimized out>) at pthread_create.c:486 #12 0x00007ffff3fe3def in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Created attachment 126891 [details]
gdb backtrace - thread apply all bt full
Since we have a backtrace, I'll set to confirmed. Okay, the crash happens because KisOpenGLCanvas2 object is being destroyed while KisImage is still sending updates to it. I need to do the inventory of the object ownership in the canvas code. Git commit 87175ca767bf6ed2c8738f81a9b957faaf84e7db by Dmitry Kazakov. Committed on 21/05/2021 at 08:27. Pushed by dkazakov into branch 'master'. Fix crash when closing Krita too quickly while some stroke is still rendering KisCanvas2 is directly connected to the image, therefore, it should not be destroyed before the the connection is removed and all the callers has completed their requests. M +6 -1 libs/ui/KisView.cpp M +16 -0 libs/ui/canvas/kis_canvas2.cpp M +1 -0 libs/ui/canvas/kis_canvas2.h https://invent.kde.org/graphics/krita/commit/87175ca767bf6ed2c8738f81a9b957faaf84e7db Git commit fd21c4a8ce2cdc9e2594c4e0899aa509fe82ce6d by Dmitry Kazakov. Committed on 01/06/2021 at 12:06. Pushed by dkazakov into branch 'krita/4.3'. Fix crash when closing Krita too quickly while some stroke is still rendering KisCanvas2 is directly connected to the image, therefore, it should not be destroyed before the the connection is removed and all the callers has completed their requests. # Conflicts: # libs/ui/KisView.cppgit M +6 -0 libs/ui/KisView.cpp M +16 -0 libs/ui/canvas/kis_canvas2.cpp M +1 -0 libs/ui/canvas/kis_canvas2.h https://invent.kde.org/graphics/krita/commit/fd21c4a8ce2cdc9e2594c4e0899aa509fe82ce6d |