«script interrotto dopo 2000 ms (ciclo infinito?)» nello scripting di Senzoukria

Ogni script di Senzoukria gira in un worker isolato con un budget di 2 secondi per esecuzione. Uno script che lo supera viene fermato con «script interrotto dopo 2000 ms (ciclo infinito?)»; una sandbox che non è mai partita riporta un messaggio diverso.

Senzoukria · Risoluzione dei problemi · Aggiornato a settembre 2026


In breve

Timeout
«script interrotto dopo {ms} ms (ciclo infinito?)»
Budget
2.000 ms per esecuzione
Sandbox non servita
«sandbox non disponibile: il protocollo {scheme} non ha servito nulla in {ms} ms (applicazione avviata fuori da Tauri?)»
Effetto
Il grafico continua a funzionare; l’esecuzione dello script restituisce un errore

Cosa vedi

La console degli script e la striscia della pipeline mostrano l’esecuzione come fallita con «script interrotto dopo 2000 ms (ciclo infinito?)». Se la sandbox non ha risposto affatto, l’errore è «sandbox non disponibile: il protocollo {scheme} non ha servito nulla in {ms} ms (applicazione avviata fuori da Tauri?)».

Perché succede

Gli script girano in un worker isolato senza rete, senza accesso ai file e senza API del broker. Un’esecuzione che non risponde entro il suo budget viene fermata perché uno script rotto non possa congelare il grafico. Il più delle volte la causa è un ciclo che non finisce mai, o un ciclo su tutte le barre annidato dentro un altro ciclo su tutte le barre. I due guasti restano deliberatamente separati: per due mesi e mezzo, una sandbox che non partiva era stata letta come uno script lento. L’avvio del motore Python è cronometrato a parte e non è contato nel budget di 2 secondi.

Come risolvere

  • Cerca i cicli while la cui condizione di uscita può restare falsa, e un contatore che non viene mai aggiornato.
  • Sostituisci i cicli annidati su tutte le barre con un solo passaggio che porta dei valori correnti.
  • Prova su un intervallo di grafico più corto per vedere se il tempo cresce con il numero di barre.
  • Usa l’assistente degli script: può eseguire lo script, leggere l’errore reale e proporre una correzione.
  • Per il messaggio sulla sandbox, riavvia l’app; indica che il protocollo della sandbox non ha servito nulla.

Cosa non è

  • Non è un crash dell’app: uno script rotto non uccide mai il grafico.
  • Non è un errore di sintassi: quelli indicano una riga («Fallito alla riga {line}»).

Quando contattare il supporto

Se dopo questi controlli sei ancora bloccato, scrivi da Menu → Segnala un problema, oppure sul Discord di Senzoukria. Allega uno script minimo che riproduce l’interruzione e indica su quale grafico e su quale intervallo gira.

Nella stessa sezione

Questa pagina in altre lingue

Domande frequenti

Il budget di 2 secondi è per barra o per esecuzione?
Per esecuzione. La toolchain C++ indica lo stesso limite: 2 s per esecuzione, con le 256 barre più recenti per chiamata.
Gli script Python hanno lo stesso budget?
La loro esecuzione segue le stesse regole della sandbox; solo l’avvio del motore Python è cronometrato fuori dal budget di 2 secondi.

Continua a leggere