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

Windows: graphify update can hang in tempfile.mkstemp while saving manifest

Aperta
#3,646 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

  • #3663 di @nikhilsaxena04 — chiusa senza merge

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
25/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
python
Ambito
cli, devtools

Direzione di ricerca

Start in graphify/paths.py at _atomic_replace() and write_json_atomic(), then trace their callers in graphify/detect.py and graphify/watch.py. Review linked PR #3663 and reproduce graphify update . on Windows; done means the command completes or reports a visible, actionable error naming the manifest target.

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

Descrizione

Summary

On Windows, graphify update . can stop after AST extraction and never return. A faulthandler dump shows that Graphify is blocked in tempfile.mkstemp() while saving manifest.json.

Environment

  • graphifyy 0.9.63
  • Python 3.11.15, 64-bit
  • Windows 11 Pro, version 10.0.26200, build 26200
  • Target manifest path length: 55 characters (local project path redacted)

Reproduction

  1. Use a project with an existing graphify-out/ directory and roughly 1,090 code files.

  2. Run:

    graphify update .

  3. The command reports progress through AST extraction, for example:

    AST extraction: 1000/1088 uncached files (91%)

  4. It then remains active without printing a completion message or returning.

A 20-second faulthandler timeout captured this stack:

File "...\Lib\tempfile.py", line 257 in _mkstemp_inner
File "...\Lib\tempfile.py", line 358 in mkstemp
File "...\graphify\paths.py", line 120 in _atomic_replace
File "...\graphify\paths.py", line 165 in write_json_atomic
File "...\graphify\detect.py", line 2418 in save_manifest
File "...\graphify\watch.py", line 1988 in _rebuild_code

Expected behavior

graphify update . completes or fails with a visible error and an actionable target path.

Actual behavior

The process blocks indefinitely in temporary-file creation. There is no final success or failure output.

Additional observations

  • The graph artifacts had already been written and the resulting graph was valid (11,158 nodes, 40,276 edges; no missing or dangling endpoints).
  • The manifest target is deliberately short, so this does not appear to be the Windows path-length issue described in #3351.
  • In the current code, _atomic_replace() calls tempfile.mkstemp(dir=str(real.parent), prefix=".gfy-", suffix=".tmp") directly. The existing fallback around the later os.replace() step cannot handle a block before that point.

A bounded retry/timeout around temporary-file creation, plus explicit diagnostic output naming the target file, would make this failure mode recoverable.

Lingua principale
Python
Stelle
124k
Fork
11.9k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

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

  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 Graphify-Labs/graphify

Tutte le issue di Graphify-Labs/graphify

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.