> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Il Language Server non si avvia e mostra 'No Space Left on Device' su Linux

> Risolvi gli errori di avvio del language server su Linux causati dall'esaurimento dei limiti di watch/instance di inotify (ENOSPC). Include sintomi, comandi per la diagnosi e correzioni sysctl.

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."

***

<div id="symptoms">
  ## **Sintomi**
</div>

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

***

<div id="diagnosis">
  ## **Diagnosi**
</div>

<div id="1-check-your-current-inotify-limits">
  ### **1. Verifica i limiti attuali di inotify**
</div>

Esegui i seguenti comandi:

```shell theme={null}
# 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).

<div id="2-check-how-many-inotify-instances-are-currently-in-use">
  ### **2. Verificare quante istanze inotify sono attualmente in uso**
</div>

```shell theme={null}
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.

***

<div id="solution">
  ## **Soluzione**
</div>

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

<div id="temporary-fix-until-reboot">
  ### **Soluzione temporanea (fino al riavvio)**
</div>

```shell theme={null}
sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl fs.inotify.max_user_instances=1024
```

<div id="permanent-fix-survives-reboot">
  ### **Soluzione permanente (persiste dopo il riavvio)**
</div>

```shell theme={null}
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`.

***

<div id="when-to-use-which-value">
  ## **Quando usare ciascun valore**
</div>

* **`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.
