Bug 372247 - Krita crashes when draging and droping png file to insert as a layer (using latest impex branch)
Summary: Krita crashes when draging and droping png file to insert as a layer (using l...
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2016-11-09 08:26 UTC by Raghavendra kamath
Modified: 2016-11-09 13:28 UTC (History)
1 user (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 Raghavendra kamath 2016-11-09 08:26:52 UTC
Application: krita (3.0.92 (git f82decc))
 (Compiled from sources)
Qt Version: 5.7.0
Frameworks Version: 5.27.0
Operating System: Linux 4.8.6-1-ARCH x86_64
Distribution (Platform): Archlinux Packages

-- Information about the crash:
- What I was doing when the application crashed:
I dragged a png outputted from inkscape into krita and selected insert as new layer from context menu. krta crashed and dr. konqi popped up

The crash can be reproduced every time.

-- Backtrace:
Application: Krita (krita), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f07def8e800 (LWP 13501))]

Thread 5 (Thread 0x7f07817cc700 (LWP 13516)):
#0  0x00007f07d276910f in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007f07d499dc2b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQt5Core.so.5
#2  0x00007f07d5c7f7d1 in ?? () from /usr/lib/libQt5Widgets.so.5
#3  0x00007f07d499cd78 in ?? () from /usr/lib/libQt5Core.so.5
#4  0x00007f07d2763454 in start_thread () from /usr/lib/libpthread.so.0
#5  0x00007f07d3d977df in clone () from /usr/lib/libc.so.6

Thread 4 (Thread 0x7f0781fcd700 (LWP 13514)):
#0  0x00007f07d3d66ffd in nanosleep () from /usr/lib/libc.so.6
#1  0x00007f07d4a421fd in ?? () from /usr/lib/libQt5Core.so.5
#2  0x00007f07d499c108 in QThread::msleep(unsigned long) () from /usr/lib/libQt5Core.so.5
#3  0x00007f07dd4f315a in KisTileDataSwapper::run (this=0x7f07dd9af9a0 <_ZZN12_GLOBAL__N_116Q_QGS_s_instance13innerFunctionEvE6holder+64>) at /home/raghu/kf5/src/krita/libs/image/tiles3/swap/kis_tile_data_swapper.cpp:97
#4  0x00007f07d499cd78 in ?? () from /usr/lib/libQt5Core.so.5
#5  0x00007f07d2763454 in start_thread () from /usr/lib/libpthread.so.0
#6  0x00007f07d3d977df in clone () from /usr/lib/libc.so.6

Thread 3 (Thread 0x7f07827ce700 (LWP 13513)):
#0  0x00007f07d276910f in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007f07d499dc2b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQt5Core.so.5
#2  0x00007f07d4996b33 in QSemaphore::acquire(int) () from /usr/lib/libQt5Core.so.5
#3  0x00007f07dd4d945e in KisTileDataPooler::waitForWork (this=0x7f07dd9af960 <_ZZN12_GLOBAL__N_116Q_QGS_s_instance13innerFunctionEvE6holder>) at /home/raghu/kf5/src/krita/libs/image/tiles3/kis_tile_data_pooler.cc:165
#4  0x00007f07dd4d9baa in KisTileDataPooler::run (this=0x7f07dd9af960 <_ZZN12_GLOBAL__N_116Q_QGS_s_instance13innerFunctionEvE6holder>) at /home/raghu/kf5/src/krita/libs/image/tiles3/kis_tile_data_pooler.cc:187
#5  0x00007f07d499cd78 in ?? () from /usr/lib/libQt5Core.so.5
#6  0x00007f07d2763454 in start_thread () from /usr/lib/libpthread.so.0
#7  0x00007f07d3d977df in clone () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7f07bd76f700 (LWP 13503)):
#0  0x00007f07d3d8e48d in poll () from /usr/lib/libc.so.6
#1  0x00007f07cfd7a786 in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007f07cfd7a89c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007f07d4bcb72b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#4  0x00007f07d4b7523a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#5  0x00007f07d49980f3 in QThread::exec() () from /usr/lib/libQt5Core.so.5
#6  0x00007f07d831fe55 in ?? () from /usr/lib/libQt5DBus.so.5
#7  0x00007f07d499cd78 in ?? () from /usr/lib/libQt5Core.so.5
#8  0x00007f07d2763454 in start_thread () from /usr/lib/libpthread.so.0
#9  0x00007f07d3d977df in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7f07def8e800 (LWP 13501)):
[KCrash Handler]
#6  std::__atomic_base<int>::fetch_add (__m=std::memory_order_acq_rel, __i=2, this=<optimized out>) at /usr/include/c++/6.2.1/bits/atomic_base.h:514
#7  QAtomicOps<int>::fetchAndAddOrdered<int> (valueToAdd=2, _q_value=...) at /usr/include/qt/QtCore/qatomic_cxx11.h:240
#8  QBasicAtomicInteger<int>::fetchAndAddOrdered (valueToAdd=2, this=<optimized out>) at /usr/include/qt/QtCore/qbasicatomic.h:156
#9  KisWeakSharedPtr<KisImage>::load (newValue=<optimized out>, this=0x7ffd79415de0) at /home/raghu/kf5/src/krita/libs/global/kis_shared_ptr.h:441
#10 KisWeakSharedPtr<KisImage>::KisWeakSharedPtr (p=<optimized out>, this=0x7ffd79415de0) at /home/raghu/kf5/src/krita/libs/global/kis_shared_ptr.h:256
#11 KisPNGConverter::buildImage (this=this@entry=0x7ffd794161d0, iod=iod@entry=0x7ffd79416710) at /home/raghu/kf5/src/krita/libs/ui/kis_png_converter.cpp:649
#12 0x00007f07b07e0741 in KisPNGImport::convert (this=<optimized out>, document=0xa4e6fe0, io=0x7ffd79416710) at /home/raghu/kf5/src/krita/plugins/impex/png/kis_png_import.cc:48
#13 0x00007f07de97307a in KisImportExportManager::convert (this=0xa8dcaa0, direction=direction@entry=KisImportExportManager::Import, location=..., mimeType=..., showWarnings=showWarnings@entry=false, exportConfiguration=...) at /home/raghu/kf5/src/krita/libs/ui/KisImportExportManager.cpp:405
#14 0x00007f07de973f06 in KisImportExportManager::importDocument (this=<optimized out>, location=..., mimeType=...) at /home/raghu/kf5/src/krita/libs/ui/KisImportExportManager.cpp:84
#15 0x00007f07de9571bb in KisDocument::openFile (this=this@entry=0xa4e6fe0) at /home/raghu/kf5/src/krita/libs/ui/KisDocument.cpp:1054
#16 0x00007f07de959122 in KisDocument::openUrlInternal (this=this@entry=0xa4e6fe0, url=...) at /home/raghu/kf5/src/krita/libs/ui/KisDocument.cpp:1435
#17 0x00007f07de9593dd in KisDocument::openUrl (this=0xa4e6fe0, _url=..., flags=flags@entry=KisDocument::OPEN_URL_FLAG_NONE) at /home/raghu/kf5/src/krita/libs/ui/KisDocument.cpp:997
#18 0x00007f07de77d18d in KisImportCatcher::KisImportCatcher (this=0x15e67a60, url=..., view=0x9bfac90, layerType=...) at /home/raghu/kf5/src/krita/libs/ui/kis_import_catcher.cc:96
#19 0x00007f07de77aeb0 in KisImageManager::importImage (this=0x9c08190, urlArg=..., layerType=...) at /home/raghu/kf5/src/krita/libs/ui/kis_image_manager.cc:134
#20 0x00007f07de9a680b in KisView::dropEvent (this=0xd43e920, event=<optimized out>) at /home/raghu/kf5/src/krita/libs/ui/KisView.cpp:574
#21 0x00007f07d5aa2ef8 in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#22 0x00007f07d5a5be0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#23 0x00007f07d5a63e9e in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#24 0x00007f07de94cd07 in KisApplication::notify (this=<optimized out>, receiver=0xd43ea60, event=0x7ffd79417320) at /home/raghu/kf5/src/krita/libs/ui/KisApplication.cpp:519
#25 0x00007f07d4b76de0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#26 0x00007f07d5abec7a in ?? () from /usr/lib/libQt5Widgets.so.5
#27 0x00007f07d5abf72b in ?? () from /usr/lib/libQt5Widgets.so.5
#28 0x00007f07d5a5be0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#29 0x00007f07d5a63581 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#30 0x00007f07de94cd07 in KisApplication::notify (this=<optimized out>, receiver=0xa98f9b0, event=0x7ffd794176c0) at /home/raghu/kf5/src/krita/libs/ui/KisApplication.cpp:519
#31 0x00007f07d4b76de0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#32 0x00007f07d50c6828 in QGuiApplicationPrivate::processDrop(QWindow*, QMimeData const*, QPoint const&, QFlags<Qt::DropAction>) () from /usr/lib/libQt5Gui.so.5
#33 0x00007f07d50a4f3f in QWindowSystemInterface::handleDrop(QWindow*, QMimeData const*, QPoint const&, QFlags<Qt::DropAction>) () from /usr/lib/libQt5Gui.so.5
#34 0x00007f07cc0a5884 in ?? () from /usr/lib/libQt5XcbQpa.so.5
#35 0x00007f07cc0b16d6 in QXcbWindow::handleClientMessageEvent(xcb_client_message_event_t const*) () from /usr/lib/libQt5XcbQpa.so.5
#36 0x00007f07cc09a4bb in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) () from /usr/lib/libQt5XcbQpa.so.5
#37 0x00007f07cc09a8a5 in QXcbConnection::processXcbEvents() () from /usr/lib/libQt5XcbQpa.so.5
#38 0x00007f07d4ba34b9 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#39 0x00007f07d5a5be0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#40 0x00007f07d5a63581 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#41 0x00007f07de94cd07 in KisApplication::notify (this=<optimized out>, receiver=0x1392910, event=0x7f07c400a4f0) at /home/raghu/kf5/src/krita/libs/ui/KisApplication.cpp:519
#42 0x00007f07d4b76de0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#43 0x00007f07d4b7956d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
#44 0x00007f07d4bcb303 in ?? () from /usr/lib/libQt5Core.so.5
#45 0x00007f07cfd7a587 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#46 0x00007f07cfd7a7f0 in ?? () from /usr/lib/libglib-2.0.so.0
#47 0x00007f07cfd7a89c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#48 0x00007f07d4bcb70f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#49 0x00007f07d4b7523a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#50 0x00007f07d4b7d73c in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#51 0x0000000000404f54 in main (argc=<optimized out>, argv=<optimized out>) at /home/raghu/kf5/src/krita/krita/main.cc:258

Reported using DrKonqi
Comment 1 Raghavendra kamath 2016-11-09 08:30:29 UTC
It even crashes when I do import layers from the layer menu
Comment 2 Dmitry Kazakov 2016-11-09 12:40:00 UTC
Confirmed. Only impex branch is affected. krita/3.1 works fine.
Comment 3 Dmitry Kazakov 2016-11-09 13:23:22 UTC
Git commit fb115db9500e62a8bb0e7eb50c4f515dd36cad06 by Dmitry Kazakov.
Committed on 09/11/2016 at 13:23.
Pushed by dkazakov into branch 'rempt/impex-refactoring'.

Fix crash when trying to D&D or import a layer into Krita

That ancient KisImageWSP find-replace refactoring was really
not right.

M  +1    -1    libs/ui/kis_png_converter.cpp
M  +2    -2    libs/ui/kis_png_converter.h
M  +1    -1    plugins/impex/brush/kis_brush_import.cpp
M  +1    -1    plugins/impex/csv/csv_loader.cpp
M  +2    -2    plugins/impex/csv/csv_loader.h
M  +3    -3    plugins/impex/csv/csv_saver.cpp
M  +2    -2    plugins/impex/csv/csv_saver.h
M  +3    -3    plugins/impex/exr/exr_converter.cc
M  +1    -1    plugins/impex/exr/exr_converter.h
M  +1    -1    plugins/impex/exr/exr_export.cc
M  +3    -3    plugins/impex/exr/kis_exr_layers_sorter.cpp
M  +1    -1    plugins/impex/exr/kis_exr_layers_sorter.h
M  +1    -1    plugins/impex/heightmap/kis_heightmap_export.cpp
M  +1    -1    plugins/impex/jpeg/kis_jpeg_converter.cc
M  +1    -1    plugins/impex/jpeg/kis_jpeg_export.cc
M  +1    -1    plugins/impex/kra/kra_export.cpp
M  +1    -1    plugins/impex/libkra/kis_kra_load_visitor.cpp
M  +2    -2    plugins/impex/libkra/kis_kra_load_visitor.h
M  +5    -5    plugins/impex/libkra/kis_kra_saver.cpp
M  +5    -5    plugins/impex/libkra/kis_kra_saver.h
M  +3    -3    plugins/impex/libkra/tests/kis_kra_loader_test.cpp
M  +3    -3    plugins/impex/libkra/tests/util.h
M  +1    -1    plugins/impex/odg/kis_odg_import.cc
M  +1    -1    plugins/impex/ora/kis_open_raster_load_context.h
M  +3    -3    plugins/impex/ora/kis_open_raster_stack_load_visitor.cpp
M  +1    -1    plugins/impex/ora/kis_open_raster_stack_load_visitor.h
M  +2    -2    plugins/impex/ora/ora_converter.cc
M  +3    -3    plugins/impex/ora/ora_converter.h
M  +1    -1    plugins/impex/ora/ora_export.cc
M  +1    -1    plugins/impex/ora/ora_load_context.cc
M  +1    -1    plugins/impex/ora/ora_load_context.h
M  +1    -1    plugins/impex/pdf/kis_pdf_import.cpp
M  +1    -1    plugins/impex/png/kis_png_export.cc
M  +1    -1    plugins/impex/ppm/kis_ppm_export.cpp
M  +1    -1    plugins/impex/psd/psd_loader.cpp
M  +2    -2    plugins/impex/psd/psd_loader.h
M  +1    -1    plugins/impex/psd/psd_saver.cpp
M  +2    -2    plugins/impex/psd/psd_saver.h
M  +1    -1    plugins/impex/qml/qml_converter.cc
M  +1    -1    plugins/impex/qml/qml_converter.h
M  +1    -1    plugins/impex/qml/qml_export.cc
M  +1    -1    plugins/impex/raw/kis_raw_import.cpp
M  +1    -1    plugins/impex/spriter/kis_spriter_export.h
M  +3    -3    plugins/impex/tiff/kis_tiff_converter.cc
M  +3    -3    plugins/impex/tiff/kis_tiff_converter.h

http://commits.kde.org/krita/fb115db9500e62a8bb0e7eb50c4f515dd36cad06
Comment 4 Dmitry Kazakov 2016-11-09 13:28:37 UTC
Git commit cc556884cc8988cff916450f12fbe8e40b2cf661 by Dmitry Kazakov.
Committed on 09/11/2016 at 13:28.
Pushed by dkazakov into branch 'krita/3.1'.

Don't do evil things.

KisImageWSP image = new KisImage(...);

... is just a time bomb.

M  +1    -1    plugins/impex/brush/kis_brush_import.cpp
M  +1    -1    plugins/impex/csv/csv_loader.cpp
M  +2    -2    plugins/impex/csv/csv_loader.h
M  +3    -3    plugins/impex/csv/csv_saver.cpp
M  +2    -2    plugins/impex/csv/csv_saver.h
M  +3    -3    plugins/impex/exr/exr_converter.cc
M  +1    -1    plugins/impex/exr/exr_converter.h
M  +1    -1    plugins/impex/exr/exr_export.cc
M  +3    -3    plugins/impex/exr/kis_exr_layers_sorter.cpp
M  +1    -1    plugins/impex/exr/kis_exr_layers_sorter.h
M  +1    -1    plugins/impex/heightmap/kis_heightmap_export.cpp
M  +1    -1    plugins/impex/jpeg/kis_jpeg_converter.cc
M  +1    -1    plugins/impex/jpeg/kis_jpeg_export.cc
M  +1    -1    plugins/impex/odg/kis_odg_import.cc
M  +2    -2    plugins/impex/ora/ora_converter.cc
M  +3    -3    plugins/impex/ora/ora_converter.h
M  +1    -1    plugins/impex/ora/ora_export.cc
M  +1    -1    plugins/impex/pdf/kis_pdf_import.cpp
M  +1    -1    plugins/impex/png/kis_png_export.cc
M  +1    -1    plugins/impex/ppm/kis_ppm_export.cpp
M  +1    -1    plugins/impex/psd/psd_loader.cpp
M  +2    -2    plugins/impex/psd/psd_loader.h
M  +1    -1    plugins/impex/psd/psd_saver.cpp
M  +2    -2    plugins/impex/psd/psd_saver.h
M  +1    -1    plugins/impex/qml/qml_converter.cc
M  +1    -1    plugins/impex/qml/qml_converter.h
M  +1    -1    plugins/impex/qml/qml_export.cc
M  +1    -1    plugins/impex/raw/kis_raw_import.cpp
M  +1    -1    plugins/impex/spriter/kis_spriter_export.h
M  +3    -3    plugins/impex/tiff/kis_tiff_converter.cc
M  +3    -3    plugins/impex/tiff/kis_tiff_converter.h

http://commits.kde.org/krita/cc556884cc8988cff916450f12fbe8e40b2cf661