• Stefy Lanza (nextime / spora )'s avatar
    runpod: a release that cannot be honoured yet is remembered, and a pod that · a1e95f99
    Stefy Lanza (nextime / spora ) authored
    refuses our token is not an asset (v0.3.17)
    
    Both from watching a real OCR run.
    
    THE LOST INTENT. A client asked for the fleet back while a page was still being
    read. The pods correctly stayed — work is never dropped to save money — but the
    intent was then forgotten: the pool fell back to idle_timeout_s (900s there) and
    billed for a fleet nobody had asked to keep. It took a second teardown call,
    four minutes later, to actually release it. The pool now remembers: pods kept
    only because they are working are retired the moment they fall idle, the same
    "do not wait out the timeout" treatment a closed schedule window already gets.
    Asking for warm pods again cancels it.
    
    Also fixes the reply and the log, which said "floor 1" when the 1 came from work
    in flight. That reads as though the operator had asked for the pod — the opposite
    of what it meant. Demand and configuration are now reported separately
    ("needed" and "floor"), because they are two different reasons a pod survived.
    
    THE ADOPTED POD THAT 401s. After a restart the pool adopts the pod it left
    running instead of renting another, and carries that pod's bearer token across
    through the registry — when one was recorded. With none recorded it fell back to
    our own token and never checked the result, so a pod launched with a different
    one answered 401 to every request for the rest of its paid life. Seen today,
    right after a restart: "reusing the pod already running" followed by 401 on
    every OCR page. The health probe that found it proves nothing here — a coderai
    pod answers /healthz to anybody.
    
    Adoption now probes an AUTHENTICATED path with the token it would use, and a pod
    that refuses it is terminated rather than adopted: with one registry per
    deployment (0.3.15) an unrecorded key is a lost key, so that pod can never serve
    anyone, and paying for it is the only outcome worse than killing it. An
    unreachable pod is NOT treated as unauthorised — that stays with the health
    machinery, which has a budget for it.
    Co-Authored-By: 's avatarClaude Opus 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01PxYHWbCAjjjD7A1rhFKtaW
    a1e95f99
Name
Last commit
Last update
..
conftest.py Loading commit data...
test_admin_auth.py Loading commit data...
test_admin_forward_auth.py Loading commit data...
test_admin_remote_ui.py Loading commit data...
test_audio_ml_backends.py Loading commit data...
test_audio_ml_endpoints.py Loading commit data...
test_autoupgrade.py Loading commit data...
test_autoupgrade_recovers_a_down_server.py Loading commit data...
test_autoupgrade_sees_training.py Loading commit data...
test_broker_config.py Loading commit data...
test_broker_dispatch.py Loading commit data...
test_broker_protocol.py Loading commit data...
test_broker_shutdown.py Loading commit data...
test_broker_streaming.py Loading commit data...
test_burst_placement.py Loading commit data...
test_character_studio_fetch.py Loading commit data...
test_cluster.py Loading commit data...
test_compose.py Loading commit data...
test_forward_auth_peer_trust.py Loading commit data...
test_front_api_auth.py Loading commit data...
test_front_ocr_swap_gate.py Loading commit data...
test_image_has_c_compiler.py Loading commit data...
test_longcat_avatar_layout.py Loading commit data...
test_longcat_bsa.py Loading commit data...
test_longcat_cancellable.py Loading commit data...
test_longcat_checkpoint_resolve.py Loading commit data...
test_longcat_component_quant.py Loading commit data...
test_longcat_config_ui.py Loading commit data...
test_longcat_external_training.py Loading commit data...
test_longcat_int8_load.py Loading commit data...
test_longcat_lora.py Loading commit data...
test_longcat_orchestration.py Loading commit data...
test_longcat_packaging.py Loading commit data...
test_longcat_placement.py Loading commit data...
test_longcat_progress.py Loading commit data...
test_longcat_prompt_cache.py Loading commit data...
test_longcat_quantize.py Loading commit data...
test_longcat_scale.py Loading commit data...
test_longcat_tasks.py Loading commit data...
test_longcat_variants.py Loading commit data...
test_longcat_vendored_source.py Loading commit data...
test_longcat_venv_env.py Loading commit data...
test_longcat_vram_estimate.py Loading commit data...
test_longcat_worker.py Loading commit data...
test_manual_multimodal_test_client.py Loading commit data...
test_model_scan_cache.py Loading commit data...
test_ocr_fanout.py Loading commit data...
test_ocr_olmocr.py Loading commit data...
test_ocr_served_model.py Loading commit data...
test_ocr_vram_share_and_fallback.py Loading commit data...
test_oom_priority.py Loading commit data...
test_proxy_logprobs.py Loading commit data...
test_remote_execution.py Loading commit data...
test_runpod_client_scale.py Loading commit data...
test_runpod_fleet_status.py Loading commit data...
test_runpod_global_volume.py Loading commit data...
test_runpod_ocr_remotization.py Loading commit data...
test_runpod_placement.py Loading commit data...
test_runpod_pod_extra_args.py Loading commit data...
test_runpod_reaper_grace.py Loading commit data...
test_runpod_scale_down.py Loading commit data...
test_runpod_schedule_region_spend.py Loading commit data...
test_studio_composed_surfaces.py Loading commit data...
test_surya_runpod_fixes.py Loading commit data...
test_township_api_key.py Loading commit data...
test_township_clip_geometry.py Loading commit data...
test_township_longcat.py Loading commit data...
test_township_page_js.py Loading commit data...
test_township_templates.py Loading commit data...
test_township_video_dataset.py Loading commit data...
test_upgrade_launcher.py Loading commit data...
test_video_as_b64_scope.py Loading commit data...
test_video_geometry.py Loading commit data...
test_vllm_share_self_tuning.py Loading commit data...
test_vram_releasers.py Loading commit data...
test_weight_stores.py Loading commit data...
test_whisper_server_local_models.py Loading commit data...