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

Atomic append fails to create a missing file

Aperta Adatta ai principianti
#201 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

@harbinresearcher ci sta già lavorando.

Dal 14/10/2026.

  • #202 di @harbinresearcher — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
70/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python
Ambito
backend

Direzione di ricerca

Inizia da _write_file_atomic, dove la destinazione viene letta incondizionatamente quando append=True prima che venga creato il file temporaneo. Esegui la riproduzione indicata nell'issue con atomic=True e una directory padre e un file mancanti, quindi confrontala con il percorso atomic=False. Il lavoro è completato quando l'append atomico crea il file mancante, un secondo append conserva il contenuto precedente e i test esistenti continuano a passare.

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

Descrizione

Describe the bug

write_file(path, content, append=True, atomic=True) raises OSError: Invalid file path when the destination does not exist. The same call with atomic=False creates the file, consistent with append mode.

Reproduce
from pathlib import Path
from tempfile import TemporaryDirectory

import fsutil

with TemporaryDirectory() as directory:
    path = str(Path(directory) / "new" / "file.txt")
    fsutil.write_file(path, content="first", append=True, atomic=True)

Reproduced with Python 3.12.14 on Windows and python-fsutil 0.18.0 source at d3a77c552346dc72a081284a6fd017ecc1ba234f. No mocked filesystem or injected failure is required. This was found during a code review, rather than reported from a production application.

Expected behavior

Create the missing file, as non-atomic append does. A subsequent append should preserve its previous content.

Cause and scope

_write_file_atomic reads the destination unconditionally when append=True, before creating a temporary file. Reading a missing destination raises immediately.

This differs from #194: it does not concern errors after replacement or the Windows-specific FileNotFoundError cleanup handler. Those paths can remain unchanged.

AI assistance was used to investigate the source and prepare reproduction and tests. A focused fix is ready.

Lingua principale
Python
Stelle
268
Fork
19
Merge medio
8g 13h
PR unite (30g)
4

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

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 fabiocaccamo/python-fsutil

Tutte le issue di fabiocaccamo/python-fsutil

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.