Graceful error handling in future_lapply
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- r
- Ambito
- distributed-systems
Direzione di ricerca
Partire dalla chiamata a future_lapply e dal percorso values(fs) descritto nel report, quindi tracciare come viene gestito FutureError quando la connessione a un nodo del cluster non riesce. Done deve essere definito come un comportamento chiaro per i singoli nodi che falliscono, mantenendo i risultati dei nodi che completano l’operazione; il comportamento deve essere documentato o esposto tramite l’interfaccia di gestione degli errori richiesta.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
I've been using future_lapply to submit jobs to a cluster of gcloud compute nodes - which is awesome!! Thanks so much for adding this user-friendly function.
One issue I'm running into, however, concerns the behavior when one of my gcloud compute nodes goes down unexpectedly.
Here's what I see:
Error in unserialize(node$con) :
Failed to retrieve the value of ClusterFuture from cluster node #1 (on ‘35.190.151.35’). The reason reported was ‘error reading from connection’
Calls: future_lapply ... FutureRegistry -> collectValues -> value -> value.ClusterFuture
Execution halted
Is there a good way to catch these errors for individual nodes, so that I can still access results from the nodes which are still executing? IE, can we pass an on.error function to call to values(fs)?
For now I have wrapped these in a call to withCallingHandlers() to catch & ignore this error. I haven't tested it in a real-life situation, but assuming it works this may be something to include in your vignette Common Issues with Solutions.
The code currently looks like something the following:
withCallingHandlers({
remote_jobs <- future_lapply(seq_len(num_data_sims),
execute_simtest,
future.seed = 0xBEEF,
future.scheduling = 2
)
}, FutureError = function(e) NULL
)
- Lingua principale
- R
- Stelle
- 218
- Fork
- 20
- Merge medio
- 2g 9h
- PR unite (30g)
- 1
Guida per i contributori
Apri la guida per i contributori
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 futureverse/future.apply
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
futureverse/future.apply#130 · 1 commento · 1 reazione ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
futureverse/future.apply#129 · 2 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 40/100
futureverse/future.apply#128 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
futureverse/future.apply#112 · 3 commenti ·
-
feature request
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
futureverse/future.apply#111 · 2 commenti ·
Tutte le issue di futureverse/future.apply
Issue simili
-
Affects Web App documentation PRIORITY LOW
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
hubverse-org/hubCI#36 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
OHDSI/CohortSymmetry#351 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100