Vai al contenuto principale

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.

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

Rallentamenti o disconnessioni (saturazione del filesystem 9P)

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.

Sintomi

  • 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

Causa principale

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

Soluzioni

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.

2. Reinstallazione pulita del server Devin Desktop in WSL

Elimina la directory del server Devin Desktop in WSL e lascia che Devin Desktop la reinstalli alla connessione successiva:
rm -rf ~/.windsurf-server
Ricollega quindi Devin Desktop a WSL. Il server verrà reinstallato automaticamente.

3. Riduci al minimo le estensioni installate (impatto massimo)

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.

4. Ottimizza i limiti delle risorse di WSL

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.

Diagnosi

Verificare i log diagnostici di WSL per gli errori 9P

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.

Quando usare ciascuna soluzione

  • 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).

Impossibile connettersi a WSL con una VPN o software zero-trust

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.

Sintomi

  • 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

Causa principale

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.

Soluzione

1. Abilita la rete in modalità mirroring

Modifica il file di configurazione di WSL per abilitare la rete in modalità mirroring (in genere C:\Users\<YourUser>\.wslconfig). Aggiungi quanto segue:
[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.

2. Alternativa: scollega temporaneamente la VPN

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.