-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Random Crashes Upon Database Unlocks on Wayland, Specifically #10415
Comments
Please re-upload the log |
I had to upload it to pastebin instead because that upload issue happened on subsequent re-uploads. |
I think this is same issue of #10391 Looks like a hang in argon2 processing |
I find it strange then that I wouldn't have this issue in X11; I'd think argon2 wouldn't have anything to do with Wayland. |
Might have to do with different thread handling in Wayland vs X11. The main KeePassXC thread is using The crash looks like I suspect it might not be the same issue as #10391, since that one seems to depend on the KeePassXC version: ok in 2.7.6, hangs in 2.7.7, and this report is in 2.7.6. |
Argon2 isn't the issue, that is a red herring. The problem most certainly seems to happen in qwayland. Really unsure why though. |
For completeness, the Argon2 source used seems to be this snapshot from 2019. But, yeah, I can't imagine it's Argon2 because, if it was, this would come up under 2.7.6 for X11 and that's never been the case. |
* Fixes keepassxreboot#10455 * Fixes keepassxreboot#10432 * Fixes keepassxreboot#10415 Prevent setting critical key components to nullptr when database data is cleared. This can result in a crash due to race condition between threads. Added a bunch of asserts to detect this problem and if guards to prevent actual crashes.
* Fixes keepassxreboot#10455 * Fixes keepassxreboot#10432 * Fixes keepassxreboot#10415 Prevent setting critical key components to nullptr when database data is cleared. This can result in a crash due to race condition between threads. Added a bunch of asserts to detect this problem and if guards to prevent actual crashes.
@droidmonkey I recompiled from git to see if the commit fixed it but it still occurs: |
I'm not? I thought I was: >>> Emerging (1 of 1) app-admin/keepassxc-9999::gentoo
>>> Unpacking source...
* Repository id: keepassxreboot_keepassxc.git
* To override fetched repository properties, use:
* EGIT_OVERRIDE_REPO_KEEPASSXREBOOT_KEEPASSXC
* EGIT_OVERRIDE_BRANCH_KEEPASSXREBOOT_KEEPASSXC
* EGIT_OVERRIDE_COMMIT_KEEPASSXREBOOT_KEEPASSXC
* EGIT_OVERRIDE_COMMIT_DATE_KEEPASSXREBOOT_KEEPASSXC
*
* Fetching https://github.com/keepassxreboot/keepassxc ...
git fetch https://github.com/keepassxreboot/keepassxc +HEAD:refs/git-r3/HEAD
git symbolic-ref refs/git-r3/app-admin/keepassxc/0/__main__ refs/git-r3/HEAD
* Checking out https://github.com/keepassxreboot/keepassxc to /var/tmp/portage/app-admin/keepassxc-9999/work/keepassxc-9999 ...
git checkout --quiet refs/git-r3/HEAD
GIT update -->
repository: https://github.com/keepassxreboot/keepassxc
at the commit: 6481ecccd79c1bff53887401dc2f6496331007af
>>> Source unpacked in /var/tmp/portage/app-admin/keepassxc-9999/work
>>> Preparing source in /var/tmp/portage/app-admin/keepassxc-9999/work/keepassxc-9999 ...
* Source directory (CMAKE_USE_DIR): "/var/tmp/portage/app-admin/keepassxc-9999/work/keepassxc-9999"
* Build directory (BUILD_DIR): "/var/tmp/portage/app-admin/keepassxc-9999/work/keepassxc-9999_build"
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/app-admin/keepassxc-9999/work/keepassxc-9999 ... That's the right commit, isn't it? |
You are crashing in wayland / qwayland code
|
So... (Isn't that what we were originally discussing further up?) |
Sorry I thought this was a different issue. This is definitely a different crash, but I can't see how this is a keepassxc crash though. |
Do you think it's an upstream qtwayland issue somehow? |
It is strange that it happens on unlock only, we do disable gui elements and such. I would like to think it's an upstream issue. There doesn't seem to be any obvious trigger from our code. |
This could be related to putting the cursor icon into the "busy" state or vice versa. Here is the relevant qt code: https://code.qt.io/cgit/qt/qtwayland.git/tree/src/client/qwaylandinputdevice.cpp?h=5.15#n183 I suspect m_fn is nullptr in this crash. |
That might actually make sense, because I noticed whenever I attached GDB to the process and triggered the crash that the cursor is always in the busy state every time when I hover over the window |
This seems to be a qt crash |
Closing this as it isn't seemingly related to KeePassXC code. |
@droidmonkey Do you think we can get it fixed upstream though, since you seem to know what the real issue is? |
I have no idea what the actual issue is, the crash logs don't pinpoint it. Just hypothesis. |
Overview
When running KeePassXC under Wayland, specifically (for some reason), submitting passwords to unlock a database may randomly crash KeePassXC.
Steps to Reproduce
.desktop
file, but DO NOT run withgdb (which keepassxc)
# gdb --pid=(pidof keepassxc)
and runcontinue
once GDB is stalled shortly afterwardsExpected Behavior
KeePassXC is expected to not crash upon authentication submission.
Actual Behavior
KeePassXC crashes upon authentication submission.
Context
-O3
GDB Log: https://pastebin.com/QZg4xLXL
Operating System: Gentoo Linux (LLVM17)
Desktop Env: KDE
Windowing System: Wayland
The text was updated successfully, but these errors were encountered: