For a unknown reason, on one Windows 10 machine, the local socket is denied access to Drive:
2019-01-14 16:21:02 3408 8436 DEBUG nxdrive.commandline Command line: argv=['nxdrive://token...'], options=...) 2019-01-14 16:21:02 3408 8436 INFO nxdrive.commandline Running on version 4.0.3 2019-01-14 16:21:03 3408 8436 DEBUG nxdrive.osi OS integration type: Windows 2019-01-14 16:21:03 3408 8436 WARNING nxdrive.utils qt process with PID 15152 already running 2019-01-14 16:21:03 3408 8436 DEBUG nxdrive.commandline Opening local socket to send to the running instance (payload=b'<REDACTED>') 2019-01-14 16:21:03 3408 8436 ERROR nxdrive.commandline Unable to open client socket: QLocalSocket::connectToServer: Access denied
This prevents the account creation.
In addtion to the fix, we should log in TRACE the fullServerName when creating the socket.
Update
As we were unable to reproduce this specific error, we've taken several measures to prevent it from happening again:
- Set World access on the socket to avoid permission issues.
- Close listener before stopping the engine, in case a thread doesn't terminate and we have a zombie app, it won't block the socket.
- Add the pid of the running instance to the name of the pipe to avoid reusing a busy pipe.