Issues / #3488
#3488 [GUI] Stuck after an interrupted load: a dead engine PID blocks it, then the integrity check fails on intact files
open · @Astemiir · 0 commentaires · Sur GitHub
BenchmarksNVIDIA / CUDAModels & quantsWindows
Description
## Bug 1 — a dead engine PID blocks every load
After a load is interrupted (the app is closed during "Starting…", or the model is stopped), every later load fails at once:
lost host child is still present; retry after it exits
"Stop" and "Load" do not clear it; the engine never starts.
`strata_control/runtime.py`, `_recover_stale()` reads the marker `…\Local\Strata\runtime\app-1-<token>.child.json`, waits up to 45 s for its PID and refuses while that PID exists:
{"host_token": "…", "phase": "owned", "pid": 38552, "ready": "…ready.json"}
That PID was already gone — `tasklist /fi "pid eq 38552"` finds nothing — so the marker was simply stale. It has no `started` field, so the creation-time check that is meant to tell a reused PID from the original cannot help either.
Suggested fix: in `_recover_stale()`, reclaim instead of raising when `_pid_exists()` is false; write `started` into the marker and treat a marker without it as stale; clean stale markers and `native-instances` entries at host start so a crashed load cannot leave the profile unable to load.
## Bug 2 — the engine is declared corrupt although every file matches
Right after the state above was cleared, the app showed:
Strata did not recognise the engine for this computer…
The engine package failed its integrity check, so it was not started:
0.1.46 windows-x86_64-cuda: strata.exe does not match its recorded SHA-256
`/api/native` reported `engine.usable: false`, `version: null`. But the files are intact — every entry of `files[]` in `…\components\engine\0.1.46-windows-x86_64-cuda-cuda13\engine-component.json` matches sha256 and size, and so does the copy under `Programs\Strata\engine-bundle\…`:
strata.exe 223 406 080 c2335807a15bc5f4…2c22
BUILD.json 204 1c23400abc15db8d…97cff
strata-vision.exe 108 206 592 6d169e297164728a…8907b
strata_kq.dll 34 449 920 4eb789387ea1d692…882c
cublas64_13.dll 51 776 624 b5846446f2a151ca…ea61
cublasLt64_13.dll 478 140 016 680561bdc5d8a8c9…3ff1
`…\components\.updates\state.json` has an empty `engine` object, so no other expected hashes are stored. The engine log shows it actually started at 20:35:48 with the same arguments, and the next load succeeded (~47 tok/s at 11k prompt). Looks like the check ran against a file being unpacked or scanned, and the failure was then kept.
Suggested fix: verify against the manifest entry itself; if a file mismatches, print the expected and actual hash; retry the check once before refusing; do not cache the failure across restarts.
## Environment
Windows 10 19045, RTX 3090 24 GB, Strata 0.2.1, control 0.1.46.1, engine 0.1.46, qwen36-ud-q4_k_xl, context 262144, one GPU.
## Workaround that worked
Close the app, then (after a copy) remove `…\Local\Strata\runtime\app-1.json`, `app-1-*.child.json`, `app-1-*.ready.json` and the stale instance under `…\.strata\data\native-instances\`, delete non-finished entries from `…\.strata\data\native-jobs.json`, and start the app again. The next load passes; if the integrity notice appears once more, a second load starts the engine.
Sur le site
Liens install, modèles, releases.