From 2fd4afa9077763de243b2e1ca9609844c73360f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Sun, 23 Aug 2026 12:56:43 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20=D1=82=D0=B5=D1=81=D1=82=D1=8B=20=D1=80?= =?UTF-8?q?=D0=B5=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B9=20=D0=BE=D0=B1=D1=84?= =?UTF-8?q?=D1=83=D1=81=D0=BA=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B8=20=D1=84?= =?UTF-8?q?=D0=B8=D0=BA=D1=81=20.doc/liberta=20(v0.0.61,=20=D0=B1=D0=B5?= =?UTF-8?q?=D0=B7=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BB=D0=BB=D0=B5=D0=BB=D1=8C?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D0=B8,=202=C3=97100=20=D1=84=D0=B0?= =?UTF-8?q?=D0=B9=D0=BB=D0=BE=D0=B2=20=E2=80=94=200=20=D0=BE=D1=88=D0=B8?= =?UTF-8?q?=D0=B1=D0=BE=D0=BA=20=D0=BA=D0=BE=D0=BD=D0=B2=D0=B5=D1=80=D1=81?= =?UTF-8?q?=D0=B8=D0=B8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- History/2026-08-23-obfuscation-tests.md | 45 +++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 History/2026-08-23-obfuscation-tests.md diff --git a/History/2026-08-23-obfuscation-tests.md b/History/2026-08-23-obfuscation-tests.md new file mode 100644 index 0000000..293beba --- /dev/null +++ b/History/2026-08-23-obfuscation-tests.md @@ -0,0 +1,45 @@ +# drhider — тесты реальной обфускации и фикс .doc (2026-08-23, v0.0.60–0.0.61) + +_Кластер `naeel-test-3`, v0.0.60 → v0.0.61. Корпус: `/mnt/y/T` (flat+many, 309 файлов pdf/doc/docx)._ + +## Проблема: .doc не конвертируется (v0.0.60) +Симптом: `.doc`-файлы в ZIP с заглушкой +`[DOC — conversion failed: libreoffice: failed to launch javaldx - java may not function correctly]`. + +**Диагностика:** +- `.doc` конвертирует сервис **liberta** (`CONVERT_SERVICE_URL` дефолт + `https://liberta.containerk8s.dev.nubes.ru/convert`; в деплое не переопределён). +- liberta **жива** (200 на `/` и `/health`), последовательный `/convert` — 200 (~3с). +- **Под нагрузкой падает**: 5 параллельных `/convert` → 2-3 возвращают 500 `javaldx` + (JVM/libreoffice не тянет конкурентность). +- drhider конвертировал `.doc` **параллельно** (ThreadPoolExecutor max_workers=4 в `obfuscator.py`) + → бил liberta потоком → часть конверсий падала. + +## Фикс: v0.0.61 — параллельность убрана +- `obfuscator.py`: удалён ThreadPoolExecutor — `.doc` конвертируются **последовательно**. +- `scanner.py`: `_LLM_CONCURRENCY = 1` — LLM-чанки **последовательно**. +- Версия 0.0.60 → 0.0.61. + +## Результаты после фикса (v0.0.61) + +### Контрольный .doc (7 файлов) +Все конвертируются по 2.4–3.9с (реальное время), **javaldx-ошибок нет**. +Единственный FAIL — `mini_78b` (78 байт, битый файл) → «conversion produced no .docx» (не связано с параллельностью). + +### Полный набор (30 файлов) +upload=30, zip=25 (5 мини-PDF пустые), **convfail=1** (только mini_78b), mapping=86, +tokens=61983, llm=79.9с, proc=118.9с. Сравнение с v0.0.60 (было 7 convfail) — регрессий нет. + +### Долгий прогон (2×100 файлов) +| Сессия | upload | zip | convfail | mapping | tokens | llm | всего | +|---|---|---|---|---|---|---|---| +| SET1 | 100 | 99 | 0 | 430 | 700474 | 985с | 1142.5с | +| SET2 | 100 | 98 | 0 | 493 | 671170 | 841с | 972.1с | +| Итого | 200 | 197 | **0** | 923 | ~1.37 млн | ~1826с | ~35 мин | + +## Выводы +1. `.doc`/liberta починено: **0 ошибок конверсии на 200 файлах**. +2. Обфускация на объёме стабильна (923 замены, без регрессий). +3. Цена «без параллельности» (по требованию): LLM-этап медленнее + (100 файлов ≈ 16–19 мин; с параллельностью было бы ~4× быстрее). +4. Файлы вне ZIP (2–3 шт) — битые/пустые PDF (нет текста), не ошибка.