keybase / client

Keybase Go Library, Client, Service, OS X, iOS, Android, Electron
BSD 3-Clause "New" or "Revised" License
8.85k stars 1.22k forks source link

KBFS unable to load files on any device. #22507

Open a-drew opened 4 years ago

a-drew commented 4 years ago

KBFS stuck loading files. Whether integrated in Finder/Explorer or not. OSX / Win10. I think its a cross platform issue, all my devices even phone cannot load any files I stored in kbfs. Maybe the storage got corrupted after a partial upload?

Visible error popups show up and it looks like keybase believes its offline. Unsynced data from /keybase/private/windsofrussia is not available while offline

Logs also had a few errors related to keybased.sock and failing to connect to something. DialSocket -> ERROR: There were multiple errors: dial unix /Users/andrew/Library/Group Containers/keybase/Library/Caches/Keybase/keybased.sock: connect: socket operation on non-socket; dial unix /Users/andrew/Library/Caches/Keybase/keybased.sock: connect: socket operation on non-socket

It is worth mentioning I saw something about root TFS block not found while snooping through the logs. Partial sync at revision 719 done: Server: block does not exist

my log id: 63913f49d4fd79bd4b5ff11c

strib commented 4 years ago

Sorry for the bad experience. Can you please do a keybase log send from your device root-DELL and mention this issue in the feedback? It seems like that is the device that uploaded the bad data.

a-drew commented 4 years ago

Done. log id for root-DELL is 0da738f7146a55a0eb7e311c

strib commented 4 years ago

Unfortunately it looks like, back in December, you hit the same bug as the user in https://github.com/keybase/client/issues/21686. The bug is fixed in the current release.

Of course, we still need to fix your folder somehow. Sadly because this happened two months ago, it looks like the data from the previous versions of your folder have already been scrubbed from our systems, so I can't just roll you back. (Your devices cleaned up that old data automatically after a few weeks, on Jan 20th.)

So here's the deal. All your data is technically still available, except what you wrote in your very last change from December 15th (and whatever data that write overwrote). What we are missing is the top-level directory that would have pointed to all those pieces. There might be a way to recover most of that data, but it would require some pretty serious engineering effort and time for us to write a program (that you would need to run) to figure out how it all fits together and reassemble it. This is definitely do-able if you have important data you need recovered.

But if you happen to have backups of all the data that was in your folder, the easiest and quickest thing to do would be just to completely reset the folder and then start from scratch. If you want us to reset your folder, please run this command on a currently-valid keybase device, and substitute the current date and time where indicated:

keybase sign -m "<DATE_AND_TIME>: Please reset folder /keybase/private/windsofrussia because all the folder was inaccessible due to a bug"

and post the results here.

If you'd prefer to try to recover it, just let me know that instead. Sorry for the inconvenience!

a-drew commented 4 years ago

Ouch. Definitely will keep backups in the future and check on kbfs more frequently.

Any chances of recovering a specific sub-folder (any version from december would work)? I don't know if that would make it easier than a full recovery, but unfortunately I didn't backup that particular folder elsewhere.

By the way, thanks for not outright saying its impossible due to the shear complexity / effort this could take you. I appreciate it.

strib commented 4 years ago

Yes, I think we can figure that out. Because this is all end-to-end encrypted though, I'll need your help looking up the information we'll need, and then I'll need some time to write some code for you.

To start, I'll need to see some of the history of your folder, which you can get a command on the terminal. Please try running this when you get a chance, it copies a virtual file (it won't appear with ls or anything, but it exists when you try to read it) into our shared folder. It might take a few minutes to run.

cp /Volumes/Keybase/private/windsofrussia/.kbfs_update_history.625-719 /Volumes/Keybase/private/strib@github,windsofrussia/client_22507.json

I'm not 100% sure it will work with your folder broken in that way, but hopefully it will! Let me know how it goes.