• 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
..
__init__.py Loading commit data...
_film_net.py Loading commit data...
_rife_ifnet.py Loading commit data...
app.py Loading commit data...
archive.py Loading commit data...
audio_backends.py Loading commit data...
audio_clean.py Loading commit data...
audio_gen.py Loading commit data...
audio_stems.py Loading commit data...
audiocraft_worker.py Loading commit data...
canary_worker.py Loading commit data...
characters.py Loading commit data...
colibri_worker.py Loading commit data...
compose.py Loading commit data...
crisperwhisper_worker.py Loading commit data...
custom_pipelines.py Loading commit data...
diarization.py Loading commit data...
ds4_kv_janitor.py Loading commit data...
ds4_worker.py Loading commit data...
embeddings.py Loading commit data...
environments.py Loading commit data...
faceswap.py Loading commit data...
fastlog.py Loading commit data...
h3_worker.py Loading commit data...
host_worker.py Loading commit data...
hub_compat.py Loading commit data...
images.py Loading commit data...
k3_worker.py Loading commit data...
kt_worker.py Loading commit data...
lipsync.py Loading commit data...
log.py Loading commit data...
longcat_worker.py Loading commit data...
lora_archs.py Loading commit data...
loras.py Loading commit data...
melotts_worker.py Loading commit data...
model_test.py Loading commit data...
models_transfer.py Loading commit data...
mux_remote.py Loading commit data...
ocr.py Loading commit data...
parler_worker.py Loading commit data...
pipelines.py Loading commit data...
pod_http.py Loading commit data...
pod_tls.py Loading commit data...
prompt_cache.py Loading commit data...
pyannote_worker.py Loading commit data...
ratelimit.py Loading commit data...
remote_gateway.py Loading commit data...
rerank.py Loading commit data...
runpod_client.py Loading commit data...
runpod_ledger.py Loading commit data...
runpod_worker.py Loading commit data...
spatial.py Loading commit data...
speaker_embeddings.py Loading commit data...
speaker_registry.py Loading commit data...
state.py Loading commit data...
stt_backends.py Loading commit data...
text.py Loading commit data...
transcriptions.py Loading commit data...
tts.py Loading commit data...
tts_backends.py Loading commit data...
uploads.py Loading commit data...
urlutils.py Loading commit data...
video.py Loading commit data...
vllm_worker.py Loading commit data...
voice_clone.py Loading commit data...
voice_convert.py Loading commit data...
vpr_salad_server.py Loading commit data...
xtts_worker.py Loading commit data...