Bug 434342

Summary: Crash on animation with a shape selection
Product: [Applications] krita Reporter: Tiar <tamtamy.tymona>
Component: AnimationAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED WORKSFORME    
Severity: crash CC: eoinoneill1991
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Mint (Ubuntu based)   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Crash log for all threads

Description Tiar 2021-03-12 21:38:58 UTC
Created attachment 136630 [details]
Crash log for all threads

SUMMARY
I had one image made and then I made another, dragged&dropped a few layers, then played the animation, then I tried to move the frames.
I got a safe assert, I clicked "Ignore" since I wanted to save documents first, I saved them, then I tried to move the frames again and it safe asserted again.

STEPS TO REPRODUCE
When I tried to reproduce it on fresh Krita with the same document, it didn't safe assert, so I don't have complete steps to reproduce.

OBSERVED RESULT
Crash

EXPECTED RESULT
No crash! :)

SOFTWARE/OS VERSIONS
Krita

 Version: 5.0.0-prealpha (git 4cb4711)
 Languages: pl_PL, pl, pl_PL, pl
 Hidpi: true

Qt

  Version (compiled): 5.11.1
  Version (loaded): 5.11.1

ADDITIONAL INFORMATION
QAbstractItemModel::endInsertColumns:  Invalid index ( 2 , 103 ) in model KisAnimTimelineFramesModel(0x55555eea5f70)
SAFE ASSERT (krita): "srcNode" in file /home/tymon/kritadev/krita/plugins/dockers/animation/KisAnimTimelineFramesModel.cpp, line 701
()
Empty filename passed to function
()
Empty filename passed to function
SAFE ASSERT (krita): "image" in file /home/tymon/kritadev/krita/libs/ui/flake/kis_shape_selection.cpp, line 86

Thread 1 "krita" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50	../sysdeps/unix/sysv/linux/raise.c: Nie ma takiego pliku ani katalogu.
(gdb) bt
#0  0x00007ffff3d65ed7 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007ffff3d47535 in __GI_abort () at abort.c:79
#2  0x00007ffff452f8d7 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007ffff563c3b8 in kis_assert_common(char const*, char const*, int, bool, bool) (assertion=0x7ffff7b19b0c "image", file=0x7ffff7aa7e30 "/home/tymon/kritadev/krita/libs/ui/flake/kis_shape_selection.cpp", line=86, throwException=false, isIgnorable=true) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h:206
#4  0x00007ffff563c81d in kis_safe_assert_recoverable(char const*, char const*, int) (assertion=assertion@entry=0x7ffff7b19b0c "image", file=file@entry=0x7ffff7aa7e30 "/home/tymon/kritadev/krita/libs/ui/flake/kis_shape_selection.cpp", line=line@entry=86) at /home/tymon/kritadev/krita/libs/global/kis_assert.cpp:107
#5  0x00007ffff6c84e30 in KisShapeSelection::init(KisSharedPtr<KisImage>, KoShapeControllerBase*) (this=0x55556992a550, image=..., shapeControllerBase=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qdebug.h:125
#6  0x00007ffff6c85d71 in KisShapeSelection::KisShapeSelection(KisShapeSelection const&, KisSelection*) (this=0x55556992a550, rhs=..., selection=<optimized out>) at /home/tymon/kritadev/krita/libs/global/kis_shared_ptr.h:419
#7  0x00007ffff6c866c6 in non-virtual thunk to KisShapeSelection::clone(KisSelection*) () at /home/tymon/kritadev/krita/libs/ui/flake/kis_shape_selection.cpp:108
#8  0x00007ffff5cd623c in KisSelection::copyFrom(KisSelection const&) (this=0x555570a67c40, rhs=...) at /home/tymon/kritadev/krita/libs/image/kis_selection.cc:233
#9  0x00007ffff5cd6829 in KisSelection::KisSelection(KisSelection const&) (this=0x555570a67c40, rhs=...) at /home/tymon/kritadev/krita/libs/image/kis_selection.cc:194
#10 0x00007ffff5c37263 in KisMask::KisMask(KisMask const&) (this=0x5555726e3d90, rhs=...) at /home/tymon/kritadev/krita/libs/global/kis_shared_ptr.h:136
#11 0x00007ffff5b626f9 in KisEffectMask::KisEffectMask(KisEffectMask const&) (this=0x5555726e3d90, rhs=...) at /home/tymon/kritadev/krita/libs/image/kis_effect_mask.cc:23
#12 0x00007ffff5cdda2f in KisSelectionMask::KisSelectionMask(KisSelectionMask const&) (this=0x5555726e3d90, rhs=...) at /home/tymon/kritadev/krita/libs/image/kis_selection_mask.cpp:68
#13 0x00007ffff5ce0132 in KisSelectionMask::clone() const (this=0x55556431de70) at /home/tymon/kritadev/krita/libs/image/kis_selection_mask.h:39
#14 0x00007ffff5c79379 in KisNode::KisNode(KisNode const&) (this=0x5555728f6450, rhs=...) at /home/tymon/kritadev/krita/libs/global/kis_shared_ptr.h:164
#15 0x00007ffff5c06827 in KisLayer::KisLayer(KisLayer const&) (this=0x5555728f6450, rhs=...) at /home/tymon/kritadev/krita/libs/image/kis_layer.cc:194
#16 0x00007ffff5bcab7b in KisGroupLayer::KisGroupLayer(KisGroupLayer const&) (this=0x5555728f6450, rhs=...) at /home/tymon/kritadev/krita/libs/image/kis_group_layer.cc:54
#17 0x00007ffff5e0a5d2 in KisGroupLayer::clone() const (this=0x555569a2e930) at /home/tymon/kritadev/build/libs/image/kritaimage_autogen/EWIEGA46WW/../../../../../krita/libs/image/kis_group_layer.h:31
#18 0x00007ffff5be410f in KisImage::copyFromImageImpl(KisImage const&, int) (this=0x55555ec81ee0, rhs=..., policy=1) at /home/tymon/kritadev/krita/libs/global/kis_shared_ptr.h:163
#19 0x00007ffff5be539a in KisImage::KisImage(KisImage const&, KisUndoStore*, bool) (this=0x55555ec81ee0, rhs=..., undoStore=<optimized out>, exactCopy=<optimized out>) at /home/tymon/kritadev/krita/libs/image/kis_image.cc:489
#20 0x00007ffff5be5456 in KisImage::clone(bool) (this=0x555571df62a0, exactCopy=<optimized out>) at /home/tymon/kritadev/krita/libs/image/kis_image.cc:347
#21 0x00007fffc5f3c674 in KisStoryboardThumbnailRenderScheduler::renderNextFrame() (this=0x55555f377920) at /home/tymon/kritadev/krita/libs/global/kis_shared_ptr.h:167
#22 0x00007fffc5f3cf41 in KisStoryboardThumbnailRenderScheduler::slotStartFrameRendering() (this=<optimized out>) at /home/tymon/kritadev/krita/plugins/dockers/storyboarddocker/KisStoryboardThumbnailRenderScheduler.cpp:88
#23 0x00007fffc5f46085 in KisStoryboardThumbnailRenderScheduler::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /home/tymon/kritadev/build/plugins/dockers/storyboarddocker/kritastoryboarddocker_autogen/EWIEGA46WW/moc_KisStoryboardThumbnailRenderScheduler.cpp:97
#24 0x00007ffff47426db in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff47426db in QMetaObject::activate(QObject*, int, int, void**) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007ffff474e407 in QTimer::timeout(QTimer::QPrivateSignal) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007ffff4742f4b in QObject::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007ffff50d84a1 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007ffff50dfae0 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007ffff6ff78a7 in KisApplication::notify(QObject*, QEvent*) (this=<optimized out>, receiver=0x55555f3773b0, event=0x7fffffffd870) at /home/tymon/kritadev/krita/libs/ui/KisApplication.cpp:710
#31 0x00007ffff4719499 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x00007ffff476a558 in QTimerInfoList::activateTimers() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x00007ffff476adb4 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007ffff0637d5e in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007ffff0637ff8 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007ffff063808c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007ffff476b143 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#38 0x00007fffea76de51 in  () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#39 0x00007ffff471816b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#40 0x00007ffff47202e2 in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#41 0x0000555555e2a21b in main (argc=<optimized out>, argv=0x7fffffffde28) at /home/tymon/kritadev/krita/krita/main.cc:663
#42 0x00007ffff3d48b6b in __libc_start_main (main=0x555555e28890 <main>, argc=1, argv=0x7fffffffde28, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffde18) at ../csu/libc-start.c:308
#43 0x0000555555e2b2da in _start () at /home/tymon/kritadev/krita/krita/main.cc:468
Comment 1 Eoin O'Neill 2021-04-05 21:48:14 UTC
Hey Tiar,

So far, I've tried every type of movement of layers between images and have failed to reproduce it. I've even tried moving to undesired layers (shape layers, selection layers, etc) after moving layers between documents and didn't run into the crash while running through GDB.

Judging solely by the backtrace, it seems like this might be due to the way the Storyboard docker used to request a time switch. I've recently changed it to be more image-thread compliant, so it could be that this bug has been resolved as a byproduct of that change. 

So I'm going to mark this as NEEDSINFO for now until we can get a consistent reproduction of this crash.
Comment 2 Bug Janitor Service 2021-04-20 04:33:14 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 3 Bug Janitor Service 2021-05-05 04:33:37 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!