Salt la conținutul principal
Pe Linux, serverul de limbaj Windsurf poate eșua la pornire cu o eroare care conține „no space left on device”, chiar dacă sistemul are suficient spațiu liber pe disc. Aceasta este cauzată de epuizarea limitelor nucleului Linux pentru inotify watch sau inotify instance, nu de utilizarea reală a spațiului pe disc. Serverul de limbaj folosește inotify pentru a monitoriza modificările fișierelor din workspace-ul dumneavoastră. Când limita nucleului este atinsă, sistemul returnează o eroare ENOSPC—care este afișată frecvent ca „no space left on device”.

Simptome

Este posibil să vedeți următoarele în jurnalele de ieșire ale Windsurf:
Language server failed - no space left on device: no space left on device
Acest lucru este adesea însoțit de stack trace‑uri care fac referire la componente precum:
  • file_watcher
  • AddTrackedWorkspace
  • AddDirectoriesRecursive
Comportamentul pe care îl veți observa de obicei:
  • Windsurf se deschide normal
  • Language server-ul se oprește imediat după pornire
  • Funcționalitățile care depind de language server (de exemplu, Cascade, Autocomplete) nu funcționează

Diagnosticare

1. Verificati limitele actuale inotify

Rulati urmatoarele comenzi:
# Verificați numărul maxim de monitorizări inotify per utilizator
cat /proc/sys/fs/inotify/max_user_watches

# Check the maximum number of inotify instances per user
cat /proc/sys/fs/inotify/max_user_instances
Valorile implicite uzuale sunt 8192 pentru „watches” și 128 pentru instanțe. Acestea sunt adesea prea mici pentru folosirea unui IDE în workspace-uri mari (mai ales monorepo-uri) și pot fi reduse în continuare de alte procese care consumă resurse inotify (containere, unelte de sincronizare, alți editori, servicii în fundal).

2. Verificați câte instanțe inotify sunt folosite în prezent

find /proc/*/fd -lname anon_inode:inotify 2>/dev/null | wc -l
Dacă acest contor este aproape de (sau peste) limita max_user_instances, este posibil ca noii utilizatori inotify (cum ar fi un language server) să nu poată fi inițializați.

Soluție

Puteți mări limitele inotify. Modificările pot fi aplicate temporar (până la repornire) sau permanent.

Soluție temporară (până la următoarea repornire)

sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl fs.inotify.max_user_instances=1024

Soluție permanentă (se păstrează după repornire)

echo "fs.inotify.max_user_watches=524288" | sudo tee -a /etc/sysctl.conf
echo "fs.inotify.max_user_instances=1024" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
După aplicarea oricăreia dintre remedieri, reporniți Windsurf. Language server-ul ar trebui să pornească fără probleme. Aceasta este o limitare bine cunoscută pe Linux, care afectează și alte IDE-uri și instrumente de dezvoltare care depind de file watchers. Dacă organizația dvs. gestionează centralizat configurațiile de sistem, rugați echipa IT/infra să aplice aceste setări sysctl.

Când să utilizați fiecare valoare

  • fs.inotify.max_user_watches=524288
    Recomandat pentru repo‑uri mari sau monorepo‑uri. Fiecare fișier/director monitorizat consumă memorie de kernel (adesea ~1 KB pentru fiecare monitorizare pe sisteme pe 64 de biți), astfel încât 524288 de monitorizări pot folosi aproximativ ~512 MB de memorie de kernel.
  • fs.inotify.max_user_instances=1024
    Recomandat dacă rulați mai multe aplicații care creează instanțe inotify (mai multe ferestre de IDE, containere, instrumente de sincronizare a fișierelor etc.). Valoarea implicită de 128 poate fi epuizată rapid în medii de dezvoltare.