Skip to content

fix(artifact): bound image saves and recover interrupted file publication #88

Description

@morluto

Problem

Artifact publication has two failure paths:

  • DockerImageArtifact.put() reads stdout before wait(timeout=...) and leaves stderr unread. A stalled save or full stderr pipe blocks before the timeout is reached.
  • FileArtifact.put() / put_bytes() upload to a write-once version path before inserting their document. If insertion fails, the next attempt chooses the same version and collides with the orphaned object.

Reproduced impact

Scenario Current behavior
Save timeout set to 0.2 s Still blocked at 2 s; external watchdog required
Document insert fails after upload Three retries all fail with ObjectAlreadyExistsError

Reproduced against local subprocesses, SQLite and filesystem stores; no cloud or Docker engine required.

Acceptance

Bound the save and stream drain while keeping archive memory bounded; kill/reap failed saves and clean temporary files. Isolate each file upload attempt so retry succeeds without overwriting published data. Cover file and byte uploads, concurrent writes, saturated stderr, stalled stdout and successful gzip output.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions