Bug 474569 - Gwenview crashes when the number of images in a directory is too high
Summary: Gwenview crashes when the number of images in a directory is too high
Status: RESOLVED DUPLICATE of bug 473939
Alias: None
Product: gwenview
Classification: Applications
Component: general (other bugs)
Version First Reported In: 23.08.0
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Gwenview Bugs
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2023-09-15 18:13 UTC by fire.eagle.ch
Modified: 2023-09-17 23:29 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description fire.eagle.ch 2023-09-15 18:13:47 UTC
Application: gwenview (23.08.0)

Qt Version: 5.15.10
Frameworks Version: 5.110.0
Operating System: Linux 6.5.2-1-default x86_64
Windowing System: Wayland
Distribution: "openSUSE Tumbleweed"
DrKonqi: 5.27.7 [KCrashBackend]

-- Information about the crash:
Gwenview crashes when opening a file if there are too many images inside it. It seems related to file size as in some directories it only crashes when opening a png file while others it will crash with either

The crash can be reproduced every time.

-- Backtrace:
Application: Gwenview (gwenview), signal: Aborted

[KCrash Handler]
#4  0x00007f79a9691e0c in __pthread_kill_implementation () from /lib64/libc.so.6
#5  0x00007f79a963f0e6 in raise () from /lib64/libc.so.6
#6  0x00007f79a96268d7 in abort () from /lib64/libc.so.6
#7  0x00007f79a9aacc17 in ?? () from /lib64/libstdc++.so.6
#8  0x00007f79a9abc23c in ?? () from /lib64/libstdc++.so.6
#9  0x00007f79a9abc2a7 in std::terminate() () from /lib64/libstdc++.so.6
#10 0x00007f79a9abc508 in __cxa_throw () from /lib64/libstdc++.so.6
#11 0x00007f79ab4f621b in ?? () from /lib64/glibc-hwcaps/x86-64-v3/libexiv2.so.0.28.0
#12 0x00007f79ab56eba7 in Exiv2::JpegBase::readMetadata() () from /lib64/glibc-hwcaps/x86-64-v3/libexiv2.so.0.28.0
#13 0x00007f79ac40013d in Gwenview::Exiv2ImageLoader::load(QString const&) () from /lib64/libgwenviewlib.so.5
#14 0x00007f79ac4408cb in ?? () from /lib64/libgwenviewlib.so.5
#15 0x00007f79ac44166c in Gwenview::TimeUtils::dateTimeForFileItem(KFileItem const&, Gwenview::TimeUtils::CachePolicy) () from /lib64/libgwenviewlib.so.5
#16 0x00007f79ac418b65 in Gwenview::SortedDirModel::lessThan(QModelIndex const&, QModelIndex const&) const () from /lib64/libgwenviewlib.so.5
#17 0x00007f79aa0c6922 in QSortFilterProxyModelLessThan::operator() (r2=635, r1=<optimized out>, this=0x7ffc86273240) at itemmodels/qsortfilterproxymodel.cpp:82
#18 __gnu_cxx::__ops::_Iter_comp_iter<QSortFilterProxyModelLessThan>::operator()<int*, int*> (__it2=0x560430ab93e0, __it1=0x560430ab93e4, this=0x7ffc86273240) at /usr/include/c++/13/bits/predefined_ops.h:158
#19 std::__insertion_sort<int*, __gnu_cxx::__ops::_Iter_comp_iter<QSortFilterProxyModelLessThan> > (__first=__first@entry=0x560430ab93e0, __last=__last@entry=0x560430ab93fc, __comp=...) at /usr/include/c++/13/bits/stl_algo.h:1819
#20 0x00007f79aa0c8726 in std::__chunk_insertion_sort<int*, long, __gnu_cxx::__ops::_Iter_comp_iter<QSortFilterProxyModelLessThan> > (__chunk_size=7, __comp=..., __last=0x560430ab9468, __first=0x560430ab93e0) at /usr/include/c++/13/bits/stl_algo.h:2706
#21 std::__merge_sort_with_buffer<int*, int*, __gnu_cxx::__ops::_Iter_comp_iter<QSortFilterProxyModelLessThan> > (__first=__first@entry=0x560430ab9338, __last=__last@entry=0x560430ab9468, __buffer=__buffer@entry=0x56043119b9a0, __comp=...) at /usr/include/c++/13/bits/stl_algo.h:2727
#22 0x00007f79aa0ba92f in std::__stable_sort_adaptive<int*, int*, __gnu_cxx::__ops::_Iter_comp_iter<QSortFilterProxyModelLessThan> > (__comp=..., __buffer=0x56043119b9a0, __last=0x560430ab9598, __middle=<optimized out>, __first=0x560430ab9338) at /usr/include/c++/13/bits/stl_algo.h:2742
#23 std::__stable_sort<int*, __gnu_cxx::__ops::_Iter_comp_iter<QSortFilterProxyModelLessThan> > (__comp=..., __last=0x560430ab9598, __first=0x560430ab9338) at /usr/include/c++/13/bits/stl_algo.h:5041
#24 std::stable_sort<int*, QSortFilterProxyModelLessThan> (__comp=..., __last=0x560430ab9598, __first=0x560430ab9338) at /usr/include/c++/13/bits/stl_algo.h:5119
#25 QSortFilterProxyModelPrivate::sort_source_rows (this=<optimized out>, source_rows=..., source_parent=...) at itemmodels/qsortfilterproxymodel.cpp:704
#26 0x00007f79aa0c08cb in QSortFilterProxyModelPrivate::source_items_inserted (this=0x7f799c003090, source_parent=..., start=<optimized out>, end=<optimized out>, orient=Qt::Vertical) at itemmodels/qsortfilterproxymodel.cpp:1060
#27 0x00007f79aa0c3afd in QSortFilterProxyModelPrivate::_q_sourceRowsInserted (end=757, start=592, source_parent=..., this=0x7f799c003090) at itemmodels/qsortfilterproxymodel.cpp:1702
#28 QSortFilterProxyModelPrivate::_q_sourceRowsInserted (this=0x7f799c003090, source_parent=..., start=592, end=757) at itemmodels/qsortfilterproxymodel.cpp:1696
#29 0x00007f79aa1257b3 in doActivate<false> (sender=0x560430718650, signal_index=13, argv=0x7ffc86273620) at kernel/qobject.cpp:3937
#30 0x00007f79aa11e47f in QMetaObject::activate (sender=sender@entry=0x560430718650, m=m@entry=0x7f79aa3c5d40, local_signal_index=local_signal_index@entry=10, argv=argv@entry=0x7ffc86273620) at kernel/qobject.cpp:3985
#31 0x00007f79aa08643e in QAbstractItemModel::rowsInserted (this=this@entry=0x560430718650, _t1=..., _t2=<optimized out>, _t3=<optimized out>, _t4=...) at .moc/moc_qabstractitemmodel.cpp:592
#32 0x00007f79aa08f38a in QAbstractItemModel::endInsertRows (this=0x560430718650) at itemmodels/qabstractitemmodel.cpp:2780
#33 0x00007f79abfc98d5 in ?? () from /lib64/libKF5KIOWidgets.so.5
#34 0x00007f79aa125812 in QtPrivate::QSlotObjectBase::call (a=0x7ffc862738c0, r=0x560430718650, this=0x560430740630) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#35 doActivate<false> (sender=0x560430718bd0, signal_index=16, argv=0x7ffc862738c0) at kernel/qobject.cpp:3925
#36 0x00007f79abe07dca in KCoreDirLister::itemsAdded(QUrl const&, KFileItemList const&) () from /lib64/libKF5KIOCore.so.5
#37 0x00007f79abe08e1c in ?? () from /lib64/libKF5KIOCore.so.5
#38 0x00007f79abe05e80 in ?? () from /lib64/libKF5KIOCore.so.5
#39 0x00007f79aa125812 in QtPrivate::QSlotObjectBase::call (a=0x7ffc86273b30, r=0x7f79abe8b4a0, this=0x560430ae3980) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#40 doActivate<false> (sender=0x560430d04270, signal_index=25, argv=0x7ffc86273b30) at kernel/qobject.cpp:3925
#41 0x00007f79abdc3644 in KIO::ListJob::entries(KIO::Job*, QList<KIO::UDSEntry> const&) () from /lib64/libKF5KIOCore.so.5
#42 0x00007f79aa125812 in QtPrivate::QSlotObjectBase::call (a=0x7ffc86273c30, r=0x560430d04270, this=0x560430b4f9c0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#43 doActivate<false> (sender=0x560430a89f90, signal_index=9, argv=0x7ffc86273c30) at kernel/qobject.cpp:3925
#44 0x00007f79abdb40e5 in KIO::SlaveInterface::listEntries(QList<KIO::UDSEntry> const&) () from /lib64/libKF5KIOCore.so.5
#45 0x00007f79abdb907d in KIO::SlaveInterface::dispatch(int, QByteArray const&) () from /lib64/libKF5KIOCore.so.5
#46 0x00007f79abdb3e16 in KIO::SlaveInterface::dispatch() () from /lib64/libKF5KIOCore.so.5
#47 0x00007f79abdb6719 in KIO::Slave::gotInput() () from /lib64/libKF5KIOCore.so.5
#48 0x00007f79aa125812 in QtPrivate::QSlotObjectBase::call (a=0x7ffc86273e50, r=0x560430a89f90, this=0x560430a61c90) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#49 doActivate<false> (sender=0x560430a89f70, signal_index=3, argv=0x7ffc86273e50) at kernel/qobject.cpp:3925
#50 0x00007f79aa119320 in QObject::event (this=0x560430a89f70, e=0x560430c0ae60) at kernel/qobject.cpp:1347
#51 0x00007f79aada519e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x560430a89f70, e=0x560430c0ae60) at kernel/qapplication.cpp:3640
#52 0x00007f79aa0ed568 in QCoreApplication::notifyInternal2 (receiver=0x560430a89f70, event=0x560430c0ae60) at kernel/qcoreapplication.cpp:1064
#53 0x00007f79aa0ed72e in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1462
#54 0x00007f79aa0f0b61 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5604305094b0) at kernel/qcoreapplication.cpp:1821
#55 0x00007f79aa0f10a8 in QCoreApplication::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>) at kernel/qcoreapplication.cpp:1680
#56 0x00007f79aa146c93 in postEventSourceDispatch (s=0x56043056b3e0) at kernel/qeventdispatcher_glib.cpp:277
#57 0x00007f79a7d169d8 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#58 0x00007f79a7d16de8 in ?? () from /lib64/libglib-2.0.so.0
#59 0x00007f79a7d16e7c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#60 0x00007f79aa1464a6 in QEventDispatcherGlib::processEvents (this=0x560430577d40, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#61 0x00007f79aa0ebffb in QEventLoop::exec (this=this@entry=0x7ffc86274240, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#62 0x00007f79aa0f4490 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#63 0x000056042f6dd423 in ?? ()
#64 0x00007f79a96281b0 in __libc_start_call_main () from /lib64/libc.so.6
#65 0x00007f79a9628279 in __libc_start_main_impl () from /lib64/libc.so.6
#66 0x000056042f6ddb85 in ?? ()
[Inferior 1 (process 15899) detached]

The reporter indicates this bug may be a duplicate of or related to bug 456244, bug 472121, bug 472364, bug 473939.

Reported using DrKonqi
Comment 1 Nicolas Fella 2023-09-17 22:14:57 UTC
The amout of images is not the problem. Rather it's one or multiple specific images that trigger a crash in the exiv (image metadata handling) library
Comment 2 Nicolas Fella 2023-09-17 23:29:38 UTC

*** This bug has been marked as a duplicate of bug 473939 ***