• Stefy Lanza (nextime / spora )'s avatar
    ocr: a pod that vanished must not take the queue with it (v0.3.18) · b2f91079
    Stefy Lanza (nextime / spora ) authored
    RunPod reclaimed an A40 mid-document today. The pool went on reporting it
    healthy, so every page chose the same corpse: the in-flight count climbed, the
    pod was never dropped, and nothing drained. From the client that reads as
    "requests neither complete nor time out", and it is what wedged the test.
    
    RunpodBackend has always handled this — _unreachable() drops the pod and the
    request goes again. The fan-out gateway never did: it returned 502 and left the
    dead pod in the pool as healthy. So a lease can now report its upstream dead,
    which drops the pod, clears the cached candidate set and releases the slot; the
    page is retried ONCE against whatever replaces it, and a third attempt would
    just be a retry loop against a real outage.
    
    Only connect-level failures count as dead. A read timeout is a model taking its
    time over a dense page, and discarding a healthy pod for that would be an
    outage of its own.
    
    Also: the first version of that handler could not work. It used a metaclass
    with __instancecheck__ so `except _DEAD_UPSTREAM` would match httpx's errors —
    but `except` matches on the class hierarchy at C level and never consults
    __instancecheck__, so it caught nothing. A test caught it; the check is now an
    explicit isinstance() where it cannot lie.
    
    And the registry path again: 0.3.15 keyed the fallback off XDG_CONFIG_HOME,
    which the container launcher exports only into the processes IT starts. A
    diagnostic script entering the container another way printed a THIRD registry
    path and created a second pod TLS CA. The fallback now reads
    CODERAI_CONFIG_DIR, the variable the launcher actually sets, so every process
    agrees however it was started — and since pod_tls.tls_dir() derives from the
    registry path, the CA follows.
    Co-Authored-By: 's avatarClaude Opus 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01PxYHWbCAjjjD7A1rhFKtaW
    b2f91079
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...