Keepass2android: Opening behavior issue on 1.07-pre2

Created on 4 Dec 2018  路  14Comments  路  Source: PhilippC/keepass2android

With latest version, I have a bad behavior when opening DB.
Here is the behavior:
Open the app
Try to open DB by either fingerprint or password (though the second method can't be achieved on OnePlus 6T because of fingerprint reader, and no screenshot possible)
The app will load the DB. Forever. I can wait for 5 minutes it will still load. Here is the issue.
Then the workaround is random.
Quit the app and restart it, the DB will be open
Or, it will all for password again, return to previous step
Or it will say that the DB is already loaded, and it will need another restart of app...

I can give more information later if needed. I'm writing it from my phone, with kids around...

Most helpful comment

just published 1.07-pre3 which hopefully fixes the issue. I'm not sure yet because I need to download myself first, but I found something I could change in the build process.

All 14 comments

HI, I can confirm a strange loading behavior, too (OnePLus 6).
In hangs for around 30s in "Lade Datenbank ... (F眉hre Schl眉sselformationen durch ...)" but then it starts, so not totally equal to Karreg's comment. Qick unlock works as expected.

Some log, not sure if it helps.

05.12.2018 10:26:33:812 -- KeePass.OnCreate 05.12.2018 10:26:33:813 -- KeePass:apptask= 05.12.2018 10:26:33:813 -- Loaded task keepass2android.NullTask 05.12.2018 10:26:33:813 -- KeePass.OnCreate 05.12.2018 10:26:33:817 -- KeePass.OnStart 05.12.2018 10:26:33:817 -- KeePass.OnStart 05.12.2018 10:26:33:864 -- Loaded task keepass2android.NullTask 05.12.2018 10:26:33:892 -- FileSelect.OnCreate 05.12.2018 10:26:33:915 -- FileSelect.OnStart 05.12.2018 10:26:33:947 -- PasswordActivity.OnCreate 05.12.2018 10:26:33:947 -- PasswordActivity:apptask= 05.12.2018 10:26:34:19 -- PasswordActivity.OnStart 05.12.2018 10:26:34:20 -- PasswordActivity.OnResume 05.12.2018 10:26:34:21 -- DB null 05.12.2018 10:26:34:21 -- starting: True, Finishing: False, _performingLoad: False 05.12.2018 10:26:34:23 -- Pre-loading database file starting 05.12.2018 10:26:34:23 -- CFS: OpenWhenNoLocalChanges 05.12.2018 10:26:34:24 -- CFS: hashing cached version 05.12.2018 10:26:34:30 -- PasswordActivity.OnPause 05.12.2018 10:26:34:123 -- PasswordActivity.OnResume 05.12.2018 10:26:34:123 -- DB null 05.12.2018 10:26:34:124 -- starting: False, Finishing: False, _performingLoad: False 05.12.2018 10:26:34:125 -- FP: Create FingerprintDecryption 05.12.2018 10:26:34:127 -- FP: Init for Dec 05.12.2018 10:26:34:148 -- FP: StartListening 05.12.2018 10:26:34:179 -- FileSelect.OnStop 05.12.2018 10:26:34:229 -- FileSelect.OnDestroyTrue 05.12.2018 10:26:34:230 -- KeePass.OnStop 05.12.2018 10:26:34:231 -- KeePass.OnDestroyTrue 05.12.2018 10:26:34:231 -- KeePass.OnDestroyTrue 05.12.2018 10:26:35:105 -- CFS: Files in Sync 05.12.2018 10:26:35:107 -- Pre-loading database file completed 05.12.2018 10:26:37:523 -- FP: OnAuthenticationSucceeded 05.12.2018 10:26:37:523 -- FP: StopListening 05.12.2018 10:26:37:526 -- FP: Decrypting 05.12.2018 10:26:38:104 -- LockingActivity: OnActivityResult 05.12.2018 10:26:38:105 -- PasswordActivity.OnActivityResult 874348/1000 05.12.2018 10:26:38:147 -- com.keepassdroid.crypto.finalkey.NativeFinalKey 05.12.2018 10:27:03:203 -- ReadXmlStreamed: 283ms 05.12.2018 10:27:03:224 -- LoadDB OK 05.12.2018 10:27:03:238 -- Starting/Updating OngoingNotificationsService. Database Unlocked 05.12.2018 10:27:03:342 -- PasswordActivity.OnPause 05.12.2018 10:27:03:342 -- Timeout start 05.12.2018 10:27:03:353 -- StackBaseActivity.OnActivityResult Ok/1 05.12.2018 10:27:03:354 -- No AppTask in OnActivityResult 05.12.2018 10:27:03:416 -- GroupActivity.OnCreate 05.12.2018 10:27:03:417 -- GroupActivity:apptask= 05.12.2018 10:27:03:419 -- Loaded task keepass2android.NullTask 05.12.2018 10:27:03:442 -- GroupActivity.OnStart 05.12.2018 10:27:03:442 -- GroupActivity.OnResume 05.12.2018 10:27:03:443 -- DatabaseIsUnlocked=True 05.12.2018 10:27:03:443 -- Timeout cancel 05.12.2018 10:27:03:983 -- PasswordActivity.OnStop 05.12.2018 10:27:03:984 -- PasswordActivity.OnDestroyTrue 05.12.2018 10:27:11:526 -- GroupActivity.OnPause 05.12.2018 10:27:11:527 -- Timeout start 05.12.2018 10:27:11:557 -- DatabaseSettingsActivity.OnCreate 05.12.2018 10:27:11:558 -- DatabaseSettingsActivity:apptask= 05.12.2018 10:27:11:602 -- DatabaseSettingsActivity.OnStart 05.12.2018 10:27:11:603 -- DatabaseSettingsActivity.OnResume 05.12.2018 10:27:11:603 -- DatabaseIsUnlocked=True 05.12.2018 10:27:11:604 -- Timeout cancel 05.12.2018 10:27:12:63 -- GroupActivity.OnStop 05.12.2018 10:27:16:839 -- DatabaseSettingsActivity.OnPause 05.12.2018 10:27:16:840 -- Timeout start 05.12.2018 10:27:16:864 -- GroupActivity.OnStart 05.12.2018 10:27:16:865 -- GroupActivity.OnResume 05.12.2018 10:27:16:866 -- DatabaseIsUnlocked=True 05.12.2018 10:27:16:866 -- Timeout cancel 05.12.2018 10:27:17:318 -- DatabaseSettingsActivity.OnStop 05.12.2018 10:27:17:320 -- DatabaseSettingsActivity.OnDestroyTrue 05.12.2018 10:27:25:132 -- GroupActivity.OnPause 05.12.2018 10:27:25:133 -- Timeout start 05.12.2018 10:27:25:173 -- DatabaseSettingsActivity.OnCreate 05.12.2018 10:27:25:174 -- DatabaseSettingsActivity:apptask= 05.12.2018 10:27:25:208 -- DatabaseSettingsActivity.OnStart 05.12.2018 10:27:25:209 -- DatabaseSettingsActivity.OnResume 05.12.2018 10:27:25:209 -- DatabaseIsUnlocked=True 05.12.2018 10:27:25:209 -- Timeout cancel 05.12.2018 10:27:25:647 -- GroupActivity.OnStop 05.12.2018 10:27:26:231 -- DatabaseSettingsActivity.OnPause 05.12.2018 10:27:26:231 -- Timeout start 05.12.2018 10:27:26:790 -- DatabaseSettingsActivity.OnStop 05.12.2018 10:27:38:638 -- DatabaseSettingsActivity.OnStart 05.12.2018 10:27:38:639 -- DatabaseSettingsActivity.OnResume 05.12.2018 10:27:38:640 -- DatabaseIsUnlocked=True 05.12.2018 10:27:38:640 -- Timeout cancel

You're right, I was not waiting long enough. I guess the 5 minutes were because of multiple attempts. Or it happened randomly once. On my side it was precisely 45 seconds to open the database, where it was only 5-10 seconds with previous version.
So yeah, it seems to be an issue on loading performance?

Here is my log, quite the same...

05/12/2018 11:31:21:187 -- Creating application keepass2android.keepass2android. Version=129
05/12/2018 11:31:21:255 -- KeePass.OnCreate
05/12/2018 11:31:21:257 -- KeePass:apptask=
05/12/2018 11:31:21:260 -- Loaded task keepass2android.NullTask
05/12/2018 11:31:21:261 -- KeePass.OnCreate
05/12/2018 11:31:21:272 -- KeePass.OnStart
05/12/2018 11:31:21:273 -- KeePass.OnStart
05/12/2018 11:31:21:334 -- Loaded task keepass2android.NullTask
05/12/2018 11:31:21:378 -- FileSelect.OnCreate
05/12/2018 11:31:21:458 -- FileSelect.OnStart
05/12/2018 11:31:21:529 -- FileSelect.OnResume
05/12/2018 11:31:21:621 -- KeePass.OnStop
05/12/2018 11:31:21:622 -- KeePass.OnDestroyTrue
05/12/2018 11:31:21:622 -- KeePass.OnDestroyTrue
05/12/2018 11:31:22:961 -- FileSelect.OnPause
05/12/2018 11:31:22:980 -- FSSA.OnCreate
05/12/2018 11:31:23:449 -- FileSelect.OnStop
05/12/2018 11:31:23:899 -- PasswordActivity.OnCreate
05/12/2018 11:31:23:900 -- PasswordActivity:apptask=
05/12/2018 11:31:24:74 -- PasswordActivity.OnStart
05/12/2018 11:31:24:80 -- PasswordActivity.OnResume
05/12/2018 11:31:24:80 --  DB null
05/12/2018 11:31:24:81 -- starting: True, Finishing: False, _performingLoad: False
05/12/2018 11:31:24:98 -- Pre-loading database file starting
05/12/2018 11:31:24:102 -- PasswordActivity.OnPause
05/12/2018 11:31:24:104 -- CFS: OpenWhenNoLocalChanges
05/12/2018 11:31:24:105 -- CFS: hashing cached version
05/12/2018 11:31:24:177 -- PasswordActivity.OnResume
05/12/2018 11:31:24:178 --  DB null
05/12/2018 11:31:24:178 -- starting: False, Finishing: False, _performingLoad: False
05/12/2018 11:31:24:186 -- FP: Create FingerprintDecryption
05/12/2018 11:31:24:191 -- FP: Init for Dec
05/12/2018 11:31:24:219 -- FP: StartListening 
05/12/2018 11:31:24:594 -- FileSelect.OnDestroyTrue
05/12/2018 11:31:25:328 -- CFS: Files in Sync
05/12/2018 11:31:25:332 -- Pre-loading database file completed
05/12/2018 11:31:26:941 -- FP: OnAuthenticationSucceeded 
05/12/2018 11:31:26:946 -- FP: StopListening 
05/12/2018 11:31:26:956 -- FP: Decrypting 
05/12/2018 11:31:27:744 -- PasswordActivity.OnPause
05/12/2018 11:31:27:774 -- FSSA.OnCreate
05/12/2018 11:31:27:834 -- LockingActivity: OnActivityResult 
05/12/2018 11:31:27:836 -- PasswordActivity.OnActivityResult 874348/1000
05/12/2018 11:31:27:851 -- PasswordActivity.OnResume
05/12/2018 11:31:27:851 --  DB null
05/12/2018 11:31:27:852 -- starting: False, Finishing: False, _performingLoad: True
05/12/2018 11:31:27:855 -- FP: Create FingerprintDecryption
05/12/2018 11:31:27:856 -- FP: Init for Dec
05/12/2018 11:31:27:879 -- FP: StartListening 
05/12/2018 11:31:27:987 -- com.keepassdroid.crypto.finalkey.NativeFinalKey
05/12/2018 11:32:12:313 -- ReadXmlStreamed: 400ms
05/12/2018 11:32:12:354 -- LoadDB OK
05/12/2018 11:32:12:373 -- Starting/Updating OngoingNotificationsService. Database Unlocked
05/12/2018 11:32:12:546 -- FP: StopListening 
05/12/2018 11:32:12:548 -- PasswordActivity.OnPause
05/12/2018 11:32:12:552 -- Timeout start
05/12/2018 11:32:12:577 -- FP: OnAuthenticationError: Op茅ration d'empreinte num茅rique annul茅e., True
05/12/2018 11:32:12:580 -- StackBaseActivity.OnActivityResult Ok/1
05/12/2018 11:32:12:581 -- No AppTask in OnActivityResult
05/12/2018 11:32:12:730 -- GroupActivity.OnCreate
05/12/2018 11:32:12:730 -- GroupActivity:apptask=
05/12/2018 11:32:12:733 -- Loaded task keepass2android.NullTask
05/12/2018 11:32:12:787 -- GroupActivity.OnStart
05/12/2018 11:32:12:789 -- GroupActivity.OnResume
05/12/2018 11:32:12:789 --  DatabaseIsUnlocked=True
05/12/2018 11:32:12:790 -- Timeout cancel
05/12/2018 11:32:13:382 -- PasswordActivity.OnStop
05/12/2018 11:32:13:386 -- PasswordActivity.OnDestroyTrue
05/12/2018 11:32:18:537 -- GroupActivity.OnPause
05/12/2018 11:32:18:539 -- Timeout start
05/12/2018 11:32:18:564 -- DatabaseSettingsActivity.OnCreate
05/12/2018 11:32:18:565 -- DatabaseSettingsActivity:apptask=
05/12/2018 11:32:18:643 -- DatabaseSettingsActivity.OnStart
05/12/2018 11:32:18:644 -- DatabaseSettingsActivity.OnResume
05/12/2018 11:32:18:644 --  DatabaseIsUnlocked=True
05/12/2018 11:32:18:645 -- Timeout cancel
05/12/2018 11:32:19:101 -- GroupActivity.OnStop

We can see the 45 seconds hole:

05/12/2018 11:31:27:987 -- com.keepassdroid.crypto.finalkey.NativeFinalKey
05/12/2018 11:32:12:313 -- ReadXmlStreamed: 400ms

There's something that could have an impact. When the fingerprint is read, the fingerprint indicator stays visible while the DB is loading. This indicates that the fingerprint can still be read by the app, where it shouldn't be needed anymore. Maybe there's something that was done before and not anymore, or the opposite?

What is ringing a bell to me is this line:

05/12/2018 11:32:12:577 -- FP: OnAuthenticationError: Op茅ration d'empreinte num茅rique annul茅e., True

It means something like Numeric (or Digital) Fingerprint operation cancelled and I guess this is a system callback result...

I can't say where this comes from at the moment. Are you using Yubikeys to unlock the database?

Not for me. Plain password plus fingerprint. But it's not related to FP, same delay happens with direct password login.
It just came with latest beta. Interestingly, 2 complaints from OnePlus owners ..

I got a similar problem on Redmi 5 Plus, Resurrection Remix 8.1. The DB is loading forever. I'm not using Yubikey, and this happens no matter I use password or fingerprint.

I only asked because Yubikey handling was the major change I implemented. But I now found that it might be an issue with the way Google is deploying that new apk. I'm still investigating...

just published 1.07-pre3 which hopefully fixes the issue. I'm not sure yet because I need to download myself first, but I found something I could change in the build process.

Works for me! Excellent support, thanks!

Fix confirmed! Great job! And another beer for you! ;)

Hi there, I believe this issue appears again with 1.07-pre4.

Confirmed. And we can't get logs because there's a regression on sharing logs feature too. Makes the app crashing... 馃檨

sorry, my bad. Looks like the change to fix the problem in pre3 never was commited to the repo and then got reverted. pre5 is now being rolled out in the beta channel.

Great, thanks! :)
Have you ever considered using CI to build your releases to avoid that? Anything could prevent that?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

vlig picture vlig  路  5Comments

Phantop picture Phantop  路  6Comments

GuillaumeCz picture GuillaumeCz  路  5Comments

tgp1994 picture tgp1994  路  4Comments

wikholm picture wikholm  路  4Comments