Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

ROBUSTNESS: Write RDS files atomically

Aperta
#317 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
r
Ambito
backend

Direzione di ricerca

Inizia dall’implementazione di writeRDS() e individua i due utilizzi rimanenti di saveRDS() menzionati nell’issue. Esamina PR #316 per comprendere l’ambito proposto e verifica che tutte le scritture RDS evitino di esporre file di destinazione incompleti; il completamento si considera raggiunto quando le scritture interessate rispettano il requisito di atomicità dell’issue.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

compat robustness

Issue

When writing an RDS file, it might fail half way through, resulting in an incomplete, corrupt file. Similarly, if one process attempts to read a file that is currently being written by another process, the read might occur on an incomplete file.

Suggestion

Always write RDS file atomically. This can be achieved by writing to *.rds.tmp and then rename the file to *.rds after saveRDS() completes. This way the target *.rds is guaranteed to be complete.

By writing to *.rds.tmp instead of tempfile() guarantees that we write to the same drive, avoiding cross-drive moves and copies.

Patch

See PR #316 for a patch. I updated writeRDS() to write atomically and I've added wait = 300, which can optionally be set to wait = 0. The latter is used to replace two remaining saveRDS() uses.

Lingua principale
R
Stelle
184
Fork
54
Merge medio
1g 21h
PR unite (30g)
4

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di mlr-org/batchtools

Tutte le issue di mlr-org/batchtools

Issue simili

Altre issue su R

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.