fix/docker-review-issues#48
Conversation
Greptile SummaryThis PR addresses several correctness and performance issues in the Docker transport and image-handling stack. It introduces a shared
Confidence Score: 5/5Safe to merge; all changed paths are well-reasoned refactors with no dropped logic. The shared daemon uses OnceCell correctly (failed init retries, successful init is reused), the ChunkReadBuffer cursor arithmetic is sound, the absolute-index find_crlf is consistent with how its callers slice the buffer, and tagged_repository_name correctly handles Docker Hub library vs user images. The new copy_reader_with_digest test covers the copy-and-hash path end-to-end. No logic was silently dropped during refactoring. No files require special attention. Important Files Changed
Sequence DiagramsequenceDiagram
participant Caller
participant mod as docker/mod.rs
participant OnceCell as SHARED_DAEMON (OnceCell)
participant Daemon as DockerDaemon
participant Transport as DockerTransport
participant Digest as digest.rs
Caller->>mod: load_archive / pull_image / tag_image / ...
mod->>OnceCell: shared().await
alt first call
OnceCell->>Daemon: connect()
Daemon-->>OnceCell: "&'static DockerDaemon"
else already initialized
OnceCell-->>mod: "&'static DockerDaemon (cached)"
end
mod->>Daemon: operation (load_archive / pull_image / ...)
Note over Daemon,Transport: pull_image uses split_tagged_reference
Daemon->>mod: split_tagged_reference(reference)
mod->>mod: ImageReference::parse(reference)
mod->>mod: tagged_repository_name(ref)
mod-->>Daemon: (String repository, String tag)
Daemon->>Transport: "POST /images/create?fromImage=...&tag=..."
Note over Transport: Windows chunked response → ChunkReadBuffer
Transport->>Transport: read_chunk_size(ChunkReadBuffer)
Transport->>Transport: write_chunk_data(ChunkReadBuffer)
Note over Daemon,Digest: Layer materialization (spawn_blocking)
Daemon->>Digest: copy_reader_with_digest(expected, reader, writer)
Digest->>Digest: parse_digest → select SHA algorithm
Digest->>Digest: copy_and_hash_reader (stream + hash)
Digest-->>Daemon: actual_digest string
Daemon->>Daemon: "verify actual == expected"
Reviews (2): Last reviewed commit: "Address Greptile Docker review comments" | Re-trigger Greptile |
No description provided.