Bug 405730 - crashed when saving a kirat document
Summary: crashed when saving a kirat document
Status: RESOLVED NOT A BUG
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: 4.1.7
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords: drkonqi
: 406367 (view as bug list)
Depends on:
Blocks:
 
Reported: 2019-03-21 19:42 UTC by Ali
Modified: 2019-04-09 15:30 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ali 2019-03-21 19:42:55 UTC
Application: krita (4.1.7)

Qt Version: 5.9.5
Frameworks Version: 5.47.0
Operating System: Linux 4.18.0-16-generic x86_64
Distribution: Ubuntu 18.04.2 LTS

-- Information about the crash:
Everytime i try to save a document in native krita file, it crashes, exporting the document to a different formats work though

The crash can be reproduced every time.

-- 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 0x7fd678cf2280 (LWP 3062))]

Thread 8 (Thread 0x7fd6037fe700 (LWP 4212)):
[KCrash Handler]
#6  0x00007fd670827b68 in KoStore::pos() const () at /usr/lib/x86_64-linux-gnu/libkritastore.so.17
#7  0x00007fd63e7dabac in  () at /usr/lib/x86_64-linux-gnu/libfreeimage.so.3
#8  0x00007fd63e7cf0ed in FreeImage_GetFileTypeFromHandle () at /usr/lib/x86_64-linux-gnu/libfreeimage.so.3
#9  0x00007fd63ea581de in FreeImageHandler::GetFIF(QIODevice*, QByteArray const&) () at /usr/lib/x86_64-linux-gnu/qt5/plugins/imageformats/libxfreeimage.so
#10 0x00007fd63ea598ec in FreeimageQt5Plugin::capabilities(QIODevice*, QByteArray const&) const () at /usr/lib/x86_64-linux-gnu/qt5/plugins/imageformats/libxfreeimage.so
#11 0x00007fd6753abaae in  () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#12 0x00007fd6753abd8c in  () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#13 0x00007fd6753ac218 in QImageWriter::canWrite() const () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#14 0x00007fd6753ac3d7 in QImageWriter::write(QImage const&) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#15 0x00007fd67537fc68 in QImageData::doImageIO(QImage const*, QImageWriter*, int) const () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#16 0x00007fd67537fe79 in QImage::save(QIODevice*, char const*, int) const () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#17 0x00007fd6157ba36b in  () at /usr/lib/x86_64-linux-gnu/kritaplugins/kritakraexport.so
#18 0x00007fd6157bac8b in  () at /usr/lib/x86_64-linux-gnu/kritaplugins/kritakraexport.so
#19 0x00007fd6157bafd5 in  () at /usr/lib/x86_64-linux-gnu/kritaplugins/kritakraexport.so
#20 0x00007fd6157b6d7f in  () at /usr/lib/x86_64-linux-gnu/kritaplugins/kritakraexport.so
#21 0x00007fd677a2f3b9 in KisImportExportManager::doExportImpl(QString const&, QSharedPointer<KisImportExportFilter>, KisPinnedSharedPtr<KisPropertiesConfiguration>) () at /usr/lib/x86_64-linux-gnu/libkritaui.so.17
#22 0x00007fd677a2f698 in KisImportExportManager::doExport(QString const&, QSharedPointer<KisImportExportFilter>, KisPinnedSharedPtr<KisPropertiesConfiguration>, bool) () at /usr/lib/x86_64-linux-gnu/libkritaui.so.17
#23 0x00007fd677a31905 in  () at /usr/lib/x86_64-linux-gnu/libkritaui.so.17
#24 0x00007fd674b9b2b2 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007fd674b9e17d in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007fd66e2c46db in start_thread (arg=0x7fd6037fe700) at pthread_create.c:463
#27 0x00007fd67428188f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 7 (Thread 0x7fd61cd89700 (LWP 3090)):
#0  0x00007fd66cc85064 in g_mutex_unlock () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007fd66cc3f0d9 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fd66cc3f5c0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fd66cc3f64c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fd674dd59bb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fd674d7aa1a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fd674b9923a in QThread::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fd65aacf2a6 in  () at /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#8  0x00007fd674b9e17d in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007fd66e2c46db in start_thread (arg=0x7fd61cd89700) at pthread_create.c:463
#10 0x00007fd67428188f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7fd61e651700 (LWP 3088)):
#0  0x00007fd66cc85064 in g_mutex_unlock () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007fd66cc3ea88 in g_main_context_prepare () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fd66cc3f46b in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fd66cc3f64c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fd674dd59bb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fd674d7aa1a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fd674b9923a in QThread::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fd65a68b6f5 in  () at /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#8  0x00007fd674b9e17d in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007fd66e2c46db in start_thread (arg=0x7fd61e651700) at pthread_create.c:463
#10 0x00007fd67428188f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fd62e0aa700 (LWP 3082)):
#0  0x00007fd66e2ca9f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55dbfdeaa974) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007fd66e2ca9f3 in __pthread_cond_wait_common (abstime=0x0, mutex=0x55dbfdeaa920, cond=0x55dbfdeaa948) at pthread_cond_wait.c:502
#2  0x00007fd66e2ca9f3 in __pthread_cond_wait (cond=0x55dbfdeaa948, mutex=0x55dbfdeaa920) at pthread_cond_wait.c:655
#3  0x00007fd674b9f5ab in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fd674b97e6f in QSemaphore::tryAcquire(int, int) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fd67223a04a in KisTileDataSwapper::run() () at /usr/lib/x86_64-linux-gnu/libkritaimage.so.17
#6  0x00007fd674b9e17d in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fd66e2c46db in start_thread (arg=0x7fd62e0aa700) at pthread_create.c:463
#8  0x00007fd67428188f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fd62e8ab700 (LWP 3081)):
#0  0x00007fd66e2ca9f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55dbfdeaa6e4) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007fd66e2ca9f3 in __pthread_cond_wait_common (abstime=0x0, mutex=0x55dbfdeaa690, cond=0x55dbfdeaa6b8) at pthread_cond_wait.c:502
#2  0x00007fd66e2ca9f3 in __pthread_cond_wait (cond=0x55dbfdeaa6b8, mutex=0x55dbfdeaa690) at pthread_cond_wait.c:655
#3  0x00007fd674b9f5ab in QWaitCondition::wait(QMutex*, unsigned long) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fd674b97c1b in QSemaphore::acquire(int) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fd67221d42a in  () at /usr/lib/x86_64-linux-gnu/libkritaimage.so.17
#6  0x00007fd67221dc6a in  () at /usr/lib/x86_64-linux-gnu/libkritaimage.so.17
#7  0x00007fd674b9e17d in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fd66e2c46db in start_thread (arg=0x7fd62e8ab700) at pthread_create.c:463
#9  0x00007fd67428188f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fd64b27b700 (LWP 3068)):
#0  0x00007fd66e2ca9f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55dbf44dcb38) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007fd66e2ca9f3 in __pthread_cond_wait_common (abstime=0x0, mutex=0x55dbf44dcae8, cond=0x55dbf44dcb10) at pthread_cond_wait.c:502
#2  0x00007fd66e2ca9f3 in __pthread_cond_wait (cond=0x55dbf44dcb10, mutex=0x55dbf44dcae8) at pthread_cond_wait.c:655
#3  0x00007fd654af8e6b in  () at /usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so
#4  0x00007fd654af8b97 in  () at /usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so
#5  0x00007fd66e2c46db in start_thread (arg=0x7fd64b27b700) at pthread_create.c:463
#6  0x00007fd67428188f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fd6571f2700 (LWP 3066)):
#0  0x00007fd6742700b4 in __GI___libc_read (fd=7, buf=0x7fd6571f1b60, nbytes=16) at ../sysdeps/unix/sysv/linux/read.c:27
#1  0x00007fd66cc83cd0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fd66cc3f027 in g_main_context_check () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fd66cc3f4e0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fd66cc3f64c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fd674dd59bb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fd674d7aa1a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fd674b9923a in QThread::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fd66e4f1d45 in  () at /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#9  0x00007fd674b9e17d in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007fd66e2c46db in start_thread (arg=0x7fd6571f2700) at pthread_create.c:463
#11 0x00007fd67428188f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7fd678cf2280 (LWP 3062)):
#0  0x00007fd654e31969 in  () at /usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so
#1  0x00007fd654d37224 in  () at /usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so
#2  0x00007fd654d37572 in  () at /usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so
#3  0x00007fd6549fd960 in  () at /usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so
#4  0x00007fd6549fd9b0 in  () at /usr/lib/x86_64-linux-gnu/dri/nouveau_dri.so
#5  0x00007fd675b58a89 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#6  0x00007fd675b2694d in QWidgetPrivate::sendComposeStatus(QWidget*, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7  0x00007fd675b26960 in QWidgetPrivate::sendComposeStatus(QWidget*, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8  0x00007fd675b26960 in QWidgetPrivate::sendComposeStatus(QWidget*, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x00007fd675b26960 in QWidgetPrivate::sendComposeStatus(QWidget*, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007fd675b26960 in QWidgetPrivate::sendComposeStatus(QWidget*, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007fd675b26960 in QWidgetPrivate::sendComposeStatus(QWidget*, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007fd675b26960 in QWidgetPrivate::sendComposeStatus(QWidget*, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007fd675b26960 in QWidgetPrivate::sendComposeStatus(QWidget*, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007fd675b26960 in QWidgetPrivate::sendComposeStatus(QWidget*, bool) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007fd675b07019 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007fd675b0877e in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007fd675b09e79 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007fd675b0a602 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007fd675b55d4e in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007fd675b5666d in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007fd675afa83c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007fd675b02104 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007fd677a044c7 in KisApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libkritaui.so.17
#24 0x00007fd674d7c9e8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007fd67533f49f in QGuiApplicationPrivate::processExposeEvent(QWindowSystemInterfacePrivate::ExposeEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#26 0x00007fd6753400dd in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#27 0x00007fd6753172eb in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#28 0x00007fd6648d21c0 in  () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#29 0x00007fd66cc3f387 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007fd66cc3f5c0 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fd66cc3f64c in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fd674dd599f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x00007fd674d7aa1a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007fd674d83ac4 in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#35 0x000055dbf30751a8 in main ()
[Inferior 1 (process 3062) detached]

Reported using DrKonqi
Comment 1 wolthera 2019-03-21 19:47:52 UTC
Are you using the appimage, the ppa version or just a version from the Ubuntu repository?

Or are you building yourself?
Comment 2 Halla Rempt 2019-03-21 20:04:55 UTC
It's pretty simple: I see libfreeimage in the backtrace. That is a pretty sure sign of a Deepin Imageviewer infestation:

gnu/libkritastore.so.17
#7  0x00007fd63e7dabac in  () at /usr/lib/x86_64-linux-gnu/libfreeimage.so.3
#8  0x00007fd63e7cf0ed in FreeImage_GetFileTypeFromHandle () at /usr/lib/x86_64-linux-gnu/libfreeimage.so.3
#9  0x00007fd63ea581de in FreeImageHandler::GetFIF(QIODevice*, QByteArray const&) () at /usr/lib/x86_64-linux-gnu/qt5/plugins/imageformats/libxfreeimage.so
#10 0x00007fd63ea598ec in FreeimageQt5Plugin::capabilities(QIODevice*, QByteArray const&) const () at /usr/lib/x86_64-linux-gnu/qt5/plugins/imageformats/libxfreeimage.so


libxfreemimage.so is part of https://ubuntu.pkgs.org/18.04/ubuntu-universe-amd64/deepin-image-viewer_1.2.19-2_amd64.deb.html

And because Qt loads all qimageio plugins, this gets loaded when Krita tries to make e.g. thumbnails, and causes crashes if there are files this abomination of a library cannot load. 

Uninstall Deepin : it's desperately buggy, with people who feel that it's a good idea to not check whether an image file longer than 0 bytes before starting to read it.
Comment 3 Halla Rempt 2019-03-21 20:13:15 UTC
To amplify: apparently this "library" implements png export, duplicating what is already provided perfectly well by Qt. And gives it a priority higher than the native Qt png exporter. On saving a .kra file, we try to save the merged image as a png file. And then the libxfreeimage library crashes.
Comment 4 Halla Rempt 2019-04-09 15:30:34 UTC
*** Bug 406367 has been marked as a duplicate of this bug. ***