Bug 413950

Summary: Undo Expand Canvas crashes Krita
Product: [Applications] krita Reporter: Tepee <inscription>
Component: GeneralAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED WORKSFORME    
Severity: crash CC: ahab.greybeard, halla
Priority: NOR Keywords: drkonqi
Version: 4.2.7.1   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Tepee 2019-11-08 18:20:24 UTC
Application: krita (4.2.7.1)

Qt Version: 5.12.4
Frameworks Version: 5.62.0
Operating System: Linux 5.3.0-19-generic x86_64
Distribution: Ubuntu 19.10

-- Information about the crash:
- In Krita, with lots of layers, I accidentally clicked on the left side , resulting in expanding the canvas.
- I undo
- Crash

-- Backtrace:
Application: Krita (krita), signal: Aborted
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f78ca65a800 (LWP 32326))]

Thread 10 (Thread 0x7f78a7727700 (LWP 32349)):
#0  0x00007f78ccc7fc3d in g_mutex_lock () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f78ccc33a24 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f78ccc33b73 in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f78cf7e46c3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f78cf78b63b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f78cf5c4a75 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f78cf5c5cc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007f78cd3fe669 in start_thread (arg=<optimized out>) at pthread_create.c:479
#8  0x00007f78cf230323 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 9 (Thread 0x7f78a7f28700 (LWP 32347)):
#0  __GI___libc_read (nbytes=16, buf=0x7f78a7f27b50, fd=24) at ../sysdeps/unix/sysv/linux/read.c:26
#1  __GI___libc_read (fd=24, buf=0x7f78a7f27b50, nbytes=16) at ../sysdeps/unix/sysv/linux/read.c:24
#2  0x00007f78ccc7b63f in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f78ccc3358e in g_main_context_check () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f78ccc339e2 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f78ccc33b73 in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007f78cf7e46c3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007f78cf78b63b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f78cf5c4a75 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007f78c25f08aa in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#10 0x00007f78cf5c5cc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#11 0x00007f78cd3fe669 in start_thread (arg=<optimized out>) at pthread_create.c:479
#12 0x00007f78cf230323 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 8 (Thread 0x7f78ad286700 (LWP 32346)):
#0  0x00007f78ccc31b16 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f78ccc3338f in g_main_context_check () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f78ccc339e2 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f78ccc33b73 in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f78cf7e46c3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f78cf78b63b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f78cf5c4a75 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007f78c231d319 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#8  0x00007f78cf5c5cc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007f78cd3fe669 in start_thread (arg=<optimized out>) at pthread_create.c:479
#10 0x00007f78cf230323 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7f78af7fe700 (LWP 32344)):
#0  0x00007f78cf1f3d45 in __GI___nanosleep (requested_time=0x7f78af7fddc0, remaining=0x7f78af7fddc0) at ../sysdeps/unix/sysv/linux/nanosleep.c:28
#1  0x00007f78cf7e3fe5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007f78d0a6049a in KisTileDataSwapper::run() () from /usr/lib/x86_64-linux-gnu/libkritaimage.so.18
#3  0x00007f78cf5c5cc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f78cd3fe669 in start_thread (arg=<optimized out>) at pthread_create.c:479
#5  0x00007f78cf230323 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7f78affff700 (LWP 32343)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f78cf5c80b1 in QSemaphore::acquire(int) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#2  0x00007f78d0a3f1ca in KisTileDataPooler::waitForWork() () from /usr/lib/x86_64-linux-gnu/libkritaimage.so.18
#3  0x00007f78d0a3fad4 in KisTileDataPooler::run() () from /usr/lib/x86_64-linux-gnu/libkritaimage.so.18
#4  0x00007f78cf5c5cc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f78cd3fe669 in start_thread (arg=<optimized out>) at pthread_create.c:479
#6  0x00007f78cf230323 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7f78b8e11700 (LWP 32342)):
#0  0x00007f78ccc31b27 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f78ccc3338f in g_main_context_check () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f78ccc339e2 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f78ccc33b73 in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f78cf7e46c3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f78cf78b63b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f78cf5c4a75 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007f78cf5c5cc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f78cd3fe669 in start_thread (arg=<optimized out>) at pthread_create.c:479
#9  0x00007f78cf230323 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f78c17ee700 (LWP 32336)):
#0  0x00007f78ccc334b5 in g_main_context_check () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f78ccc339e2 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f78ccc33b73 in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f78cf7e46c3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f78cf78b63b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f78cf5c4a75 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f78cd431efa in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007f78cf5c5cc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f78cd3fe669 in start_thread (arg=<optimized out>) at pthread_create.c:479
#9  0x00007f78cf230323 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f78c9519700 (LWP 32335)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x56191feb07f8) at ../sysdeps/unix/sysv/linux/futex-internal.h:80
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x56191feb07a8, cond=0x56191feb07d0) at pthread_cond_wait.c:508
#2  __pthread_cond_wait (cond=0x56191feb07d0, mutex=0x56191feb07a8) at pthread_cond_wait.c:638
#3  0x00007f78c381e97b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007f78c381e59b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007f78cd3fe669 in start_thread (arg=<optimized out>) at pthread_create.c:479
#6  0x00007f78cf230323 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f78c3338700 (LWP 32334)):
#0  0x00007f78cf223c2f in __GI___poll (fds=0x7f78c3337ca8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f78ccaad917 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f78ccaaf53a in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f78c9ce5288 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4  0x00007f78cf5c5cc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f78cd3fe669 in start_thread (arg=<optimized out>) at pthread_create.c:479
#6  0x00007f78cf230323 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f78ca65a800 (LWP 32326)):
[KCrash Handler]
#6  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#7  0x00007f78cf133899 in __GI_abort () at abort.c:79
#8  0x00007f78cf58ca99 in QMessageLogger::fatal(char const*, ...) const () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007f78d0737b6a in ?? () from /usr/lib/x86_64-linux-gnu/libkritaglobal.so.18
#10 0x00007f78d0b81ea5 in KisImage::KisImage(KisImage const&, KisUndoStore*, bool) () from /usr/lib/x86_64-linux-gnu/libkritaimage.so.18
#11 0x00007f78d0b8238a in KisImage::clone(bool) () from /usr/lib/x86_64-linux-gnu/libkritaimage.so.18
#12 0x00007f78d1ca7edd in KisDocument::KisDocument(KisDocument const&) () from /usr/lib/x86_64-linux-gnu/libkritaui.so.18
#13 0x00007f78d1ca8580 in KisDocument::lockAndCloneForSaving() () from /usr/lib/x86_64-linux-gnu/libkritaui.so.18
#14 0x00007f78d1ca8ba5 in KisDocument::initiateSavingInBackground(QString, QObject const*, char const*, KritaUtils::ExportFileJob const&, KisPinnedSharedPtr<KisPropertiesConfiguration>, std::unique_ptr<KisDocument, std::default_delete<KisDocument> >&&) () from /usr/lib/x86_64-linux-gnu/libkritaui.so.18
#15 0x00007f78d1caa31f in KisDocument::slotAutoSaveImpl(std::unique_ptr<KisDocument, std::default_delete<KisDocument> >&&) () from /usr/lib/x86_64-linux-gnu/libkritaui.so.18
#16 0x00007f78d1caa5f9 in KisDocument::slotAutoSave() () from /usr/lib/x86_64-linux-gnu/libkritaui.so.18
#17 0x00007f78d1d82f58 in ?? () from /usr/lib/x86_64-linux-gnu/libkritaui.so.18
#18 0x00007f78cf7b8468 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007f78cf7c566b in QTimer::timeout(QTimer::QPrivateSignal) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007f78cf7b8e55 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007f78d019ea86 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007f78d01a7e00 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007f78d1c98a3d in KisApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libkritaui.so.18
#24 0x00007f78cf78ca9a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007f78cf7e3a00 in QTimerInfoList::activateTimers() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007f78cf7e4324 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007f78ccc3384d in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007f78ccc33ad0 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007f78ccc33b73 in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007f78cf7e46a5 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007f78cf78b63b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x00007f78cf7933a6 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x000056191e7439f6 in main ()
[Inferior 1 (process 32326) detached]

Possible duplicates by query: bug 413943, bug 413708, bug 412361, bug 412300, bug 412218.

Reported using DrKonqi
Comment 1 Ahab Greybeard 2019-11-21 10:17:03 UTC
I've tried this with an animation that is 1280 x 1024, has a large number of layers (40+) and a very large number of frames and I can't get a crash with the 4.2.7.1 appimage on Debian 10.

I've done it with expanding to the left, right, top and bottom and even one after the other and I can still Undo Resize Image.

However, I do have to wait until the animation frame cache has been refreshed until the Undo works. (I can see the small grey progress bar at the top of the Timeline docker.)

How many layers and what image size do you have?
Do you have many Transform/Filter masks/layers that would be giving a very heavy re-calculation and re-rendering load?
Is there a chance that you're running out of RAM?
Would you be able to provide the .kra file to see if I have the same problem with it?
Comment 2 Bug Janitor Service 2019-12-06 04:33:10 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 2019-12-21 04:33:10 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!