fix(review): require graphics_limit>=1, type _index_document, cover rlimit branch
Address PR #852 round 2: - config: DOCUMENT_PDF_GRAPHICS_LIMIT validator is now gte=1 (pymupdf4llm treats 0 as "no cap", which would re-expose the OOM); documented the zero semantics and that the per-worker mem rlimit needs a pod restart to change. - processor: annotate `_index_document -> bool | None` and document the contract so the `if indexed is False` check is explicit/type-checkable. - tests: add the RLIM_INFINITY-hard branch assertion for _apply_mem_limit (soft==target, hard stays unbounded). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
7ec116a3c7
commit
6589e8e7fc
@@ -129,6 +129,24 @@ def test_apply_mem_limit_caps_soft_below_finite_hard(monkeypatch):
|
||||
assert hard == 4 * 1024**3
|
||||
|
||||
|
||||
def test_apply_mem_limit_uses_target_when_hard_unlimited(monkeypatch):
|
||||
captured = {}
|
||||
monkeypatch.setattr(_isolation, "_MEM_LIMIT_APPLIED", False)
|
||||
monkeypatch.setattr(
|
||||
_isolation.resource,
|
||||
"getrlimit",
|
||||
lambda _w: (resource.RLIM_INFINITY, resource.RLIM_INFINITY),
|
||||
)
|
||||
monkeypatch.setattr(
|
||||
_isolation.resource, "setrlimit", lambda _w, pair: captured.update(pair=pair)
|
||||
)
|
||||
# hard is unbounded -> soft is exactly the target, hard stays RLIM_INFINITY
|
||||
_isolation._apply_mem_limit(1536)
|
||||
soft, hard = captured["pair"]
|
||||
assert soft == 1536 * 1024 * 1024
|
||||
assert hard == resource.RLIM_INFINITY
|
||||
|
||||
|
||||
def test_apply_mem_limit_is_applied_once(monkeypatch):
|
||||
calls = []
|
||||
monkeypatch.setattr(_isolation, "_MEM_LIMIT_APPLIED", False)
|
||||
|
||||
Reference in New Issue
Block a user