workflow-engine: step timeout over ~24.8 days (or Infinity) fires after 1ms
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 84/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- node.js, typescript
Direzione di ricerca
Inizia da rivetkit-typescript/packages/workflow-engine/src/context.ts, in corrispondenza di executeWithTimeout, poi leggi l’helper setLongTimeout in utils.ts e come lo usa index.ts. Aggiungi test per timeout superiori a 2^31-1 ms e per Infinity; il lavoro è terminato quando i timeout lunghi non scattano più immediatamente e Infinity disattiva il timeout.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
executeWithTimeout in rivetkit-typescript/packages/workflow-engine/src/context.ts uses a plain setTimeout(reject, timeoutMs). Node can't wait longer than 2^31-1 ms (~24.8 days) that way: anything bigger, including Infinity, is clamped to 1ms with a TimeoutOverflowWarning.
So a step like this fails right away with StepTimeoutError, even though it would finish fine:
await ctx.step({
name: "long-job",
timeout: Infinity, // or 30 * 24 * 60 * 60 * 1000
run: async () => { ... },
});
Repro with the same logic as executeWithTimeout, running a 200ms step:
- timeout 60_000 -> "done"
- timeout 2_592_000_000 (30 days) -> StepTimeoutError after 3ms
- timeout Infinity -> StepTimeoutError after 1ms
Since timeouts aren't retried by default, the step is marked exhausted and the workflow fails.
Expected: the step waits for the full timeout (and Infinity means no timeout).
Fix idea: use the setLongTimeout helper from utils.ts (already used for the scheduler wait in index.ts), and treat a non-finite timeout as disabled like 0. Happy to send a PR with tests.
- Lingua principale
- Rust
- Stelle
- 6.6k
- Fork
- 304
- Merge medio
- 19h 50m
- PR unite (30g)
- 28
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rivet-dev/rivet
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 66/100
rivet-dev/rivet#5971 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
rivetkit client: ActorConn debug log prints action argumentsForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
rivet-dev/rivet#5955 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
effect: action on a missing actor instance fails as internal_error instead of actor.abortedForse già presa @kunalgoesbyken l’ha presa 17 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
rivet-dev/rivet#5891 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Rust client drops connection-level errors when actionId is null (JSON/CBOR)Forse già presa @DibbayajyotiRoy l’ha presa 39 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
rivet-dev/rivet#5819 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Queue docs say completable messages are removed on receive, but they stay stored until complete()Forse già presa @Saisharathchandranandnetha l’ha presa 50 giorni fa. Aperta
Difficoltà 1/5 1-3 ore Idoneità per principianti 91/100
rivet-dev/rivet#5762 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di rivet-dev/rivet
Issue simili
-
SPLADE `/embed_sparse` output depends on the other inputs in the batch (candle BertModel / DistilBertModel)Forse già presa @0z5a l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
huggingface/text-embeddings-inference#979 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
servo/rust-smallvec#874 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 94/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 2 giorni
-
ci enhancement need-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
I maintainer di solito rispondono entro 1 giorno