fix/async-issues#53
Conversation
Greptile SummaryThis PR addresses a broad set of async correctness issues across the pull pipeline: blocking credential-helper invocation, coarse-grained
Confidence Score: 5/5Clean async refactor with no regressions found; all abort paths are properly drained and the I/O timeout additions are conservative. Every changed code path was reviewed end-to-end: credential helper stdin is closed before wait_with_output, CancellationToken semantics are applied consistently, JoinSets and FuturesUnordered queues are drained after abort_all, and the new TemporaryCacheRegistry::shutdown correctly consumes self so the Drop impl never double-fires. No data loss, stall, or correctness issues were identified. No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[runtime: run] --> B[orchestrator: pull_references]
A --> C[serve_registry: serve with shutdown]
B --> D[auth: async invoke_helper]
D --> E[spawn tokio process]
E --> F{tokio timeout around wait_with_output}
F -->|elapsed| G[warn and return None]
F -->|finished| H[parse credentials]
B --> I[download blob loop]
I --> J{select: fetch vs cancellation}
J -->|cancelled| K[return Interrupted]
J -->|chunk| L[write to file]
L --> M{backoff needed?}
M -->|yes| N[sleep_or_interrupt]
N --> J
C --> O[request read with timeout 120s]
O --> P[route request]
P --> Q[write response with idle timeout 300s per chunk]
Reviews (2): Last reviewed commit: "Use async timeout for credential helpers" | Re-trigger Greptile |
No description provided.