• 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
codai Loading commit data...
docs Loading commit data...
packaging Loading commit data...
samples Loading commit data...
tests Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.dockerignore Loading commit data...
.gitignore Loading commit data...
AI.PROMPT Loading commit data...
CODERAI_API_DOCUMENTATION.md Loading commit data...
CoderAI.gif Loading commit data...
DISTRIBUTION.md Loading commit data...
LICENSE.md Loading commit data...
MULTIMODAL_CAPABILITIES.md Loading commit data...
MULTIMODAL_UI_EXAMPLES.md Loading commit data...
README.md Loading commit data...
REQUEST-geoclip-embeddings.md Loading commit data...
REQUEST-vpr-embeddings.md Loading commit data...
amdgpu-coredump-05000.bin Loading commit data...
build-oci.sh Loading commit data...
build.ps1 Loading commit data...
build.sh Loading commit data...
coderai Loading commit data...
coderai-broker-implementation-reference.md Loading commit data...
coderai-integration.md Loading commit data...
commands Loading commit data...
osxbuild.sh Loading commit data...
package-oci.sh Loading commit data...
package-tarball.sh Loading commit data...
requirements-crisperwhisper.txt Loading commit data...
requirements-h3.txt Loading commit data...
requirements-longcat-train.txt Loading commit data...
requirements-longcat.txt Loading commit data...
requirements-melotts.txt Loading commit data...
requirements-nemo.txt Loading commit data...
requirements-nvidia.txt Loading commit data...
requirements-ocr-paddle.txt Loading commit data...
requirements-ocr.txt Loading commit data...
requirements-pyannote.txt Loading commit data...
requirements-surya.txt Loading commit data...
requirements-vllm.txt Loading commit data...
requirements-vulkan.txt Loading commit data...
requirements.txt Loading commit data...
run-oci.sh Loading commit data...
smoke-test-oci.sh Loading commit data...
todo.md Loading commit data...