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

# Problemi noti di WSL

> Risolvi i problemi noti di Devin Desktop quando viene eseguito in Windows Subsystem for Linux (WSL), incluse le prestazioni ridotte dovute alla saturazione del file system Plan 9 (9P) e i problemi di connessione causati da VPN o software di rete zero-trust.

Questa pagina illustra i problemi noti di Devin Desktop con Windows Subsystem for Linux (WSL) e le soluzioni consigliate.

***

<div id="slow-performance-or-disconnections-9p-filesystem-saturation">
  ## **Rallentamenti o disconnessioni (saturazione del filesystem 9P)**
</div>

Quando si usa Devin Desktop in WSL (tramite **Remote - WSL**), l'editor può diventare lento, non rispondere più o disconnettersi ripetutamente dal backend WSL. Nella maggior parte dei casi, la causa sono estensioni che eseguono un monitoraggio aggressivo dei file e l'indicizzazione nel filesystem WSL, saturando il **protocollo Plan 9 (9P)**, che funge da ponte del filesystem tra Windows e l'ambiente Linux di WSL.

Questo problema è più probabile con repository di grandi dimensioni e quando vengono eseguiti contemporaneamente più server di linguaggio.

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

* Devin Desktop è notevolmente lento o presenta rallentamenti quando è connesso a WSL
* L'editor si disconnette spesso dal backend di WSL e tenta di riconnettersi
* Le disconnessioni si verificano durante lo sviluppo attivo (ad es. mentre si usa Cascade) **e** anche quando l'editor è inattivo
* Devin Desktop si arresta in modo anomalo o smette di rispondere, rendendo necessario riavviare sia l'IDE sia WSL (`wsl --shutdown`)
* L'utilizzo della memoria di WSL aumenta nel tempo, anche su sistemi con più di 32 GB di RAM
* I log diagnostici di WSL mostrano un numero elevato di eventi `P9 Reply_Rlerror` (errori di file non trovato)
* Le prestazioni sono normali quando si usa Devin Desktop al di fuori di WSL (ad es. aprendo una cartella locale di Windows)
* Le soluzioni alternative più comuni (riavviare WSL, reinstallare Devin Desktop, aumentare la memoria in `.wslconfig`) non risolvono il problema da sole

***

<div id="root-cause">
  ### **Causa principale**
</div>

La comunicazione tra Windows e il filesystem Linux di WSL utilizza il **protocollo Plan 9 (9P)**, che offre una velocità effettiva inferiore rispetto all'accesso nativo al filesystem.

Quando le estensioni sono installate nell'ambiente WSL, alcune eseguono un monitoraggio dei file e un'indicizzazione aggressivi sull'intero workspace. Nei repository di grandi dimensioni (ad es. 250.000+ file, 5+ GB), questo genera un volume enorme di operazioni sul filesystem attraverso il bridge 9P, che può:

* Saturare la capacità del protocollo
* Generare migliaia di errori di file non trovato (`Reply_Rlerror`)
* Far cadere la connessione tra Devin Desktop e il backend WSL
* Contribuire a un aumento progressivo della pressione sulla memoria all'interno di WSL

Il problema si aggrava ulteriormente quando sono in esecuzione anche più server di linguaggio (ad es. Sorbet, Ruby LSP, TypeScript, ecc.), poiché aggiungono ulteriore overhead dovuto al monitoraggio dei file. L'attività combinata sul filesystem di estensioni e server di linguaggio può sovraccaricare il bridge 9P anche su sistemi con oltre 32 GB di RAM.

Un esempio noto è l'**estensione Vue (Volar)**, che è stata osservata causare un'indicizzazione eccessiva dei file negli ambienti WSL anche quando il workspace non contiene file Vue. Questo problema è documentato nell'ecosistema VS Code:
[microsoft/vscode-remote-release#11091](https://github.com/microsoft/vscode-remote-release/issues/11091)

Questo è particolarmente probabile se hai ereditato un ampio insieme di estensioni da VS Code o da un altro editor che non sono necessarie per il progetto attuale.

***

<div id="solutions">
  ### **Soluzioni**
</div>

<div id="1-update-wsl-to-the-latest-version-recommended-first-step">
  #### **1. Aggiorna WSL all'ultima versione (primo passaggio consigliato)**
</div>

Molti problemi di disconnessione e di prestazioni in WSL si risolvono semplicemente aggiornando WSL. Le versioni più recenti di WSL includono miglioramenti alla stabilità del file system 9P e all'affidabilità della connessione.

Apri **PowerShell** (o il Prompt dei comandi) sull'host Windows ed esegui:

```
wsl --update
```

Quindi riavvia WSL:

```
wsl --shutdown
```

Apri di nuovo Devin Desktop e riconnettiti a WSL. Puoi verificare la versione di WSL con:

```
wsl --version
```

WSL **2.7.3.0 e versioni successive** include correzioni che hanno risolto i problemi persistenti di disconnessione per gli utenti, anche senza ulteriori modifiche alla configurazione.

***

<div id="2-clean-reinstall-of-the-devin-desktop-server-in-wsl">
  #### **2. Reinstallazione pulita del server Devin Desktop in WSL**
</div>

Elimina la directory del server Devin Desktop in WSL e lascia che Devin Desktop la reinstalli alla connessione successiva:

```shell theme={null}
rm -rf ~/.windsurf-server
```

Ricollega quindi Devin Desktop a WSL. Il server verrà reinstallato automaticamente.

***

<div id="3-minimize-installed-extensions-highest-impact">
  #### **3. Riduci al minimo le estensioni installate (impatto massimo)**
</div>

Installa solo le estensioni di cui hai effettivamente bisogno per il repository su cui stai lavorando.

* Apri il pannello Extensions in Devin Desktop mentre sei connesso a WSL
* Controlla quali estensioni sono installate nell'ambiente **WSL** (non solo in locale)
* Disabilita o disinstalla le estensioni che non ti servono, soprattutto quelle che eseguono un monitoraggio intenso dei file o l'indicizzazione

**Estensioni note per causare problemi in WSL:**

* **Vue (Volar)** — è stato confermato che causa un'indicizzazione eccessiva dei file tramite il bridge 9P, anche in progetti che non usano Vue. La sola disinstallazione di questa estensione ha risolto le disconnessioni per più utenti.
* Anche altre estensioni di linguaggio specifiche per framework (Angular, Svelte, ecc.) possono comportarsi allo stesso modo se sono installate ma non necessarie per il workspace corrente.

**Non** dare per scontato che estensioni che funzionano bene in una configurazione locale (non WSL) si comportino allo stesso modo in WSL. Il collo di bottiglia è il bridge del filesystem 9P: estensioni innocue in locale possono diventare destabilizzanti quando ogni operazione sui file deve attraversare il protocollo.

Ridurre l'attività sul filesystem generata dalle estensioni riduce direttamente il carico sul bridge 9P.

***

<div id="4-optimize-wsl-resource-limits">
  #### **4. Ottimizza i limiti delle risorse di WSL**
</div>

Crea o modifica il file `%USERPROFILE%\.wslconfig` sull'host **Windows** (ad es. `C:\Users\<YourUser>\.wslconfig`) impostando limiti delle risorse adatti al tuo sistema:

```
[wsl2]
memory=16GB
swap=4GB
processors=4
autoMemoryReclaim=gradual
```

> **Nota:** L'impostazione `autoMemoryReclaim` è stata rimossa in WSL **2.7.3.0** e nelle versioni successive. Se utilizzi WSL 2.7.3.0 o versioni successive, ometti questa riga. Puoi verificare la versione di WSL con `wsl --version`.

Regola i valori in base alle risorse disponibili sul tuo sistema.

Dopo aver salvato il file, riavvia WSL:

```
wsl --shutdown
```

Poi riapri Devin Desktop e ricollegati a WSL.

***

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

<div id="check-wsl-diagnostic-logs-for-9p-errors">
  #### **Verificare i log diagnostici di WSL per gli errori 9P**
</div>

Per confermare che la saturazione di 9P sia effettivamente la causa, raccogli i log diagnostici di WSL:

```
wsl --debug-shell
```

Oppure raccogli un pacchetto diagnostico completo:

```
Invoke-WebRequest -UseBasicParsing "https://aka.ms/wsldiag" -OutFile wsldiag.ps1
.\wsldiag.ps1
```

Cerca volumi elevati di eventi `Reply_Rlerror` nei log del filesystem 9P. Migliaia di eventi (o più) indicano in genere che estensioni o processi all'interno di WSL stanno generando un numero eccessivo di richieste al filesystem, che il bridge 9P non riesce a gestire.

***

<div id="when-to-use-which-fix">
  ### **Quando usare ciascuna soluzione**
</div>

* **Aggiorna WSL** per prima cosa: molti problemi si risolvono semplicemente eseguendo `wsl --update`. WSL 2.7.3.0+ include importanti miglioramenti della stabilità. (La soluzione più semplice.)
* **Riduci al minimo le estensioni** se hai molte estensioni installate in WSL che non ti servono davvero, oppure se hai migrato estensioni da un altro editor. (La modifica con l'impatto maggiore.)
* **Reinstalla il server da zero** se lo stato del server di Devin Desktop potrebbe essere danneggiato o non aggiornato (ad es. dopo un aggiornamento non riuscito o un arresto anomalo precedente).
* **Ottimizza `.wslconfig`** se WSL sta consumando troppe risorse dell'host oppure se non hai ancora configurato limiti per le risorse. (Miglioramento generale della stabilità di WSL.)

Per ottenere risultati ottimali, inizia aggiornando WSL, poi applica le altre soluzioni secondo necessità. La combinazione di una versione aggiornata di WSL, un server reinstallato da zero, estensioni ridotte al minimo e limiti delle risorse ben configurati affronta sia la causa principale (saturazione di 9P dovuta all'attività delle estensioni) sia i fattori che contribuiscono al problema (esaurimento delle risorse).

***

<div id="cannot-connect-to-wsl-with-vpn-or-zero-trust-software">
  ## **Impossibile connettersi a WSL con una VPN o software zero-trust**
</div>

Devin Desktop non riesce a connettersi a WSL e mostra l'errore `Couldn't install vscode server on remote server, install script returned non-zero exit status` quando una VPN o un software zero-trust (Twingate, Tailscale, Zscaler, Cloudflare WARP, GlobalProtect, ecc.) blocca il traffico di rete in uscita dall'interno di WSL.

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

* Devin Desktop segnala `Error resolving authority` / `install script returned non-zero exit status` durante la connessione a WSL
* WSL di per sé funziona (`wsl -d Ubuntu -- echo hello` va a buon fine), ma `curl` va in timeout all'interno di WSL
* Il problema è iniziato dopo l'installazione o l'aggiornamento di un software VPN o zero-trust

<div id="root-cause">
  ### **Causa principale**
</div>

Per impostazione predefinita, WSL 2 instrada il traffico attraverso una rete virtuale basata su NAT. Spesso i software VPN e zero-trust non inoltrano il traffico proveniente da questa rete virtuale, quindi il download del server di Devin Desktop non va a buon fine senza mostrare errori.

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

<div id="1-enable-mirrored-networking">
  #### **1. Abilita la rete in modalità mirroring**
</div>

Modifica il file di configurazione di WSL per abilitare la rete in modalità mirroring (in genere `C:\Users\<YourUser>\.wslconfig`).
Aggiungi quanto segue:

```ini theme={null}
[wsl2]
networkingMode=mirrored
dnsTunneling=true
autoProxy=true
```

Quindi riavvia WSL e pulisci qualsiasi stato di installazione inattivo:

```
wsl --shutdown
wsl -d Ubuntu -- bash -c "rm -f ~/.windsurf-server/.installation_lock"
```

Riapri Devin Desktop e riconnettiti a WSL. Il server verrà installato automaticamente.

> **Nota:** Richiede WSL 2.0.0 o versione successiva. Esegui `wsl --version` per verificare e, se necessario, `wsl --update` per aggiornare.

<div id="2-alternative-temporarily-disconnect-vpn">
  #### **2. Alternativa: scollega temporaneamente la VPN**
</div>

Se non puoi modificare `.wslconfig`, disconnetti la VPN/ZTNA, consenti a Devin Desktop di installare il server, quindi riconnettiti. I futuri aggiornamenti di Devin Desktop richiederanno nuovamente che WSL abbia accesso alla rete.
