gabriel / muse public
fix BREAKING task/push-mpack-put-timeout #1 / 1
AI Agent gabriel · 77 days ago · Jun 20, 2026 · Diff

fix: scale presigned mpack PUT timeout with payload size (issue #40)

Large mpack uploads were hitting the global 300s timeout on slow uplinks. aaronrene/scooling reproduced this: ~36 MB at ~90 KB/s needs ~390s, which exceeded _TIMEOUT_SECONDS.

Adds _mpack_put_timeout(size_bytes): max(1800, size/50_000) capped at 7200s. push_mpack_put now uses this instead of the global API timeout. MUSE_PUSH_TIMEOUT_SECONDS env var overrides for ops/testing.

The global _TIMEOUT_SECONDS is unchanged — all other API calls keep 300s.

sha256:b9e80dbc5ca7d0bed2975a744af328796584ca4ed2f0dbda600a49d26be8d34e sha
+20 ~2 symbols
sha256:ec4eb06a0de2a0126217fca2ea318fac963e9c8ecbac68f347ff16d3f6ffed33 snapshot
+20
symbols added
~2
symbols modified
0
dead code introduced
Semantic Changes 22 symbols
+ _UPLOAD_URL variable variable _UPLOAD_URL L30–30
+ _mock_urllib_do function function _mock_urllib_do L33–37
+ HttpTransport import import HttpTransport L24–24
+ TransportError import import TransportError L24–24
+ _mpack_put_timeout import import _mpack_put_timeout L24–24
+ annotations import import annotations L17–17
+ os import import os L19–19
+ patch import import patch L20–20
+ pytest import import pytest L22–22
+ test_pt1_small_payload_gets_floor_timeout function function test_pt1_small_payload_gets_floor_timeout L42–46
+ test_pt2_large_payload_exceeds_floor function function test_pt2_large_payload_exceeds_floor L51–55
+ test_pt3_timeout_never_exceeds_max function function test_pt3_timeout_never_exceeds_max L60–63
+ test_pt4_computed_timeout_passed_to_urllib_do function function test_pt4_computed_timeout_passed_to_urllib_do L68–77
+ test_pt5_env_var_overrides_computed_timeout function function test_pt5_env_var_overrides_computed_timeout L82–90
+ test_pt6_env_var_absent_uses_computed_default function function test_pt6_env_var_absent_uses_computed_default L95–105
+ test_pt7_global_timeout_does_not_affect_put_timeout function function test_pt7_global_timeout_does_not_affect_put_timeout L110–124
~ muse/core/transport.py .py 4 symbols added, 2 symbols modified
+ _PUT_MIN_BYTES_PER_SEC variable variable _PUT_MIN_BYTES_PER_SEC L102–102
+ _PUT_TIMEOUT_FLOOR variable variable _PUT_TIMEOUT_FLOOR L100–100
+ _PUT_TIMEOUT_MAX variable variable _PUT_TIMEOUT_MAX L101–101
+ _mpack_put_timeout function function _mpack_put_timeout L105–119
← Older Oldest on task/push-mpack-put-timeout
All commits
Newer → Latest on task/push-mpack-put-timeout

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:b9e80dbc5ca7d0bed2975a744af328796584ca4ed2f0dbda600a49d26be8d34e --body "your comment"