Pular para o conteúdo principal
No Linux, o Language Server do Windsurf pode falhar ao iniciar com um erro contendo “no space left on device”, mesmo quando o sistema tem bastante espaço livre em disco. Isso é causado pelo esgotamento dos limites de inotify watch ou inotify instance do kernel Linux, e não por uso real de disco. O Language Server usa inotify para monitorar arquivos no seu workspace em busca de alterações. Quando o limite do kernel é atingido, o sistema retorna um erro ENOSPC — que normalmente é exibido como “no space left on device.”

Sintomas

Você pode ver o seguinte nos logs de saída do Windsurf:
Language server failed - no space left on device: no space left on device
Frequentemente acompanhado de stack traces que fazem referência a componentes como:
  • file_watcher
  • AddTrackedWorkspace
  • AddDirectoriesRecursive
Comportamento que você normalmente verá:
  • Windsurf abre normalmente
  • O servidor de linguagem é encerrado imediatamente após iniciar
  • Recursos que dependem do servidor de linguagem (por exemplo, Cascade, Autocomplete) não funcionam

Diagnóstico

1. Verifique os limites atuais do inotify

Execute os seguintes comandos:
# Check the maximum number of inotify watches per user
cat /proc/sys/fs/inotify/max_user_watches

# Verifica o número máximo de instâncias inotify por usuário
cat /proc/sys/fs/inotify/max_user_instances
Os valores padrão mais comuns são 8192 para watches e 128 para instâncias. Esses valores frequentemente são muito baixos para uso de IDEs em workspaces grandes (especialmente monorepos) e podem ser ainda mais reduzidos por outros processos que consomem recursos do inotify (contêineres, ferramentas de sincronização, outros editores, serviços em segundo plano).

2. Verifique quantas instâncias do inotify estão em uso no momento

find /proc/*/fd -lname anon_inode:inotify 2>/dev/null | wc -l
Se essa contagem estiver próxima (ou acima) do seu max_user_instances, novos usuários do inotify (como o servidor de linguagem) podem não conseguir inicializar.

Solução

Aumente os limites do inotify. Você pode aplicar as alterações temporariamente (até a reinicialização) ou permanentemente.

Solução temporária (até o próximo reinício)

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

Solução permanente (permanece após a reinicialização)

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
Depois de aplicar qualquer uma das correções, reinicie o Windsurf. O language server deve iniciar com sucesso. Esta é uma limitação bem conhecida no Linux que afeta outros IDEs e ferramentas de desenvolvimento que dependem de file watchers. Se a sua organização gerencia configurações de sistema de forma centralizada, peça à equipe de TI / infraestrutura para aplicar essas configurações sysctl.

Quando usar cada valor

  • fs.inotify.max_user_watches=524288
    Recomendado para repositórios grandes ou monorepos. Cada arquivo/diretório monitorado consome memória do kernel (geralmente ~1 KB por watch em sistemas 64-bit), então 524288 watches podem usar aproximadamente ~512 MB de memória do kernel.
  • fs.inotify.max_user_instances=1024
    Recomendado se você executa várias aplicações que criam instâncias de inotify (várias janelas de IDE, contêineres, ferramentas de sincronização de arquivos, etc.). O valor padrão de 128 pode se esgotar rapidamente em ambientes de desenvolvimento.