Bug 371027 - gwenview crash when cropping a specific image (works on most images)
Summary: gwenview crash when cropping a specific image (works on most images)
Status: RESOLVED WORKSFORME
Alias: None
Product: gwenview
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Gwenview Bugs
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2016-10-17 20:46 UTC by Enrico Tagliavini
Modified: 2017-09-08 18:46 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Sample image causing the crash when cropped (1.18 MB, image/jpeg)
2016-10-17 20:52 UTC, Enrico Tagliavini
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Enrico Tagliavini 2016-10-17 20:46:43 UTC
Application: gwenview (16.04.3)

Qt Version: 5.6.1
Frameworks Version: 5.26.0
Operating System: Linux 4.7.7-200.fc24.x86_64 x86_64
Distribution: "Fedora release 24 (Twenty Four)"

-- Information about the crash:
Steps to reproduce:
1. open the (soon to be attached) image with gwenview
2. select edit -> crop
3. cut off some part of image and hit the crop button
4. press save and observe the crash

Actual result:
gewnview terminates unexpectedly without saving the cropped image.

Expected results:
save the cropped image correctly

The crash can be reproduced every time.

-- Backtrace:
Application: Gwenview (gwenview), signal: Aborted
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f7f0488a9c0 (LWP 10221))]

Thread 4 (Thread 0x7f7ef2e5f700 (LWP 10224)):
[KCrash Handler]
#6  0x00007f7f12b6a6f5 in raise () at /usr/lib64/libc.so.6
#7  0x00007f7f12b6c2fa in abort () at /usr/lib64/libc.so.6
#8  0x00007f7f12b62f97 in __assert_fail_base () at /usr/lib64/libc.so.6
#9  0x00007f7f12b63042 in  () at /usr/lib64/libc.so.6
#10 0x00007f7f1893568e in Exiv2::Internal::TiffMnEntry::doAddPath(unsigned short, std::stack<Exiv2::Internal::TiffPathItem, std::deque<Exiv2::Internal::TiffPathItem, std::allocator<Exiv2::Internal::TiffPathItem> > >&, Exiv2::Internal::TiffComponent*, std::auto_ptr<Exiv2::Internal::TiffComponent>) () at /usr/lib64/libexiv2.so.14
#11 0x00007f7f1892f432 in Exiv2::Internal::TiffComponent::addPath(unsigned short, std::stack<Exiv2::Internal::TiffPathItem, std::deque<Exiv2::Internal::TiffPathItem, std::allocator<Exiv2::Internal::TiffPathItem> > >&, Exiv2::Internal::TiffComponent*, std::auto_ptr<Exiv2::Internal::TiffComponent>) () at /usr/lib64/libexiv2.so.14
#12 0x00007f7f1892fee7 in Exiv2::Internal::TiffDirectory::doAddPath(unsigned short, std::stack<Exiv2::Internal::TiffPathItem, std::deque<Exiv2::Internal::TiffPathItem, std::allocator<Exiv2::Internal::TiffPathItem> > >&, Exiv2::Internal::TiffComponent*, std::auto_ptr<Exiv2::Internal::TiffComponent>) () at /usr/lib64/libexiv2.so.14
#13 0x00007f7f1892f432 in Exiv2::Internal::TiffComponent::addPath(unsigned short, std::stack<Exiv2::Internal::TiffPathItem, std::deque<Exiv2::Internal::TiffPathItem, std::allocator<Exiv2::Internal::TiffPathItem> > >&, Exiv2::Internal::TiffComponent*, std::auto_ptr<Exiv2::Internal::TiffComponent>) () at /usr/lib64/libexiv2.so.14
#14 0x00007f7f1893528d in Exiv2::Internal::TiffSubIfd::doAddPath(unsigned short, std::stack<Exiv2::Internal::TiffPathItem, std::deque<Exiv2::Internal::TiffPathItem, std::allocator<Exiv2::Internal::TiffPathItem> > >&, Exiv2::Internal::TiffComponent*, std::auto_ptr<Exiv2::Internal::TiffComponent>) () at /usr/lib64/libexiv2.so.14
#15 0x00007f7f1892f432 in Exiv2::Internal::TiffComponent::addPath(unsigned short, std::stack<Exiv2::Internal::TiffPathItem, std::deque<Exiv2::Internal::TiffPathItem, std::allocator<Exiv2::Internal::TiffPathItem> > >&, Exiv2::Internal::TiffComponent*, std::auto_ptr<Exiv2::Internal::TiffComponent>) () at /usr/lib64/libexiv2.so.14
#16 0x00007f7f1892fee7 in Exiv2::Internal::TiffDirectory::doAddPath(unsigned short, std::stack<Exiv2::Internal::TiffPathItem, std::deque<Exiv2::Internal::TiffPathItem, std::allocator<Exiv2::Internal::TiffPathItem> > >&, Exiv2::Internal::TiffComponent*, std::auto_ptr<Exiv2::Internal::TiffComponent>) () at /usr/lib64/libexiv2.so.14
#17 0x00007f7f1892f432 in Exiv2::Internal::TiffComponent::addPath(unsigned short, std::stack<Exiv2::Internal::TiffPathItem, std::deque<Exiv2::Internal::TiffPathItem, std::allocator<Exiv2::Internal::TiffPathItem> > >&, Exiv2::Internal::TiffComponent*, std::auto_ptr<Exiv2::Internal::TiffComponent>) () at /usr/lib64/libexiv2.so.14
#18 0x00007f7f1894fc3c in Exiv2::Internal::TiffEncoder::add(Exiv2::Internal::TiffComponent*, Exiv2::Internal::TiffComponent*, unsigned int) () at /usr/lib64/libexiv2.so.14
#19 0x00007f7f1893bec6 in Exiv2::Internal::TiffParserWorker::encode(Exiv2::BasicIo&, unsigned char const*, unsigned int, Exiv2::ExifData const&, Exiv2::IptcData const&, Exiv2::XmpData const&, unsigned int, void (Exiv2::Internal::TiffEncoder::*(*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, Exiv2::Internal::IfdId))(Exiv2::Internal::TiffEntryBase*, Exiv2::Exifdatum const*), Exiv2::Internal::TiffHeaderBase*, Exiv2::Internal::OffsetWriter*) () at /usr/lib64/libexiv2.so.14
#20 0x00007f7f188c3807 in Exiv2::ExifParser::encode(std::vector<unsigned char, std::allocator<unsigned char> >&, unsigned char const*, unsigned int, Exiv2::ByteOrder, Exiv2::ExifData const&) () at /usr/lib64/libexiv2.so.14
#21 0x00007f7f188e0616 in Exiv2::JpegBase::doWriteMetadata(Exiv2::BasicIo&) () at /usr/lib64/libexiv2.so.14
#22 0x00007f7f188e1d23 in Exiv2::JpegBase::writeMetadata() () at /usr/lib64/libexiv2.so.14
#23 0x00007f7f1ad76837 in Gwenview::JpegContent::save(QIODevice*) () at /usr/lib64/libgwenviewlib.so.5
#24 0x00007f7f1ad3a311 in Gwenview::JpegDocumentLoadedImpl::saveInternal(QIODevice*, QByteArray const&) () at /usr/lib64/libgwenviewlib.so.5
#25 0x00007f7f1ad3fb41 in Gwenview::SaveJob::saveInternal() () at /usr/lib64/libgwenviewlib.so.5
#26 0x00007f7f1ad2e4cd in QtConcurrent::RunFunctionTask<void>::run() () at /usr/lib64/libgwenviewlib.so.5
#27 0x00007f7f1384276f in QThreadPoolThread::run() () at /usr/lib64/libQt5Core.so.5
#28 0x00007f7f1384599a in QThreadPrivate::start(void*) () at /usr/lib64/libQt5Core.so.5
#29 0x00007f7f116595ca in start_thread () at /usr/lib64/libpthread.so.0
#30 0x00007f7f12c38f6d in clone () at /usr/lib64/libc.so.6

Thread 3 (Thread 0x7f7ef9c11700 (LWP 10223)):
#0  0x00007ffd23e95b84 in clock_gettime ()
#1  0x00007f7f12c474e6 in clock_gettime () at /usr/lib64/libc.so.6
#2  0x00007f7f138e1ab3 in qt_gettime() () at /usr/lib64/libQt5Core.so.5
#3  0x00007f7f13a31869 in QTimerInfoList::updateCurrentTime() () at /usr/lib64/libQt5Core.so.5
#4  0x00007f7f13a31c65 in QTimerInfoList::timerWait(timespec&) () at /usr/lib64/libQt5Core.so.5
#5  0x00007f7f13a32dac in timerSourcePrepareHelper(GTimerSource*, int*) () at /usr/lib64/libQt5Core.so.5
#6  0x00007f7f13a32e75 in timerSourcePrepare(_GSource*, int*) () at /usr/lib64/libQt5Core.so.5
#7  0x00007f7f0eda0f59 in g_main_context_prepare () at /usr/lib64/libglib-2.0.so.0
#8  0x00007f7f0eda192b in g_main_context_iterate.isra () at /usr/lib64/libglib-2.0.so.0
#9  0x00007f7f0eda1b1c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#10 0x00007f7f13a3324b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#11 0x00007f7f139e25ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#12 0x00007f7f13841343 in QThread::exec() () at /usr/lib64/libQt5Core.so.5
#13 0x00007f7f1412f559 in QDBusConnectionManager::run() () at /usr/lib64/libQt5DBus.so.5
#14 0x00007f7f1384599a in QThreadPrivate::start(void*) () at /usr/lib64/libQt5Core.so.5
#15 0x00007f7f116595ca in start_thread () at /usr/lib64/libpthread.so.0
#16 0x00007f7f12c38f6d in clone () at /usr/lib64/libc.so.6

Thread 2 (Thread 0x7f7efaf7b700 (LWP 10222)):
#0  0x00007f7f12c2d3ed in poll () at /usr/lib64/libc.so.6
#1  0x00007f7f1045cf80 in _xcb_conn_wait () at /usr/lib64/libxcb.so.1
#2  0x00007f7f1045eb79 in xcb_wait_for_event () at /usr/lib64/libxcb.so.1
#3  0x00007f7efdcc6da9 in QXcbEventReader::run() () at /usr/lib64/libQt5XcbQpa.so.5
#4  0x00007f7f1384599a in QThreadPrivate::start(void*) () at /usr/lib64/libQt5Core.so.5
#5  0x00007f7f116595ca in start_thread () at /usr/lib64/libpthread.so.0
#6  0x00007f7f12c38f6d in clone () at /usr/lib64/libc.so.6

Thread 1 (Thread 0x7f7f0488a9c0 (LWP 10221)):
#0  0x00007f7f1165ebd0 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib64/libpthread.so.0
#1  0x00007f7f1045d1f7 in _xcb_conn_wait () at /usr/lib64/libxcb.so.1
#2  0x00007f7f1045e89f in wait_for_reply () at /usr/lib64/libxcb.so.1
#3  0x00007f7f1045e9b3 in xcb_wait_for_reply () at /usr/lib64/libxcb.so.1
#4  0x00007f7efdcc5a1a in QXcbConnection::sync() () at /usr/lib64/libQt5XcbQpa.so.5
#5  0x00007f7efdce595e in QXcbShmImage::preparePaint(QRegion const&) () at /usr/lib64/libQt5XcbQpa.so.5
#6  0x00007f7efdce5b04 in QXcbBackingStore::beginPaint(QRegion const&) () at /usr/lib64/libQt5XcbQpa.so.5
#7  0x00007f7f13e802fd in QBackingStore::beginPaint(QRegion const&) () at /usr/lib64/libQt5Gui.so.5
#8  0x00007f7f14e6ad72 in QWidgetBackingStore::doSync() () at /usr/lib64/libQt5Widgets.so.5
#9  0x00007f7f14e6b151 in QWidgetBackingStore::sync() () at /usr/lib64/libQt5Widgets.so.5
#10 0x00007f7f14e8abef in QWidgetPrivate::syncBackingStore() () at /usr/lib64/libQt5Widgets.so.5
#11 0x00007f7f14ea2a18 in QWidget::event(QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#12 0x00007f7f14fbc57b in QMainWindow::event(QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#13 0x00007f7f16fa9917 in KMainWindow::event(QEvent*) () at /usr/lib64/libKF5XmlGui.so.5
#14 0x00007f7f16fee835 in KXmlGuiWindow::event(QEvent*) () at /usr/lib64/libKF5XmlGui.so.5
#15 0x00007f7f14e5cc0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#16 0x00007f7f14e620ef in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#17 0x00007f7f139e37aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#18 0x00007f7f139e584f in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/libQt5Core.so.5
#19 0x00007f7f15183022 in QGraphicsScenePrivate::_q_processDirtyItems() () at /usr/lib64/libQt5Widgets.so.5
#20 0x00007f7f15188f89 in QGraphicsScene::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () at /usr/lib64/libQt5Widgets.so.5
#21 0x00007f7f13a0cbd9 in QObject::event(QEvent*) () at /usr/lib64/libQt5Core.so.5
#22 0x00007f7f151961ab in QGraphicsScene::event(QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#23 0x00007f7f14e5cc0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#24 0x00007f7f14e620ef in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#25 0x00007f7f139e37aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#26 0x00007f7f139e584f in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/libQt5Core.so.5
#27 0x00007f7f13a331b3 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /usr/lib64/libQt5Core.so.5
#28 0x00007f7f0eda16ba in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#29 0x00007f7f0eda1a70 in g_main_context_iterate.isra () at /usr/lib64/libglib-2.0.so.0
#30 0x00007f7f0eda1b1c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#31 0x00007f7f13a3322f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#32 0x00007f7f139e25ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#33 0x00007f7f139ea17c in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5
#34 0x0000560a4c109cd8 in main ()

Reported using DrKonqi
Comment 1 Enrico Tagliavini 2016-10-17 20:52:49 UTC
Created attachment 101607 [details]
Sample image causing the crash when cropped

This is an image from a very old camera. It could be it has some weird meta information or something like that.
Comment 2 Nate Graham 2017-09-08 18:46:22 UTC
Can't reproduce with GwenView 17.11.70. It crops without crashing.