Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Eaccess error on unreadable file #493

Open
@pockata

Description

@pockata

Current behavior:

When running the typescript server in a project where one or more files/folders are unreadable (eg. owned by a different user) the language server throws and error and stops working.

Here is the log:

ERROR Handle textDocumentDidOpen: { Error: EACCES: permission denied, scandir '/home/user/Projects/Project/unreadable-dir'
  errno: -13,
  code: 'EACCES',
  syscall: 'scandir',
  path: '/home/user/Projects/Project/unreadable-dir' }
ERROR Handler for textDocument/completion failed: { Error: EACCES: permission denied, scandir '/home/user/Projects/Project/unreadable-dir'
  errno: -13,
  code: 'EACCES',
  syscall: 'scandir',
  path: '/home/user/Projects/Project/unreadable-dir' } 
Message: { jsonrpc: '2.0',
  method: 'textDocument/completion',
  params: 
   { position: { character: 1, line: 17 },
     textDocument: { uri: 'file:///home/user/Projects/Project/unreadable-dir/unreadable-file.js' } },
  id: 22 }
ERROR Handler for textDocument/completion failed: { Error: EACCES: permission denied, scandir '/home/user/Projects/Project/unreadable-dir'
  errno: -13,
  code: 'EACCES',
  syscall: 'scandir',
  path: '/home/user/Projects/Project/unreadable-dir' } 
Message: { jsonrpc: '2.0',
  method: 'textDocument/completion',
  params: 
   { position: { character: 2, line: 17 },
     textDocument: { uri: 'file:///home/user/Projects/Project/unreadable-dir/unreadable-file.js' } },
  id: 25 }
ERROR Handler for textDocument/completion failed: { Error: EACCES: permission denied, scandir '/home/user/Projects/Project/unreadable-dir'
  errno: -13,
  code: 'EACCES',
  syscall: 'scandir',
  path: '/home/user/Projects/Project/unreadable-dir' } 
Message: { jsonrpc: '2.0',
  method: 'textDocument/completion',
  params: 
   { position: { character: 3, line: 17 },
     textDocument: { uri: 'file:///home/user/Projects/Project/unreadable-dir/unreadable-file.js' } },
  id: 26 }
ERROR Handler for textDocument/rename failed: { Error: EACCES: permission denied, scandir '/home/user/Projects/Project/unreadable-dir'
  errno: -13,
  code: 'EACCES',
  syscall: 'scandir',
  path: '/home/user/Projects/Project/unreadable-dir' } 
Message: { jsonrpc: '2.0',
  method: 'textDocument/rename',
  params: 
   { newName: 'fse',
     position: { character: 0, line: 17 },
     textDocument: { uri: 'file:///home/user/Projects/Project/unreadable-dir/unreadable-file.js' } },
  id: 29 }
ERROR Handle textDocumentDidSave: { Error: EACCES: permission denied, scandir '/home/user/Projects/Project/unreadable-dir'
  errno: -13,
  code: 'EACCES',
  syscall: 'scandir',
  path: '/home/user/Projects/Project/unreadable-dir' }
ERROR Handle textDocumentDidSave: { Error: EACCES: permission denied, scandir '/home/user/Projects/Project/unreadable-dir'
  errno: -13,
  code: 'EACCES',
  syscall: 'scandir',
  path: '/home/user/Projects/Project/unreadable-dir' }
ERROR Handle textDocumentDidSave: { Error: EACCES: permission denied, scandir '/home/user/Projects/Project/unreadable-dir'
  errno: -13,
  code: 'EACCES',
  syscall: 'scandir',
  path: '/home/user/Projects/Project/unreadable-dir' }

Expected behavior:

Resume normal operation and possibly print a warning.

Steps to reproduce:

1. Open an existing typescript project
2. Create a file and a folder
    `mkdir -p unreadable-dir && touch unreadable-dir/unreadable-file.js`
3. Change ownership
    `sudo chown root:root -R unreadable-dir && sudo chmod -R 0700 unreadable-dir`

Additional info:

OS: Antergos Linux
Editor: Neovim v0.3.1
Language client: github.com/autozimu/LanguageClient-neovim
Typescript langserver version: v2.9.4
Command: javascript-typescript-stdio --logfile /tmp/langclient.txt

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions