Skip to content
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

"closing without saving" prompt when database was not modified and was on external storage unmounted without closing keepass #2230

Closed
AnthillSudoku opened this issue Aug 24, 2018 · 1 comment · Fixed by #3612

Comments

@AnthillSudoku
Copy link

Hi,
My kbdx files resides on an external USB key.

Current Behavior

Keepassxc in set to:

  • automatically save after every change
  • don't mark database as modified for non-data changes

"automatically reload the database when modified externally" is unchecked so the database is not shared at the same moment with other programs

In that case if I forgot to close keepassxc and dismount the external media, a prompt "files has changed, do you want to load the changes?" appears, Choosing "no" and closing without saving works (please remember that is set to "automatically save after every change")..

Expected Behavior

In my opinion this leads to confusion as until there is no change made to the database keepassxc should just close right away

Sincerely
Luca

Debug Info

KeePassXC - Version 2.3.4
Revision: 6fe821c

Libraries:

  • Qt 5.7.1
  • libgcrypt 1.7.6-beta

Operating system: Debian GNU/Linux 9 (stretch)
CPU architecture: x86_64
Kernel: linux 4.9.0-8-amd64

Enabled extensions:

  • Auto-Type
  • YubiKey

these also appears but they are not enabled:

  • Browser Integration
  • Legacy Browser Integration (KeePassHTTP)
  • SSH Agent
@droidmonkey
Copy link
Member

The reason for this is there is a process watching the file for any external changes and when you remove the USB key that triggers a "change" to fire off. I agree that if the file is missing then this should not trigger a prompt.

droidmonkey added a commit that referenced this issue Oct 10, 2019
* Fix #3506
* Fix #2389
* Fix #2536
* Fix #2230

Every database that has been opened now watch's it's own file. This allows the database class to manage file changes and detect fail conditions during saving. Additionally, all stakeholders of the database can listen for the database file changed notification and respond accordingly.

Performed significant cleanup of the autoreload code within DatabaseWidget. Fixed several issues with handling changes due to merging, not merging, and other scenarios while reloading.

Prevent database saves to the same file if there are changes on disk that have not been merged with the open database.
droidmonkey added a commit that referenced this issue Oct 14, 2019
* Fix #3506
* Fix #2389
* Fix #2536
* Fix #2230

Every database that has been opened now watch's it's own file. This allows the database class to manage file changes and detect fail conditions during saving. Additionally, all stakeholders of the database can listen for the database file changed notification and respond accordingly.

Performed significant cleanup of the autoreload code within DatabaseWidget. Fixed several issues with handling changes due to merging, not merging, and other scenarios while reloading.

Prevent database saves to the same file if there are changes on disk that have not been merged with the open database.
droidmonkey added a commit that referenced this issue Oct 20, 2019
* Fix #3506
* Fix #2389
* Fix #2536
* Fix #2230

Every database that has been opened now watch's it's own file. This allows the database class to manage file changes and detect fail conditions during saving. Additionally, all stakeholders of the database can listen for the database file changed notification and respond accordingly.

Performed significant cleanup of the autoreload code within DatabaseWidget. Fixed several issues with handling changes due to merging, not merging, and other scenarios while reloading.

Prevent database saves to the same file if there are changes on disk that have not been merged with the open database.
droidmonkey added a commit that referenced this issue Oct 20, 2019
* Fix #3506
* Fix #2389
* Fix #2536
* Fix #2230

Every database that has been opened now watch's it's own file. This allows the database class to manage file changes and detect fail conditions during saving. Additionally, all stakeholders of the database can listen for the database file changed notification and respond accordingly.

Performed significant cleanup of the autoreload code within DatabaseWidget. Fixed several issues with handling changes due to merging, not merging, and other scenarios while reloading.

Prevent database saves to the same file if there are changes on disk that have not been merged with the open database.
droidmonkey added a commit that referenced this issue Oct 20, 2019
* Fix #3506
* Fix #2389
* Fix #2536
* Fix #2230

Every database that has been opened now watch's it's own file. This allows the database class to manage file changes and detect fail conditions during saving. Additionally, all stakeholders of the database can listen for the database file changed notification and respond accordingly.

Performed significant cleanup of the autoreload code within DatabaseWidget. Fixed several issues with handling changes due to merging, not merging, and other scenarios while reloading.

Prevent database saves to the same file if there are changes on disk that have not been merged with the open database.
scoroi pushed a commit to scoroi/keepassxc that referenced this issue Nov 10, 2019
* Fix keepassxreboot#3506
* Fix keepassxreboot#2389
* Fix keepassxreboot#2536
* Fix keepassxreboot#2230

Every database that has been opened now watch's it's own file. This allows the database class to manage file changes and detect fail conditions during saving. Additionally, all stakeholders of the database can listen for the database file changed notification and respond accordingly.

Performed significant cleanup of the autoreload code within DatabaseWidget. Fixed several issues with handling changes due to merging, not merging, and other scenarios while reloading.

Prevent database saves to the same file if there are changes on disk that have not been merged with the open database.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants