aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorblasty <blasty@local>2026-07-09 11:45:45 +0200
committerblasty <blasty@local>2026-07-09 11:45:45 +0200
commit5bfcfa8f01d6f0e0d7535639eaa341fcce9fd9b8 (patch)
tree9794c017a5d1ba9f112ff1f37c40cff737836b0a /docs
parentstress paging on 10k-func binary; document scale constraints (diff)
downloadida-tui-5bfcfa8f01d6f0e0d7535639eaa341fcce9fd9b8.tar.gz
ida-tui-5bfcfa8f01d6f0e0d7535639eaa341fcce9fd9b8.tar.xz
ida-tui-5bfcfa8f01d6f0e0d7535639eaa341fcce9fd9b8.zip
domain/paging layer: FunctionIndex, block-cached DisasmModel, decompile, resolve
- Program: model registry + small prefetch pool; cache invalidation hooks - FunctionIndex: lazy pagination (advance by len, clamp page=500), filter globs, viewport windows; full 10,092-func enumerate matches survey in ~3.1s - DisasmModel: block-cached windowed disasm (256/block), forward+back prefetch, cached instruction totals; deep window revisit 196ms -> 0ms (cache proven) - Decompilation: truncation-aware, hard-failure surfaced as data (monster funcs) - resolve(): int/hex/symbol via lookup_funcs (string-array query shape) - tests/test_domain.py: 17/17 on both ls (~290 funcs) and libcrypto (10k+52k-insn) - smoke_client no longer assumes 'main' exists (works on libraries) - doc: idle_ttl worker self-exit finding ("not reachable" needs re-open)
Diffstat (limited to 'docs')
-rw-r--r--docs/PAGING_FINDINGS.md10
1 files changed, 10 insertions, 0 deletions
diff --git a/docs/PAGING_FINDINGS.md b/docs/PAGING_FINDINGS.md
index 1c7abff..33cb2e6 100644
--- a/docs/PAGING_FINDINGS.md
+++ b/docs/PAGING_FINDINGS.md
@@ -93,6 +93,16 @@ fall back to the disassembly view or show an error panel.
Normal decompile bodies are server-truncated with a `[N chars total]` marker
(still to be solved for full-body display — see Phase 2).
+## Workers self-exit when idle (`idle_ttl_sec`, default 600s)
+
+A headless idalib worker self-exits after ~10 min idle. Its session then lingers
+in `idb_list` but calls fail with `"Worker for session <id> is not reachable"`
+(distinct from `"Session not found"`). Recovery differs: this needs a fresh
+`idb_open` of the same `input_path` (new worker), not just a db re-resolve. The
+TUI should (a) raise `idle_ttl_sec` when opening, and/or (b) detect
+"not reachable" and transparently re-open. Currently surfaced as a clean
+`IDAToolError`; auto-reopen is a TODO for the app layer.
+
## Writable path requirement (operational)
`idb_open` writes the `.i64` next to the input binary, so the path must be