https://bugs.kde.org/show_bug.cgi?id=502302
Bug ID: 502302
Summary: crash in
std::default_delete<QFFmpegResampler>::operator()
Classification: Applications
Product: digikam
Version: 8.6.0
Platform: Other
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: Preview-Video
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
SUMMARY
I've seen a couple of digikam crashes recently, I've got a backtrace below
showing it's in std::default_delete<QFFmpegResampler>::operator()
STEPS TO REPRODUCE
(It seems to happen when some of the time)
1. Take an album with some video files among the images (not sure which format
is triggering it)
2. Open one of the images
3. Use back and forward arrows to move between the images
4. Run into one of the videos
OBSERVED RESULT
Crash as shown below
EXPECTED RESULT
No crash
SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Fedora 42 beta, under xfce
digikam-libs-8.6.0-2.fc42.x86_64
digikam-8.6.0-2.fc42.x86_64
digiKam: 8.6.0
KDE Frameworks: 6.12.0
Qt: Using 6.8.2 and built against 6.8.2
Fedora Linux 42 (Adams Prerelease) (Xcb)
Build ABI: x86_64-little_endian-lp64
Kernel: linux 6.14.0-63.fc42.x86_64
ADDITIONAL INFORMATION
The crashing thread is thread 1, all the others seem to be in
__syscall_cancel_arch
(gdb) bt full
#0 0x00007f403bf2f45d in std::default_delete<QFFmpegResampler>::operator()
(this=<optimized out>, __ptr=0x7f3f2caff100, this=<optimized out>,
__ptr=<optimized out>) at /usr/include/c++/15/bits/unique_ptr.h:87
#1 std::__uniq_ptr_impl<QFFmpegResampler,
std::default_delete<QFFmpegResampler> >::reset
(this=0x559082db2a30, __p=0x0, this=<optimized out>, __p=<optimized out>)
at /usr/include/c++/15/bits/unique_ptr.h:205
__old_p = 0x7f3f2caff100
__old_p = <optimized out>
#2 std::unique_ptr<QFFmpegResampler, std::default_delete<QFFmpegResampler>
>::reset (this=0x559082db2a30, __p=0x0)
at /usr/include/c++/15/bits/unique_ptr.h:504
#3 QFFmpeg::AudioRenderer::updateOutputs (this=0x559082db2910, frame=...)
at
/usr/src/debug/qt6-qtmultimedia-6.8.2-1.fc42.x86_64/src/plugins/multimedia/ffmpeg/playbackengine/qffmpegaudiorenderer.cpp:255
#4 QFFmpeg::AudioRenderer::renderInternal (this=0x559082db2910, frame=...)
at
/usr/src/debug/qt6-qtmultimedia-6.8.2-1.fc42.x86_64/src/plugins/multimedia/ffmpeg/playbackengine/qffmpegaudiorenderer.cpp:117
result = {done = <optimized out>, recheckInterval =
std::chrono::duration = { <optimized out>us }}
#5 0x00007f403bf2a25e in QFFmpeg::Renderer::doNextStep (this=0x559082db2910)
at
/usr/src/debug/qt6-qtmultimedia-6.8.2-1.fc42.x86_64/src/plugins/multimedia/ffmpeg/playbackengine/qffmpegrenderer.cpp:168
frame = {d = {d = <optimized out>}}
result = {done = <optimized out>, recheckInterval =
std::chrono::duration = { <optimized out>us }}
#6 0x00007f411035eefa in QtPrivate::QSlotObjectBase::call
(this=0x7f3f2c4504d0, r=0x559082db2910, a=0x7f3f5affa110)
at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobjectdefs_impl.h:486
#7 doActivate<false> (sender=0x7f3f2cafeea0, signal_index=3,
argv=argv@entry=0x7f3f5affa110)
at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:4115
obj = {m_slotObject = std::unique_ptr<QtPrivate::QSlotObjectBase> =
{get() = 0x7f3f2c4504d0}}
receiver = 0x559082db2910
td = <optimized out>
receiverInSameThread = <optimized out>
senderData = {previous = 0x0, receiver = 0x0, sender = 0x7f3f2cafeea0,
signal = 3}
c = 0x7f3f2c53e600
connections = {d = 0x7f3f2c5a2990}
list = 0x7f3f2c461290
inSenderThread = <optimized out>
highestConnectionId = 1
signalVector = 0x7f3f2c461240
currentThreadId = 0x7f3f5affd6c0
--Type <RET> for more, q to quit, c to continue without paging--
sp = <optimized out>
signal_spy_set = 0x0
empty_argv = {0x0}
senderDeleted = false
#8 0x00007f41103558a9 in QMetaObject::activate
(sender=<optimized out>, m=m@entry=0x7f4110883060
<QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0,
argv=argv@entry=0x7f3f5affa110) at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:4175
signal_index = <optimized out>
#9 0x00007f411036ef0d in QTimer::timeout (this=<optimized out>, _t1=...)
at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/redhat-linux-build/src/corelib/Core_autogen/include/moc_qtimer.cpp:223
_a = {0x0, 0x7f3f5affa10f}
#10 0x00007f411034f9b5 in QObject::event (this=<optimized out>, e=<optimized
out>)
at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qobject.cpp:1448
#11 0x00007f411143d4ca in QApplicationPrivate::notify_helper (this=<optimized
out>, receiver=0x7f3f2cafeea0, e=0x7f3f5affa2d0)
at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/widgets/kernel/qapplication.cpp:3296
consumed = false
filtered = false
#12 0x00007f41102f549c in QCoreApplication::notifyInternal2
(receiver=0x7f3f2cafeea0, event=0x7f3f5affa2d0)
at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1172
selfRequired = <optimized out>
result = false
cbdata = {0x7f3f2cafeea0, 0x7f3f5affa2d0, 0x7f3f5affa23f}
d = <optimized out>
threadData = 0x5590798e5950
scopeLevelCounter = {threadData = 0x5590798e5950}
#13 0x00007f41102f56ed in QCoreApplication::sendEvent (receiver=<optimized
out>, event=<optimized out>)
at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qcoreapplication.cpp:1612
#14 0x00007f41104b9d78 in QTimerInfoList::activateTimers (this=<optimized out>)
at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qtimerinfo_unix.cpp:426
e = {<QEvent> = {_vptr.QEvent = 0x7f4110880c30 <vtable for
QTimerEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0},
stringdata = 0x7f4110700980 <qt_meta_stringdata_ZN6QEventE>, data =
0x7f41107003a0 <qt_meta_data_ZN6QEventE>, static_metacall = 0x0,
relatedMetaObjects = 0x0, metaTypes = 0x7f411087b880
<qt_incomplete_metaTypeArray<(anonymous namespace)::qt_meta_tag_ZN6QEventE_t,
QtPrivate::TypeAndForceComplete<QEvent::Type, std::integral_constant<bool,
true> >, QtPrivate::TypeAndForceComplete<QEvent, std::integral_constant<bool,
true> > >>, extradata = 0x0}}, t = 1, m_posted = false, m_spont--Type <RET> for
more, q to quit, c to continue without paging--
= false, m_accept = true, m_unused = false, m_reserved = 0, m_inputEvent = 0,
m_pointerEvent = 0, m_singlePointEvent = 0}, m_id = (unknown: 0x80000a3)}
currentTimerInfo = 0x0
now = std::chrono::_V2::steady_clock time_point = { 20803354939552ns }
stillActive = Python Exception <class 'gdb.error'>: value has been
optimized out
{__now = <synthetic pointer>}
it = {i = <optimized out>}
maxCount = <optimized out>
n_act = 1
#15 0x00007f41105f69f1 in timerSourceDispatch (source=<optimized out>)
at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:152
timerSource = <optimized out>
#16 idleTimerSourceDispatch (source=<optimized out>) at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:199
timerSource = <optimized out>
#17 0x00007f410399c5e0 in g_main_dispatch (context=0x7f3f2c001da0) at
../glib/gmain.c:3398
dispatch = 0x7f41105f69c0 <idleTimerSourceDispatch(GSource*,
GSourceFunc, gpointer)>
prev_source = 0x0
begin_time_nsec = 20803354939411
was_in_call = 0
user_data = 0x0
callback = 0x0
cb_funcs = 0x0
cb_data = 0x0
need_destroy = <optimized out>
source = 0x7f3f2c002da0
current = 0x7f3f2c59d580
i = 1
#18 g_main_context_dispatch_unlocked (context=0x7f3f2c001da0) at
../glib/gmain.c:4249
#19 0x00007f41039a5708 in g_main_context_iterate_unlocked
(context=context@entry=0x7f3f2c001da0, block=block@entry=1,
dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4314
max_priority = 2147483647
timeout_usec = 18000
some_ready = 1
nfds = 1
allocated_nfds = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
fds = <optimized out>
begin_time_nsec = <optimized out>
#20 0x00007f41039a58b7 in g_main_context_iteration (context=0x7f3f2c001da0,
may_block=1) at ../glib/gmain.c:4379
retval = <optimized out>
#21 0x00007f41105f6cc3 in QEventDispatcherGlib::processEvents
(this=0x7f3f2c53efe0, flags=...)
at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/kernel/qeventdispatcher_glib.cpp:399
d = 0x7f3f2c43dac0
canWait = <optimized out>
savedFlags = {i = 0}
result = <optimized out>
#22 0x00007f41103026d3 in QEventLoop::exec (this=this@entry=0x7f3f5affa590,
flags=..., flags@entry=...)
at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/global/qflags.h:34
d = 0x7f3f2c001000
threadData = <optimized out>
locker = {m_mutex = 0x559083c767a8, m_isLocked = false}
ref = {d = <optimized out>, locker = <optimized out>, exceptionCaught =
<optimized out>}
app = <optimized out>
#23 0x00007f411041eb2f in QThread::exec (this=<optimized out>) at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/thread/qthread.cpp:590
d = 0x559083c76730
status = <optimized out>
locker = {m_mutex = 0x559083c767a8, m_isLocked = false}
eventLoop = {<QObject> = {_vptr.QObject = 0x7f4110880da8 <vtable for
QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0},
stringdata = 0x7f41107045e0 <qt_meta_stringdata_ZN7QObjectE>, data =
0x7f41107044c0 <qt_meta_data_ZN7QObjectE>, static_metacall = 0x7f411035bbb0
<QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, metaTypes = 0x7f41108828a0
<qt_incomplete_metaTypeArray<(anonymous namespace)::qt_meta_tag_ZN7QObjectE_t,
QtPrivate::TypeAndForceComplete<QString, std::integral_constant<bool, true> >,
QtPrivate::TypeAndForceComplete<QObject, std::integral_constant<bool, true> >,
QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >,
QtPrivate::TypeAndForceComplete<QObject*, std::integral_constant<bool, false>
>, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >,
QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >,
QtPrivate::TypeAndForceComplete<QString const&, std::integral_constant<bool,
false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool,
false> >, QtPrivate::TypeAndForceComplete<QObject*,
std::integral_constant<bool, false> > >>, extradata = 0x0}}, d_ptr = {d =
0x7f3f2c001000}}, static staticMetaObject = {d = {superdata = {direct =
0x7f411087ca40 <QObject::staticMetaObject>}, stringdata = 0x7f4110701b60
<qt_meta_stringdata_ZN10QEventLoopE>, data = 0x7f4110701a60
<qt_meta_data_ZN10QEventLoopE>, static_metacall = 0x7f41103022a0
<QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, metaTypes = 0x7f4110880cc0
<qt_incomplete_metaTypeArray<(anonymous
namespace)::qt_meta_tag_ZN10QEventLoopE_t,
QtPrivate::TypeAndForceComplete<QFlags<QEventLoop::ProcessEventsFlag>,
std::integral_constant<bool, true> >, QtPrivate::TypeAndForceCompl--Type <RET>
for more, q to quit, c to continue without paging--
ete<QEventLoop, std::integral_constant<bool, true> >,
QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >,
QtPrivate::TypeAndForceComplete<int, std::integral_constant<bool, false> >,
QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >,
QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> > >>,
extradata = 0x0}}}
returnCode = <optimized out>
#24 0x00007f41104bb6d0 in operator() (__closure=<optimized out>) at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/thread/qthread_unix.cpp:375
#25 (anonymous
namespace)::terminate_on_exception<QThreadPrivate::start(void*)::<lambda()> >
(t=<optimized out>)
at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/thread/qthread_unix.cpp:311
#26 QThreadPrivate::start (arg=0x55908035ed20) at
/usr/src/debug/qt6-qtbase-6.8.2-3.fc42.x86_64/src/corelib/thread/qthread_unix.cpp:339
__clframe = {__cancel_routine = <optimized out>, __cancel_arg =
0x55908035ed20, __do_it = 1, __cancel_type = <optimized out>}
thr = 0x55908035ed20
data = <optimized out>
#27 0x00007f410fc7e324 in start_thread (arg=<optimized out>) at
pthread_create.c:448
ret = <optimized out>
pd = <optimized out>
out = <optimized out>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {139910086383296,
3791760048067575670, 0, 140729691197408, 139917414359104, 139910086383296,
3791760048090644342, 3775041078443376502}, mask_was_saved = 0}}, priv = {pad =
{0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <optimized out>
#28 0x00007f410fd01cfc in __GI___clone3 () at
../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
--
You are receiving this mail because:
You are watching all bug changes.