Bug 409653 - Crash with animation playback
Summary: Crash with animation playback
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: unspecified
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2019-07-09 14:37 UTC by wolthera
Modified: 2020-04-25 10:11 UTC (History)
0 users

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 wolthera 2019-07-09 14:37:54 UTC
Application: krita (4.3.0-prealpha (git 9a4294b))

Qt Version: 5.12.3
Frameworks Version: 5.59.0
Operating System: Linux 4.15.0-54-generic x86_64
Distribution: KDE neon User Edition 5.16

-- Information about the crash:
- What I was doing when the application crashed:
Trying to run an animation. It was a 4 frame pixelart animation, I had previously ran the animation. Wat I did notice was that sometimes Krita tried to draw into the onionskin/previous frame instead of the frame I was at that point on, but otherwise nothing unusual.

-- 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 0x7f2f97a85e80 (LWP 23380))]

Thread 9 (Thread 0x7f2f2bfff700 (LWP 23521)):
#0  0x00007f2f92343bf9 in __GI___poll (fds=0x7f2f24004db0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f2f8a1ee4c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f2f8a1ee5dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f2f92e9edcb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f2f92e4003a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f2f92c674ca in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f2f92c68c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007f2f8baea6db in start_thread (arg=0x7f2f2bfff700) at pthread_create.c:463
#8  0x00007f2f9235088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 0x7f2f30858700 (LWP 23512)):
#0  0x00007f2f92343bf9 in __GI___poll (fds=0x7f2f2c012620, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f2f8a1ee4c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f2f8a1ee5dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f2f92e9edcb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f2f92e4003a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f2f92c674ca in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f2f704e9926 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#7  0x00007f2f92c68c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f2f8baea6db in start_thread (arg=0x7f2f30858700) at pthread_create.c:463
#9  0x00007f2f9235088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7f2f4cc99700 (LWP 23511)):
#0  0x00007f2f9233f0b4 in __GI___libc_read (fd=24, buf=0x7f2f4cc98b30, nbytes=16) at ../sysdeps/unix/sysv/linux/read.c:27
#1  0x00007f2f8a233000 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f2f8a1edfb7 in g_main_context_check () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f2f8a1ee470 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f2f8a1ee5dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f2f92e9edcb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f2f92e4003a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007f2f92c674ca in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f2f6bc78115 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#9  0x00007f2f92c68c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007f2f8baea6db in start_thread (arg=0x7f2f4cc99700) at pthread_create.c:463
#11 0x00007f2f9235088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7f2f47fff700 (LWP 23489)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f2f92c6b630 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007f2f92c6b4a2 in QSemaphore::tryAcquire(int, int) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007f2f94cba4bc in KisTileDataSwapper::waitForWork (this=0x7f2f9546e660 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder+64>) at /home/wolthera/krita/src/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:86
#4  0x00007f2f94cba4d8 in KisTileDataSwapper::run (this=0x7f2f9546e660 <(anonymous namespace)::Q_QGS_s_instance::innerFunction()::holder+64>) at /home/wolthera/krita/src/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:92
#5  0x00007f2f92c68c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f2f8baea6db in start_thread (arg=0x7f2f47fff700) at pthread_create.c:463
#7  0x00007f2f9235088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7f2f4f472700 (LWP 23483)):
#0  0x00007f2f8a234379 in g_mutex_lock () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f2f8a1eda33 in g_main_context_prepare () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f2f8a1ee3fb in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f2f8a1ee5dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f2f92e9edcb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f2f92e4003a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f2f92c674ca in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007f2f92c68c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f2f8baea6db in start_thread (arg=0x7f2f4f472700) at pthread_create.c:463
#9  0x00007f2f9235088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f2f68472700 (LWP 23393)):
#0  0x00007f2f92343bf9 in __GI___poll (fds=0x7f2f6001ca60, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f2f8a1ee4c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f2f8a1ee5dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f2f92e9edcb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f2f92e4003a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f2f92c674ca in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f2f8bd18015 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007f2f92c68c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f2f8baea6db in start_thread (arg=0x7f2f68472700) at pthread_create.c:463
#9  0x00007f2f9235088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f2f7b2cd700 (LWP 23392)):
#0  0x00007f2f8baf09f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55b4bd16e148) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x55b4bd16e0f8, cond=0x55b4bd16e120) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x55b4bd16e120, mutex=0x55b4bd16e0f8) at pthread_cond_wait.c:655
#3  0x00007f2f736e4dcb in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007f2f736e4af7 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007f2f8baea6db in start_thread (arg=0x7f2f7b2cd700) at pthread_create.c:463
#6  0x00007f2f9235088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f2f72fa9700 (LWP 23391)):
#0  0x00007f2f92343bf9 in __GI___poll (fds=0x7f2f72fa8c68, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f2f88f89747 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f2f88f8b36a in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f2f7de82578 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4  0x00007f2f92c68c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f2f8baea6db in start_thread (arg=0x7f2f72fa9700) at pthread_create.c:463
#6  0x00007f2f9235088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f2f97a85e80 (LWP 23380)):
[KCrash Handler]
#6  0x00007f2f9673bcc0 in KisInMemoryFrameCacheSwapper::frameDirtyRect (this=0x55b4d4db9920, frameId=2) at /home/wolthera/krita/src/libs/ui/KisInMemoryFrameCacheSwapper.cpp:81
#7  0x00007f2f9671d6c0 in KisAnimationFrameCache::dropLowQualityFrames (this=0x55b4d42b99d0, range=..., regionOfInterest=..., minimalRect=...) at /home/wolthera/krita/src/libs/ui/kis_animation_frame_cache.cpp:367
#8  0x00007f2f9672e208 in KisAnimationPlayer::play (this=0x55b4d4584a70) at /home/wolthera/krita/src/libs/ui/canvas/kis_animation_player.cpp:384
#9  0x00007f2f5371c84a in AnimationDocker::slotPlayPause (this=0x55b4ce14f1d0) at /home/wolthera/krita/src/plugins/dockers/animation/animation_docker.cpp:357
#10 0x00007f2f53792362 in AnimationDocker::qt_static_metacall (_o=0x55b4ce14f1d0, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x7fff069fd670) at /home/wolthera/krita/build/plugins/dockers/animation/kritaanimationdocker_autogen/EWIEGA46WW/moc_animation_docker.cpp:166
#11 0x00007f2f92e71875 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#12 0x00007f2f93c36f12 in QAction::triggered(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007f2f93c3952c in QAction::activate(QAction::ActionEvent) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007f2f93d2678b in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007f2f93d269ed in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007f2f93e1596a in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007f2f93c7d9c8 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007f2f93e15a04 in QToolButton::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007f2f93c3d65c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007f2f93c45a58 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007f2f9664b3e1 in KisApplication::notify (this=0x7fff069fe850, receiver=0x55b4ce171170, event=0x7fff069fdca0) at /home/wolthera/krita/src/libs/ui/KisApplication.cpp:653
#22 0x00007f2f92e41d18 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007f2f93c4405f in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#24 0x00007f2f93c988a1 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007f2f93c9b6fa in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007f2f93c3d65c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007f2f93c44b90 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007f2f9664b3e1 in KisApplication::notify (this=0x7fff069fe850, receiver=0x55b4cb31fa40, event=0x7fff069fe1c0) at /home/wolthera/krita/src/libs/ui/KisApplication.cpp:653
#29 0x00007f2f92e41d18 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#30 0x00007f2f9340b1fb in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#31 0x00007f2f9340bc44 in QGuiApplicationPrivate::processTabletEvent(QWindowSystemInterfacePrivate::TabletEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#32 0x00007f2f9340c315 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#33 0x00007f2f933e4b4b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#34 0x00007f2f7de8359a in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#35 0x00007f2f8a1ee317 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007f2f8a1ee550 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007f2f8a1ee5dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007f2f92e9edaf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#39 0x00007f2f92e4003a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#40 0x00007f2f92e49170 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#41 0x000055b4ba0b80ff in main (argc=2, argv=0x7fff069fe9b8) at /home/wolthera/krita/src/krita/main.cc:535

Reported using DrKonqi
Comment 1 Halla Rempt 2019-09-02 09:25:28 UTC
Git commit 7e63a63a3fb581b025670db4aa34cdfc9d78ab71 by Boudewijn Rempt.
Committed on 02/09/2019 at 08:58.
Pushed by rempt into branch 'master'.

Add an extra assert to KisInMemoryFrameCacheSwapper::frameDirtyRect

Not only should the frameId be in the map, the frame object should
be valid as well.

M  +2    -0    libs/ui/KisInMemoryFrameCacheSwapper.cpp

https://invent.kde.org/kde/krita/commit/7e63a63a3fb581b025670db4aa34cdfc9d78ab71
Comment 2 Halla Rempt 2019-09-10 08:27:58 UTC
Git commit da555df1dce523180c9e39f6d6c574a5a5f2ce88 by Boudewijn Rempt.
Committed on 10/09/2019 at 08:25.
Pushed by rempt into branch 'krita/4.2'.

Add an extra assert to KisInMemoryFrameCacheSwapper::frameDirtyRect

Not only should the frameId be in the map, the frame object should
be valid as well.

M  +2    -0    libs/ui/KisInMemoryFrameCacheSwapper.cpp

https://invent.kde.org/kde/krita/commit/da555df1dce523180c9e39f6d6c574a5a5f2ce88
Comment 3 wolthera 2020-04-25 10:11:48 UTC
Let's close this one, I haven't really animated since this, but if it comes back, we'll notice.