Bug 482499 - KWalletmanager crashes on Quit
Summary: KWalletmanager crashes on Quit
Status: RESOLVED FIXED
Alias: None
Product: kwalletmanager
Classification: Applications
Component: general (show other bugs)
Version: 24.02.0
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: Valentin Rusu
URL:
Keywords: drkonqi, qt6
Depends on:
Blocks:
 
Reported: 2024-03-05 21:47 UTC by Arek Guzinski
Modified: 2024-03-13 10:16 UTC (History)
2 users (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 Arek Guzinski 2024-03-05 21:47:08 UTC
Application: kwalletmanager5 (24.02.0)

Qt Version: 6.6.2
Frameworks Version: 6.0.0
Operating System: Linux 6.5.0-21-generic x86_64
Windowing System: Wayland
Distribution: KDE neon 6.0
DrKonqi: 6.0.0 [KCrashBackend]

-- Information about the crash:
Whenever I close kwalletmanager (File -> Quit or Window close does not seem to matter), one of 2 things happens (chosen randomly)

1. it crashes (see backtrace)
2. no crash, window is gone, but the process continues running and can only be ended through the System Monitor / killall / similiar program.

This is reproducable by simply starting, then quitting the application.

The only special configuration I can think of is that I have 3 wallets configured.

The crash can be reproduced sometimes.

-- Backtrace:
Application: Wallet Manager (kwalletmanager5), signal: Aborted

[KCrash Handler]
#4  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140596258077376) at ./nptl/pthread_kill.c:44
#5  __pthread_kill_internal (signo=6, threadid=140596258077376) at ./nptl/pthread_kill.c:78
#6  __GI___pthread_kill (threadid=140596258077376, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#7  0x00007fdf21d48476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#8  0x00007fdf21d2e7f3 in __GI_abort () at ./stdlib/abort.c:79
#9  0x00007fdf21d8f676 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7fdf21ee1b77 "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#10 0x00007fdf21da6cfc in malloc_printerr (str=str@entry=0x7fdf21ee4210 "munmap_chunk(): invalid pointer") at ./malloc/malloc.c:5664
#11 0x00007fdf21da6fdc in munmap_chunk (p=<optimised out>) at ./malloc/malloc.c:3060
#12 0x00007fdf21dab49a in __GI___libc_free (mem=<optimised out>) at ./malloc/malloc.c:3381
#13 0x00007fdf22524353 in QObject::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#14 0x00007fdf241b665d in KXmlGuiWindow::event(QEvent*) () from /lib/x86_64-linux-gnu/libKF6XmlGui.so.6
#15 0x00007fdf235e00eb in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt6Widgets.so.6
#16 0x00007fdf225bee18 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#17 0x00007fdf225bf530 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#18 0x00007fdf225c2c99 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt6Core.so.6
#19 0x000055abe460ca4c in ?? ()
#20 0x00007fdf21d2fd90 in __libc_start_call_main (main=main@entry=0x55abe460bdc0, argc=argc@entry=1, argv=argv@entry=0x7ffd51263208) at ../sysdeps/nptl/libc_start_call_main.h:58
#21 0x00007fdf21d2fe40 in __libc_start_main_impl (main=0x55abe460bdc0, argc=1, argv=0x7ffd51263208, init=<optimised out>, fini=<optimised out>, rtld_fini=<optimised out>, stack_end=0x7ffd512631f8) at ../csu/libc-start.c:392
#22 0x000055abe460cb45 in ?? ()
[Inferior 1 (process 10293) detached]

Reported using DrKonqi
This report was filed against 'kde' because the product 'kwalletmanager5' could not be located in Bugzilla. Add it to drkonqi's mappings file!
Comment 1 Nicolas Fella 2024-03-11 21:04:52 UTC
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007ffff50ae8a3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007ffff505c8ee in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007ffff50448ff in __GI_abort () at abort.c:79
#4  0x00007ffff50457d0 in __libc_message (fmt=fmt@entry=0x7ffff51c256a "%s\n") at ../sysdeps/posix/libc_fatal.c:150
#5  0x00007ffff50b87a5 in malloc_printerr (str=str@entry=0x7ffff51c002b "free(): invalid pointer") at malloc.c:5765
#6  0x00007ffff50baa9c in _int_free (av=<optimized out>, p=p@entry=0x7fffffffd4e0, have_lock=have_lock@entry=0) at malloc.c:4500
#7  0x00007ffff50bd3de in __GI___libc_free (mem=0x7fffffffd4f0) at malloc.c:3391
#8  0x00007ffff57af938 in QObject::event (this=this@entry=0x7fffffffd4f0, e=e@entry=0x3797a30) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:1433
#9  0x00007ffff69d7d39 in QWidget::event (this=this@entry=0x7fffffffd4f0, event=event@entry=0x3797a30)
    at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qwidget.cpp:9460
#10 0x00007ffff6b0953a in QMainWindow::event (this=this@entry=0x7fffffffd4f0, event=event@entry=0x3797a30)
    at /home/nico/workspace/qt6/qtbase/src/widgets/widgets/qmainwindow.cpp:1314
#11 0x00007ffff7f482ba in KMainWindow::event (this=this@entry=0x7fffffffd4f0, ev=ev@entry=0x3797a30) at /home/nico/kde/src/kxmlgui/src/kmainwindow.cpp:906
#12 0x00007ffff7f8e2bf in KXmlGuiWindow::event (this=0x7fffffffd4f0, ev=0x3797a30) at /home/nico/kde/src/kxmlgui/src/kxmlguiwindow.cpp:221
#13 0x00007ffff6981a61 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x7fffffffd4f0, e=0x3797a30)
    at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:3287
#14 0x00007ffff575f4f8 in QCoreApplication::notifyInternal2 (receiver=0x7fffffffd4f0, event=0x3797a30)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1134
#15 0x00007ffff575f6b9 in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1575
#16 0x00007ffff5762c41 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=52, data=0x499aa0)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1932
#17 0x00007ffff5762f28 in QCoreApplication::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1789
#18 0x00007ffff5762f4e in QCoreApplicationPrivate::execCleanup (this=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1497
#19 0x00007ffff576787f in QCoreApplication::exec () at /home/nico/workspace/qt6/qtbase/src/corelib/tools/qscopedpointer.h:110
#20 0x00007ffff5fb3a7c in QGuiApplication::exec () at /home/nico/workspace/qt6/qtbase/src/gui/kernel/qguiapplication.cpp:1926
#21 0x00007ffff69819d5 in QApplication::exec () at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:2555
#22 0x0000000000423181 in main (argc=<optimized out>, argv=<optimized out>) at /home/nico/kde/src/kwalletmanager/src/manager/main.cpp:65
Comment 2 Nicolas Fella 2024-03-11 21:11:27 UTC
==5587==ERROR: AddressSanitizer: attempting free on address which was not malloc()-ed: 0x7f8d1ca09ec0 in thread T0
    #0 0x7f8d25cfd0d8 in operator delete(void*, unsigned long) ../../../../libsanitizer/asan/asan_new_delete.cpp:164
    #1 0x42a4f4 in KWalletManager::~KWalletManager() /home/nico/kde6/src/kwalletmanager/src/manager/kwalletmanager.cpp:195
    #2 0x7f8d211ca6b6 in QObject::event(QEvent*) (/lib64/libQt6Core.so.6+0x1ca6b6) (BuildId: bdc5e91a3cec7e042959a423a494b4e16ecdbe36)
    #3 0x7f8d257bfcbe in KMainWindow::event(QEvent*) /home/nico/kde6/src/kxmlgui/src/kmainwindow.cpp:906
    #4 0x7f8d258fbfe3 in KXmlGuiWindow::event(QEvent*) /home/nico/kde6/src/kxmlgui/src/kxmlguiwindow.cpp:221
    #5 0x7f8d223c1aad in QApplicationPrivate::notify_helper(QObject*, QEvent*) /usr/src/debug/qtbase-everywhere-src-6.6.2/src/widgets/kernel/qapplication.cpp:3296
    #6 0x7f8d21187497 in QCoreApplication::notifyInternal2(QObject*, QEvent*) /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1121
    #7 0x7f8d211877f6 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1901
    #8 0x7f8d2118b902 in QCoreApplication::exec() (/lib64/libQt6Core.so.6+0x18b902) (BuildId: bdc5e91a3cec7e042959a423a494b4e16ecdbe36)
    #9 0x463e8b in main /home/nico/kde6/src/kwalletmanager/src/manager/main.cpp:65
    #10 0x7f8d2082a1ef in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #11 0x7f8d2082a2b8 in __libc_start_main_impl ../csu/libc-start.c:360
    #12 0x423454 in _start ../sysdeps/x86_64/start.S:115

Address 0x7f8d1ca09ec0 is located in stack of thread T0 at offset 3776 in frame
    #0 0x461944 in main /home/nico/kde6/src/kwalletmanager/src/manager/main.cpp:19
Comment 3 Bug Janitor Service 2024-03-11 21:53:40 UTC
A possibly relevant merge request was started @ https://invent.kde.org/utilities/kwalletmanager/-/merge_requests/42
Comment 4 Nicolas Fella 2024-03-13 10:16:29 UTC
Git commit 683b0ffb7caac0629abae3a99874aa65946b3307 by Nicolas Fella.
Committed on 11/03/2024 at 21:53.
Pushed by nicolasfella into branch 'master'.

Don't create main window on the stack

KMainWindow deletes on close, causing a crash on shutdown

M  +3    -3    src/manager/main.cpp

https://invent.kde.org/utilities/kwalletmanager/-/commit/683b0ffb7caac0629abae3a99874aa65946b3307
Comment 5 Nicolas Fella 2024-03-13 10:16:46 UTC
Git commit 0956769b260ee181bd8d35ad359d07e1c60eeaff by Nicolas Fella.
Committed on 13/03/2024 at 10:16.
Pushed by nicolasfella into branch 'release/24.02'.

Don't create main window on the stack

KMainWindow deletes on close, causing a crash on shutdown
(cherry picked from commit 683b0ffb7caac0629abae3a99874aa65946b3307)

M  +3    -3    src/manager/main.cpp

https://invent.kde.org/utilities/kwalletmanager/-/commit/0956769b260ee181bd8d35ad359d07e1c60eeaff