Bug 413278 - K3b crashes on close after a theme installed from KDE Store to be uninstalled
Summary: K3b crashes on close after a theme installed from KDE Store to be uninstalled
Status: RESOLVED FIXED
Alias: None
Product: k3b
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: k3b developers
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2019-10-21 14:04 UTC by Patrick Silva
Modified: 2019-10-27 23:03 UTC (History)
3 users (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 Patrick Silva 2019-10-21 14:04:43 UTC
Application: k3b (19.11.70)

Qt Version: 5.13.1
Frameworks Version: 5.64.0
Operating System: Linux 5.0.0-29-generic x86_64
Distribution: KDE neon Unstable Edition

-- Information about the crash:
- What I was doing when the application crashed:
install a theme from KDE Store using the "Get new themes..." in "Theme" section of K3b settings.
Then uninstall it clicking on "Remove theme" button. Close K3b, Plasma shows a notification about K3b crash.

The crash can be reproduced every time.

-- Backtrace:
Application: K3b (k3b), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f20c6504e80 (LWP 4909))]

Thread 6 (Thread 0x7f2065b28700 (LWP 4984)):
#0  0x00007f20c000dbf9 in __GI___poll (fds=0x7f205c0049b0, nfds=1, timeout=131832) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f20b51955c9 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7f205c0049b0, timeout=<optimized out>, context=0x7f205c000bf0) at ../../../../glib/gmain.c:4203
#2  g_main_context_iterate (context=context@entry=0x7f205c000bf0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../../glib/gmain.c:3897
#3  0x00007f20b51956dc in g_main_context_iteration (context=0x7f205c000bf0, may_block=may_block@entry=1) at ../../../../glib/gmain.c:3963
#4  0x00007f20c09609db in QEventDispatcherGlib::processEvents (this=0x7f205c000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#5  0x00007f20c0900eaa in QEventLoop::exec (this=this@entry=0x7f2065b27c20, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#6  0x00007f20c071c3ca in QThread::exec (this=<optimized out>) at thread/qthread.cpp:531
#7  0x00007f20c071db72 in QThreadPrivate::start (arg=0x561e4a2de570) at thread/qthread_unix.cpp:360
#8  0x00007f20b6cf46db in start_thread (arg=0x7f2065b28700) at pthread_create.c:463
#9  0x00007f20c001a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7f2067ead700 (LWP 4982)):
#0  0x00007f20c00090b4 in __GI___libc_read (fd=35, buf=buf@entry=0x7f2067eaca10, nbytes=nbytes@entry=16) at ../sysdeps/unix/sysv/linux/read.c:27
#1  0x00007f20b51da2d0 in read (__nbytes=16, __buf=0x7f2067eaca10, __fd=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/unistd.h:44
#2  g_wakeup_acknowledge (wakeup=0x7f2068003590) at ../../../../glib/gwakeup.c:210
#3  0x00007f20b51950b7 in g_main_context_check (context=context@entry=0x7f2060000bf0, max_priority=2147483647, fds=fds@entry=0x561e4a466430, n_fds=n_fds@entry=1) at ../../../../glib/gmain.c:3680
#4  0x00007f20b5195570 in g_main_context_iterate (context=context@entry=0x7f2060000bf0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../../glib/gmain.c:3899
#5  0x00007f20b51956dc in g_main_context_iteration (context=0x7f2060000bf0, may_block=may_block@entry=1) at ../../../../glib/gmain.c:3963
#6  0x00007f20c09609db in QEventDispatcherGlib::processEvents (this=0x7f2060000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#7  0x00007f20c0900eaa in QEventLoop::exec (this=this@entry=0x7f2067eacc20, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#8  0x00007f20c071c3ca in QThread::exec (this=<optimized out>) at thread/qthread.cpp:531
#9  0x00007f20c071db72 in QThreadPrivate::start (arg=0x561e4a2b5400) at thread/qthread_unix.cpp:360
#10 0x00007f20b6cf46db in start_thread (arg=0x7f2067ead700) at pthread_create.c:463
#11 0x00007f20c001a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f208574b700 (LWP 4978)):
#0  0x00007f20b6cf82d2 in __pthread_mutex_unlock_full (mutex=0x561e4a205b40, decr=1) at pthread_mutex_unlock.c:99
#1  0x00007f20ac5465fe in pa_mutex_unlock () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-11.1.so
#2  0x00007f20b3260473 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#3  0x00007f20b3251e40 in pa_mainloop_poll () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#4  0x00007f20b32524d0 in pa_mainloop_iterate () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#5  0x00007f20b3252560 in pa_mainloop_run () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#6  0x00007f20b32603c9 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#7  0x00007f20ac547318 in ?? () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-11.1.so
#8  0x00007f20b6cf46db in start_thread (arg=0x7f208574b700) at pthread_create.c:463
#9  0x00007f20c001a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f2097fd7700 (LWP 4911)):
#0  0x00007f20b6cfa9f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x561e49be2ca8) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x561e49be2c58, cond=0x561e49be2c80) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x561e49be2c80, mutex=0x561e49be2c58) at pthread_cond_wait.c:655
#3  0x00007f20991d12cb in cnd_wait (mtx=0x561e49be2c58, cond=0x561e49be2c80) at ../src/../include/c11/threads_posix.h:155
#4  util_queue_thread_func (input=input@entry=0x561e49ab58c0) at ../src/util/u_queue.c:256
#5  0x00007f20991d0ff7 in impl_thrd_routine (p=<optimized out>) at ../src/../include/c11/threads_posix.h:87
#6  0x00007f20b6cf46db in start_thread (arg=0x7f2097fd7700) at pthread_create.c:463
#7  0x00007f20c001a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f20a4ed7700 (LWP 4910)):
#0  timerSourceCheck (source=0x7f20a00050c0) at kernel/qeventdispatcher_glib.cpp:172
#1  0x00007f20b5194fe1 in g_main_context_check (context=context@entry=0x7f20a0000bf0, max_priority=2147483647, fds=fds@entry=0x7f20a0003ce0, n_fds=n_fds@entry=1) at ../../../../glib/gmain.c:3735
#2  0x00007f20b5195570 in g_main_context_iterate (context=context@entry=0x7f20a0000bf0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../../glib/gmain.c:3899
#3  0x00007f20b51956dc in g_main_context_iteration (context=0x7f20a0000bf0, may_block=may_block@entry=1) at ../../../../glib/gmain.c:3963
#4  0x00007f20c09609db in QEventDispatcherGlib::processEvents (this=0x7f20a0000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#5  0x00007f20c0900eaa in QEventLoop::exec (this=this@entry=0x7f20a4ed6bf0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#6  0x00007f20c071c3ca in QThread::exec (this=this@entry=0x7f20c209ed80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:531
#7  0x00007f20c1e270e5 in QDBusConnectionManager::run (this=0x7f20c209ed80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178
#8  0x00007f20c071db72 in QThreadPrivate::start (arg=0x7f20c209ed80 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:360
#9  0x00007f20b6cf46db in start_thread (arg=0x7f20a4ed7700) at pthread_create.c:463
#10 0x00007f20c001a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f20c6504e80 (LWP 4909)):
[KCrash Handler]
#6  0x00007f20c0f59b18 in QExplicitlySharedDataPointer<QPlatformPixmap>::~QExplicitlySharedDataPointer (this=0x561e4a03ab88, __in_chrg=<optimized out>) at ../../include/QtCore/../../src/corelib/tools/qshareddata.h:182
#7  0x00007f20c0f582bc in QPixmap::~QPixmap (this=0x561e4a03ab70, __in_chrg=<optimized out>) at image/qpixmap.cpp:263
#8  0x0000561e47e7b940 in K3b::Theme::~Theme (this=0x561e4a03ab10, __in_chrg=<optimized out>) at ./src/k3bthememanager.h:28
#9  qDeleteAll<QList<K3b::Theme*>::const_iterator> (end=..., begin=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:320
#10 qDeleteAll<QList<K3b::Theme*> > (c=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qalgorithms.h:328
#11 K3b::ThemeManager::~ThemeManager (this=0x561e49a07fb0, __in_chrg=<optimized out>) at ./src/k3bthememanager.cpp:200
#12 0x0000561e47e7c4d9 in K3b::ThemeManager::~ThemeManager (this=0x561e49a07fb0, __in_chrg=<optimized out>) at ./src/k3bthememanager.cpp:203
#13 0x00007f20c09312bb in QObjectPrivate::deleteChildren (this=this@entry=0x561e499d12d0) at kernel/qobject.cpp:2019
#14 0x00007f20c093af53 in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1032
#15 0x0000561e47e44076 in K3b::Application::Core::~Core (this=0x561e49a12fe0, __in_chrg=<optimized out>) at ./src/k3bapplication.cpp:245
#16 K3b::Application::Core::~Core (this=0x561e49a12fe0, __in_chrg=<optimized out>) at ./src/k3bapplication.cpp:247
#17 0x00007f20c09312bb in QObjectPrivate::deleteChildren (this=this@entry=0x561e4990b680) at kernel/qobject.cpp:2019
#18 0x00007f20c093af53 in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1032
#19 0x00007f20c0905316 in QCoreApplication::~QCoreApplication (this=0x7ffc0b754e70, __in_chrg=<optimized out>) at kernel/qcoreapplication.cpp:897
#20 0x00007f20c0eceb3c in QGuiApplication::~QGuiApplication (this=0x7ffc0b754e70, __in_chrg=<optimized out>) at kernel/qguiapplication.cpp:651
#21 0x00007f20c1708909 in QApplication::~QApplication (this=0x7ffc0b754e70, __in_chrg=<optimized out>) at kernel/qapplication.cpp:773
#22 0x0000561e47e40411 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:26

Possible duplicates by query: bug 76487, bug 390878, bug 379035, bug 335071, bug 319132.

Reported using DrKonqi
Comment 1 Albert Astals Cid 2019-10-27 23:03:01 UTC
Git commit a930be4876104ea4a0c5332b85b625240e45fd72 by Albert Astals Cid.
Committed on 27/10/2019 at 23:01.
Pushed by aacid into branch 'Applications/19.08'.

Fix crash on exit while uninstalling a theme

We need to make the thememanager return a reference to its list of
themes, this way, takeAt in ThemeModel::removeRows actually removes
the theme from the thememanager too and thus this way there's no attempt
at double delete on shutdown

M  +1    -1    src/k3bthememanager.cpp
M  +1    -1    src/k3bthememanager.h

https://commits.kde.org/k3b/a930be4876104ea4a0c5332b85b625240e45fd72