Skip to content

Remove output listener read timeout for large image imports#263

Open
ejc3 wants to merge 1 commit intomainfrom
fix-output-timeout
Open

Remove output listener read timeout for large image imports#263
ejc3 wants to merge 1 commit intomainfrom
fix-output-timeout

Conversation

@ejc3
Copy link
Owner

@ejc3 ejc3 commented Feb 6, 2026

Summary

The 5-minute read timeout on the container output vsock caused the listener to exit during long image imports (10+ min for 26GB images). Container stdout/stderr was lost.

Fix

Remove the read timeout. The listener stays alive until EOF (connection closed by fc-agent) or VM exit. 6 lines added, 15 removed.

Test plan

make test-root FILTER=sanity_rootless
make test-root FILTER=localhost

The 5-minute read timeout on the container output vsock caused the
listener to exit during long image imports (10+ min). When the container
finally started, its stdout/stderr had nowhere to go.

Remove the timeout — the listener stays alive until EOF (connection
closed) or the VM exits. The VM exit handler already cleans up.
@claude-claude
Copy link
Contributor

claude-claude bot commented Feb 6, 2026

🔍 Claude Review

SEVERITY: none

Findings

No issues found. The PR correctly addresses the timeout problem for large image imports.

Analysis:

  • ✅ The 5-minute timeout was too restrictive for large image imports (10+ minutes)
  • ✅ Removing the timeout allows the listener to run until the natural EOF when fc-agent closes the connection
  • ✅ Proper cleanup mechanisms are in place:
    • Socket file cleanup at line 885
    • Task will be aborted if still running when output_handle drops (line 1433)
    • VM exit triggers vsock connection close, causing EOF
  • ✅ Code is simplified and clearer (15 deletions, 6 additions)
  • ✅ SIGTERM/SIGINT handling ensures users can still interrupt long operations

The change is well-justified and follows good async patterns.

Summary

Clean fix for a real problem. No issues identified.


Review by Claude | Run

@claude-claude
Copy link
Contributor

claude-claude bot commented Feb 6, 2026

🔧 CI Auto-Fix

Created fix PR: #264

Issue: The test was failing because the output listener task was hanging when VMs were killed abruptly during stress tests (100 concurrent VMs). The vsock connection wouldn't cleanly close, causing to block indefinitely.

Fix: Added explicit task abortion during VM cleanup by storing the output listener task handle and aborting it in .

View Claude Run

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant