keybase / client

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

Dokan was removed by an update and not reinstalled #9105

Open Zenexer opened 7 years ago

Zenexer commented 7 years ago

Somewhere along the way, during the update process, Dokan got removed. It's possible that Windows Defender removed it, but I doubt it, because the only trace of Dokan ever being on my system is dokan1.cat nested in System32--no other Dokan files are present.

Reinstalling Keybase in all sorts of creative ways didn't help. No matter what I did, I kept getting lines like this in keybase.kbfs.log:

[ERRO kbfs mounter.go:30] 0a2 Failed to mount dokan filesystem (i=32): Dokan failed: code=-99 "Error loading Dokan DLL"

Yeah, it couldn't load the DLL because it didn't exist. :)

In order to fix the problem, I had to:

  1. Download the Keybase installer: keybase_setup_386.exe
  2. Download the WiX toolset binaries (no need for the installer)
  3. Run .\dark.exe -x tmp .\keybase_setup_386.exe, where .\dark.exe is the full path to the corresponding EXE in the WiX toolset, tmp is a newly created, empty folder, and .\keybase_setup_386.exe is the full path to the Keybase setup
  4. Ensure Keybase is stopped and no Keybase-related processes are running
  5. Run tmp\AttachedContainer\Dokan_x64.msi
  6. Run tmp\AttachedContainer\Keybase.msi, just to be safe

This restored Keybase to a working state.

Environment:

zanderz commented 7 years ago

The only time we would uninstall Dokan is if it needs to be updated, which usually includes at least one reboot. Is there a chance a dialog got dismissed without rebooting, or without continuing the installation after rebooting? A log send may have some clues, since it includes installer logs.

On a new installation, Dokan is no longer included by default - there is a prompt in the folders tab to add it, but it is a little broken until our next release comes out, hopefully this week.

Zenexer commented 7 years ago

Looking at the logs, there was an update since I had rebooted last. However, I never ignore dialogs asking me to reboot, and Keybase was already open; I assume if it needed me to reboot, it would've stayed closed.

I manually rotated the logs in the process of debugging, so I've manually uploaded the updater log that existed prior to that: keybase.updater.log