atom / fuzzy-finder

Find and open files quickly
MIT License
276 stars 138 forks source link

uncaught error: Unknown error, lstat #274

Open pcantalupo opened 7 years ago

pcantalupo commented 7 years ago

Hello,

I updated Atom today on Windows 7 and when I closed and reopened it, I got the follow error:

"Uncaught Error: UNKNOWN: unknown error, lstat 'Y:\'"

that was thrown from the fuzzy-finder package. I'm creating an issue because ATOM suggested that I do so. Below is the information that I copied to the clipboard from the error window:

Atom Version: 1.13.1 Electron Version: 1.3.13 System: Microsoft Windows 7 Professional Thrown From: fuzzy-finder package, v1.4.0

Stack Trace

Uncaught Error: UNKNOWN: unknown error, lstat 'Y:\'

At fs.js:982

Error: UNKNOWN: unknown error, lstat 'Y:\'
    at Error (native)
    at fs.lstatSync (fs.js:982:18)
    at Object.fs.lstatSync (ELECTRON_ASAR.js:239:16)
    at start (fs.js:1634:10)
    at Object.realpathSync (fs.js:1622:3)
    at Object.fs.realpathSync (ELECTRON_ASAR.js:316:29)
    at C:\Users\XXXX\AppData\Local\atom\app-1.13.1\resources\app.asar\node_modules\fuzzy-finder\lib\path-loader.js:19:21
    at Array.map (native)
    at Object.startTask (C:\Users\XXXX\AppData\Local\atom\app-1.13.1\resources\app.asar\node_modules\fuzzy-finder\lib\path-loader.js:17:46)
    at Object.startLoadPathsTask (C:\Users\XXXX\AppData\Local\atom\app-1.13.1\resources\app.asar\node_modules\fuzzy-finder\lib\main.js:119:39)
    at C:\Users\XXXX\AppData\Local\atom\app-1.13.1\resources\app.asar\node_modules\fuzzy-finder\lib\main.js:29:24
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)

Commands

Config

{}

Installed Packages

# User
atom-dark-syntax, v0.28.0 (inactive)
atom-dark-ui, v0.53.0 (inactive)
atom-light-syntax, v0.29.0 (inactive)
atom-light-ui, v0.46.0 (inactive)
base16-tomorrow-dark-theme, v1.4.0 (inactive)
base16-tomorrow-light-theme, v1.4.0 (inactive)
one-dark-ui, v1.8.2 (active)
one-light-ui, v1.8.2 (inactive)
one-dark-syntax, v1.6.0 (active)
one-light-syntax, v1.6.0 (inactive)
solarized-dark-syntax, v1.1.1 (inactive)
solarized-light-syntax, v1.1.1 (inactive)
about, v1.7.2 (inactive)
archive-view, v0.62.0 (inactive)
autocomplete-atom-api, v0.10.0 (inactive)
autocomplete-css, v0.14.1 (inactive)
autocomplete-html, v0.7.2 (inactive)
autocomplete-plus, v2.33.1 (inactive)
autocomplete-snippets, v1.11.0 (inactive)
autoflow, v0.29.0 (inactive)
autosave, v0.23.2 (inactive)
background-tips, v0.26.1 (inactive)
bookmarks, v0.43.2 (inactive)
bracket-matcher, v0.85.1 (inactive)
command-palette, v0.39.1 (inactive)
deprecation-cop, v0.55.1 (inactive)
dev-live-reload, v0.47.0 (inactive)
encoding-selector, v0.22.0 (inactive)
exception-reporting, v0.40.0 (inactive)
find-and-replace, v0.204.5 (inactive)
fuzzy-finder, v1.4.0 (inactive)
git-diff, v1.2.0 (inactive)
go-to-line, v0.31.2 (inactive)
grammar-selector, v0.48.2 (inactive)
image-view, v0.60.0 (inactive)
incompatible-packages, v0.26.1 (inactive)
keybinding-resolver, v0.35.0 (inactive)
line-ending-selector, v0.5.1 (inactive)
link, v0.31.2 (inactive)
markdown-preview, v0.159.3 (inactive)
metrics, v1.1.3 (inactive)
notifications, v0.65.1 (inactive)
open-on-github, v1.2.1 (inactive)
package-generator, v1.0.2 (inactive)
settings-view, v0.244.0 (inactive)
snippets, v1.0.4 (inactive)
spell-check, v0.68.5 (inactive)
status-bar, v1.6.0 (inactive)
styleguide, v0.48.0 (inactive)
symbols-view, v0.113.1 (inactive)
tabs, v0.103.1 (inactive)
timecop, v0.33.2 (inactive)
tree-view, v0.211.1 (inactive)
update-package-dependencies, v0.10.0 (inactive)
welcome, v0.35.1 (inactive)
whitespace, v0.35.0 (inactive)
wrap-guide, v0.39.0 (inactive)
language-c, v0.54.0 (inactive)
language-clojure, v0.22.1 (inactive)
language-coffee-script, v0.48.1 (inactive)
language-csharp, v0.13.0 (inactive)
language-css, v0.40.1 (inactive)
language-gfm, v0.88.0 (inactive)
language-git, v0.15.0 (inactive)
language-go, v0.43.0 (inactive)
language-html, v0.47.1 (inactive)
language-hyperlink, v0.16.1 (inactive)
language-java, v0.24.0 (inactive)
language-javascript, v0.122.0 (inactive)
language-json, v0.18.3 (inactive)
language-less, v0.29.6 (inactive)
language-make, v0.22.2 (inactive)
language-mustache, v0.13.0 (inactive)
language-objective-c, v0.15.1 (inactive)
language-perl, v0.37.0 (inactive)
language-php, v0.37.3 (inactive)
language-property-list, v0.8.0 (inactive)
language-python, v0.45.1 (inactive)
language-ruby, v0.70.2 (inactive)
language-ruby-on-rails, v0.25.1 (inactive)
language-sass, v0.57.0 (inactive)
language-shellscript, v0.23.0 (inactive)
language-source, v0.9.0 (inactive)
language-sql, v0.25.0 (inactive)
language-text, v0.7.1 (inactive)
language-todo, v0.29.1 (inactive)
language-toml, v0.18.1 (inactive)
language-xml, v0.34.12 (inactive)
language-yaml, v0.27.1 (inactive)

# Dev
No dev packages
pcantalupo commented 7 years ago

I figured out that the error occurs when I add a project folder that exists on my remove drive "Y". However, I do not get the error if I add a project folder from my remote drive "Z". Both these drives are on the same remote machine.

rsese commented 5 years ago

Repro steps from https://github.com/atom/atom/issues/18474:

  1. Map U:\ to a network drive on a VPN
  2. Add a project folder from U:\
  3. Do some editing, minding your own business.
  4. Have your VPN mysteriously fail.
rsese commented 5 years ago

From https://github.com/atom/atom/issues/19036#issue-424369584:

I tried to open a file in an smb share and while it was not responding I shut my laptop. I think.

hhaensel commented 4 years ago

I have seen a very similar error in Julia, which started to occurr for me at the same time as this one. It is probably linked to the opening files on an smb mount where parent directories are not accessible to the user. More details can be found in the linked Julia issue above. The workaround in the Julian case was to catch an error of realpath and in that case simply return the input string.

EDIT: changed the link to the specific comment of the mentioned issue

hhaensel commented 4 years ago

The error can, indeed, be traced back to node.js:

> fs.realpathSync("\\\\server\\users\\username\\My Documents")
Error: EPERM: operation not permitted, lstat '\\server\users'
    at Object.realpathSync (fs.js:1679:5)

whereas

> fs.readdirSync("\\\\server\\users\\username\\My Documents")

is successful

hhaensel commented 4 years ago

A possible workaround is to map a drive letter to the networkshare, in which case realpathSync does not error out. - This is different to the Julia case mentioned above!

harvanchik commented 3 years ago

I get a very similar error in VS Code. Not sure that this is an issue with Atom, though I could be wrong.

image