Vai al contenuto principale

Documentation Index

Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt

Use this file to discover all available pages before exploring further.

Su Linux, il language server di Devin Desktop potrebbe non avviarsi e restituire un errore che contiene “no space left on device”, anche quando il sistema ha molto spazio libero su disco. La causa è l’esaurimento dei limiti del kernel Linux per inotify watch o inotify instance, non l’effettivo utilizzo del disco. Il language server usa inotify per monitorare le modifiche ai file nel tuo workspace. Quando viene raggiunto il limite del kernel, il sistema restituisce un errore ENOSPC, spesso mostrato come “no space left on device.”

Sintomi

Potresti visualizzare quanto segue nei log di output di Devin Desktop:
Language server failed - no space left on device: no space left on device
Spesso è accompagnato da stack trace che fanno riferimento a componenti come:
  • file_watcher
  • AddTrackedWorkspace
  • AddDirectoriesRecursive
Comportamento che in genere si osserva:
  • Devin Desktop si apre normalmente
  • Il language server si chiude immediatamente dopo l’avvio
  • Le funzionalità che dipendono dal language server (ad es. Cascade, completamento automatico) non funzionano

Diagnosi

1. Verifica i limiti attuali di inotify

Esegui i seguenti comandi:
# Verifica il numero massimo di inotify watch per utente
cat /proc/sys/fs/inotify/max_user_watches

# Verifica il numero massimo di istanze inotify per utente
cat /proc/sys/fs/inotify/max_user_instances
I valori predefiniti più comuni sono 8192 per i watch e 128 per le istanze. Spesso sono troppo bassi per l’uso di IDE in workspace di grandi dimensioni (in particolare nei monorepo) e possono ridursi ulteriormente a causa di altri processi che consumano risorse inotify (container, strumenti di sincronizzazione, altri editor, servizi in background).

2. Verificare quante istanze inotify sono attualmente in uso

find /proc/*/fd -lname anon_inode:inotify 2>/dev/null | wc -l
Se questo valore è vicino (o superiore) al tuo max_user_instances, i nuovi processi che usano inotify (come il language server) potrebbero non riuscire a inizializzarsi.

Soluzione

Aumenta i limiti di inotify. Puoi applicare le modifiche temporaneamente (fino al riavvio) o in modo permanente.

Soluzione temporanea (fino al riavvio)

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

Soluzione permanente (persiste dopo il riavvio)

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
Dopo aver applicato una delle due soluzioni, riavvia Devin Desktop. Il language server dovrebbe avviarsi correttamente. Questa è una limitazione ben nota di Linux che riguarda anche altri IDE e strumenti di sviluppo che si basano sul monitoraggio dei file. Se la tua organizzazione gestisce centralmente le configurazioni di sistema, chiedi al tuo team IT / infrastruttura di applicare queste impostazioni sysctl.

Quando usare ciascun valore

  • fs.inotify.max_user_watches=524288 Consigliato per repository di grandi dimensioni o monorepo. Ogni file/directory monitorato consuma memoria del kernel (spesso ~1 KB per watch sui sistemi a 64 bit), quindi 524288 watch possono usare circa ~512 MB di memoria del kernel.
  • fs.inotify.max_user_instances=1024 Consigliato se esegui più applicazioni che creano istanze inotify (più finestre dell’IDE, container, strumenti di sincronizzazione dei file, ecc.). Il valore predefinito di 128 può esaurirsi rapidamente negli ambienti di sviluppo.