linuxserver / docker-code-server

GNU General Public License v3.0
1.54k stars 314 forks source link

[FEAT] <Docker works but can't install extension with `EMFILE: EMFILE: too many open files, rename ` when deployed to Google Cloud Run with gcsfuse as persistent volume> #175

Closed zhh210 closed 4 months ago

zhh210 commented 4 months ago

Is this a new feature request?

Wanted change

Deployment to Google Cloud Run is easy and works well with extensions. However, if I use gcsfuse bucket as the volume code-server will not be able to install any extensions with error:

rejected promise not handled within 1 second: EMFILE: EMFILE: too many open files, rename '/config/extensions/.39eed859-8e53-4b84-8f48-9d973eefd31d' -> '/config/extensions/continue.continue-0.8.12-linux-x64'
2024-02-27 20:49:08.371 EST
stack trace: EMFILE: EMFILE: too many open files, rename '/config/extensions/.39eed859-8e53-4b84-8f48-9d973eefd31d' -> '/config/extensions/continue.continue-0.8.12-linux-x64'
2024-02-27 20:49:08.371 EST
    at X.C (/app/code-server/lib/vscode/out/vs/server/node/server.main.js:169:77266)
2024-02-27 20:49:08.371 EST
    at async X.extractUserExtension (/app/code-server/lib/vscode/out/vs/server/node/server.main.js:169:74772)
2024-02-27 20:49:08.371 EST
    at async oe.u (/app/code-server/lib/vscode/out/vs/server/node/server.main.js:169:80894)
2024-02-27 20:49:08.371 EST
    at async oe.x (/app/code-server/lib/vscode/out/vs/server/node/server.main.js:169:82814)
2024-02-27 20:49:08.371 EST
    at async oe.h (/app/code-server/lib/vscode/out/vs/server/node/server.main.js:169:80426)
2024-02-27 20:49:08.371 EST
[01:49:08] EMFILE: EMFILE: too many open files, rename '/config/extensions/.39eed859-8e53-4b84-8f48-9d973eefd31d' -> '/config/extensions/continue.continue-0.8.12-linux-x64'

The error seems to arise from node. I'm not sure if this issue is addressable from docker-code-server.

Reason for change

The change will enable running code-server not only locally but also from serverless cloud.

Proposed code change

No response

aptalca commented 4 months ago

It looks like you're having filesystem related issues due to fuse layer. This is not an appropriate feature request. We don't support config folders on remote shares or nonstandard fuse layers. Google docs list the limitations of their system: https://cloud.google.com/storage/docs/gcs-fuse#differences-and-limitations