Bug 410274 - Gwenview crashes when opening a folder created by it.
Summary: Gwenview crashes when opening a folder created by it.
Status: RESOLVED UPSTREAM
Alias: None
Product: gwenview
Classification: Applications
Component: general (show other bugs)
Version: 19.04.3
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: Gwenview Bugs
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2019-07-27 12:38 UTC by Greg McNelly
Modified: 2019-08-05 18:38 UTC (History)
1 user (show)

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 Greg McNelly 2019-07-27 12:38:54 UTC
Application: gwenview (19.04.3)

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

-- Information about the crash:
I had finished getting pictures off an SD card into a folder created by the downloading plug-in.  It did that successfully (checked with Dolphin).  The plug-in returned to Gwenview and I chose to open one of the pictures.  Gwenview then crashed.
I then browsed to the new folder and tried to open another picture and Gwenview crashed again.  Opening any of the JPG files with Okteta was successful.

This has happened before in the same circumstances.  Gwenview works OK on pictures in folders below my /Documents/ level but not on those in /Pictures/*.   I do not know if the last statement is relevant.

The crash can be reproduced every time.

-- Backtrace:
Application: Gwenview (gwenview), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f48b61a18c0 (LWP 4346))]

Thread 4 (Thread 0x7f488413a700 (LWP 4349)):
#0  0x00007f48ab15b9f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x555b29d233a8) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x555b29d23358, cond=0x555b29d23380) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x555b29d23380, mutex=0x555b29d23358) at pthread_cond_wait.c:655
#3  0x00007f488534531a in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007f4885345047 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007f48ab1556db in start_thread (arg=0x7f488413a700) at pthread_create.c:463
#6  0x00007f48b100088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f488dffb700 (LWP 4348)):
#0  0x00007fff57105b62 in clock_gettime ()
#1  0x00007f48b100fea6 in __GI___clock_gettime (clock_id=clock_id@entry=1, tp=tp@entry=0x7f488dffaa20) at ../sysdeps/unix/clock_gettime.c:115
#2  0x00007f48b19366b1 in qt_clock_gettime (ts=0x7f488dffaa20, clock=<optimized out>) at kernel/qelapsedtimer_unix.cpp:111
#3  do_gettime (frac=<synthetic pointer>, sec=<synthetic pointer>) at kernel/qelapsedtimer_unix.cpp:166
#4  qt_gettime () at kernel/qelapsedtimer_unix.cpp:175
#5  0x00007f48b1934ee9 in QTimerInfoList::updateCurrentTime (this=this@entry=0x7f4888004cf0) at kernel/qtimerinfo_unix.cpp:91
#6  0x00007f48b19354c5 in QTimerInfoList::timerWait (this=0x7f4888004cf0, tm=...) at kernel/qtimerinfo_unix.cpp:388
#7  0x00007f48b1936b0e in timerSourcePrepareHelper (timeout=0x7f488dffaae4, src=<optimized out>) at kernel/qeventdispatcher_glib.cpp:132
#8  timerSourcePrepare (source=<optimized out>, timeout=0x7f488dffaae4) at kernel/qeventdispatcher_glib.cpp:165
#9  0x00007f48a964eb28 in g_main_context_prepare () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007f48a964f4fb in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007f48a964f6dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007f48b1936dcb in QEventDispatcherGlib::processEvents (this=0x7f4888000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#13 0x00007f48b18d803a in QEventLoop::exec (this=this@entry=0x7f488dffacb0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#14 0x00007f48b16ff4ca in QThread::exec (this=<optimized out>) at thread/qthread.cpp:531
#15 0x00007f48aff83015 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#16 0x00007f48b1700c72 in QThreadPrivate::start (arg=0x7f48b01fad80) at thread/qthread_unix.cpp:361
#17 0x00007f48ab1556db in start_thread (arg=0x7f488dffb700) at pthread_create.c:463
#18 0x00007f48b100088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f489981e700 (LWP 4347)):
#0  0x00007f48b0ff3bf9 in __GI___poll (fds=0x7f489981dbe8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f48a93e6747 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f48a93e836a in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f489c3d3578 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4  0x00007f48b1700c72 in QThreadPrivate::start (arg=0x555b29b950d0) at thread/qthread_unix.cpp:361
#5  0x00007f48ab1556db in start_thread (arg=0x7f489981e700) at pthread_create.c:463
#6  0x00007f48b100088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f48b61a18c0 (LWP 4346)):
[KCrash Handler]
#6  0x00007f48af6d70ad in Exiv2::ExifData::findKey(Exiv2::ExifKey const&) const () from /usr/lib/x86_64-linux-gnu/libexiv2.so.26
#7  0x00007f48af71b496 in Exiv2::Internal::PentaxMakerNote::printShutterCount(std::ostream&, Exiv2::Value const&, Exiv2::ExifData const*) () from /usr/lib/x86_64-linux-gnu/libexiv2.so.26
#8  0x00007f48af6d5957 in Exiv2::Exifdatum::write(std::ostream&, Exiv2::ExifData const*) const () from /usr/lib/x86_64-linux-gnu/libexiv2.so.26
#9  0x00007f48b58408ff in Exiv2::operator<< (md=..., os=...) at /usr/include/exiv2/metadatum.hpp:305
#10 Gwenview::ImageMetaInfoModelPrivate::fillExivGroup<Exiv2::ExifData, std::_List_const_iterator<Exiv2::Exifdatum> > (this=0x555b2a29d590, parent=..., group=group@entry=0x555b2a6b8500, container=...) at ./lib/imagemetainfomodel.cpp:282
#11 0x00007f48b583c221 in Gwenview::ImageMetaInfoModel::setExiv2Image (this=<optimized out>, image=0x7f4874005f90) at ./lib/imagemetainfomodel.cpp:442
#12 0x00007f48b57e9ffc in Gwenview::Document::setExiv2Image (this=0x555b2a4d5d50, image=std::unique_ptr<Exiv2::Image> = {...}) at ./lib/document/document.cpp:397
#13 0x00007f48b57e8e12 in Gwenview::AbstractDocumentImpl::setDocumentExiv2Image (this=this@entry=0x555b2a6d1530, image=std::unique_ptr<Exiv2::Image> = {...}) at ./lib/document/abstractdocumentimpl.cpp:83
#14 0x00007f48b57f9b61 in Gwenview::LoadingDocumentImpl::slotMetaInfoLoaded (this=0x555b2a6d1530) at ./lib/document/loadingdocumentimpl.cpp:492
#15 0x00007f48b190998f in QtPrivate::QSlotObjectBase::call (a=0x7fff5707d790, r=0x555b2a6d1530, this=0x555b2a6d16b0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#16 QMetaObject::activate (sender=0x555b2a6c9558, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3776
#17 0x00007f48b170caf3 in QFutureWatcherBase::event (this=<optimized out>, event=0x7f48740176f0) at thread/qfuturewatcher.cpp:334
#18 0x00007f48b30c665c in QApplicationPrivate::notify_helper (this=this@entry=0x555b29b772c0, receiver=receiver@entry=0x555b2a6c9558, e=e@entry=0x7f48740176f0) at kernel/qapplication.cpp:3736
#19 0x00007f48b30cdb90 in QApplication::notify (this=0x7fff5707de30, receiver=0x555b2a6c9558, e=0x7f48740176f0) at kernel/qapplication.cpp:3483
#20 0x00007f48b18d9d18 in QCoreApplication::notifyInternal2 (receiver=0x555b2a6c9558, event=0x7f48740176f0) at kernel/qcoreapplication.cpp:1060
#21 0x00007f48b18d9eee in QCoreApplication::sendEvent (receiver=<optimized out>, event=event@entry=0x7f48740176f0) at kernel/qcoreapplication.cpp:1450
#22 0x00007f48b18dc8d7 in QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x555b29b6cd80) at kernel/qcoreapplication.cpp:1799
#23 0x00007f48b18dce78 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1653
#24 0x00007f48b1937793 in postEventSourceDispatch (s=0x555b29bc4110) at kernel/qeventdispatcher_glib.cpp:276
#25 0x00007f48a964f417 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007f48a964f650 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007f48a964f6dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007f48b1936daf in QEventDispatcherGlib::processEvents (this=0x555b29bc7bc0, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#29 0x00007f48b18d803a in QEventLoop::exec (this=this@entry=0x7fff5707dd30, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#30 0x00007f48b18e1170 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1363
#31 0x0000555b27cb17d1 in main (argc=<optimized out>, argv=<optimized out>) at ./app/main.cpp:163

Possible duplicates by query: bug 408954, bug 408577, bug 404546, bug 403615, bug 400952.

Reported using DrKonqi
Comment 1 Nate Graham 2019-08-04 23:50:36 UTC
It's crashing in the Exiv2 library (in Exiv2::Internal::PentaxMakerNote::printShutterCount()) while trying to access the properties of one of your photos.

Sounds like there's either a bug in Exiv2, a bug with the way your (Pentax?) camera is saving the metadata for your photos, or both! Fun times.

Please report this to the Exiv folks at https://github.com/exiv2/exiv2/issues. It would be especially helpful if you also attach one of the pictures that causes the crash when you try to open it in Gwenview. Thanks!
Comment 2 Greg McNelly 2019-08-05 18:38:50 UTC
   Thanks Nate, I'll do as you ask. You're correct that I'm using a
   Pentax camera so I shall also include an offending photo. Yours, Greg
   (McNelly) *Sent:* Monday, August 05, 2019 at 12:50 AM
   *From:* "Nate Graham" <bugzilla_noreply@kde.org>
   *To:* greg.mcnelly@mail.com
   *Subject:* [gwenview] [Bug 410274] Gwenview crashes when opening a
   folder created by it.https://bugs.kde.org/show_bug.cgi?id=410274

   Nate Graham <nate@kde.org> changed:

   What |Removed |Added
   ----------------------------------------------------------------------------
   Status|REPORTED |RESOLVED
   Resolution|--- |UPSTREAM
   CC| |nate@kde.org

   --- Comment #1 from Nate Graham <nate@kde.org> ---
   It's crashing in the Exiv2 library (in
   Exiv2::Internal::PentaxMakerNote::printShutterCount()) while trying to
   access
   the properties of one of your photos.

   Sounds like there's either a bug in Exiv2, a bug with the way your
   (Pentax?)
   camera is saving the metadata for your photos, or both! Fun times.

   Please report this to the Exiv folks at
   https://github.com/exiv2/exiv2/issues.
   It would be especially helpful if you also attach one of the pictures
   that
   causes the crash when you try to open it in Gwenview. Thanks!

   --
   You are receiving this mail because:
   You reported the bug.