From d5b3ed3f68f58f200239ccecdcdc966176de2901 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Mon, 24 Aug 2026 16:38:32 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20=D1=82=D0=B5=D1=81=D1=82=D1=8B=20v0.0.6?= =?UTF-8?q?7=20(=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=B0/=D0=BB?= =?UTF-8?q?=D0=B8=D0=BC=D0=B8=D1=82=D1=8B/ZIP-=D0=BA=D0=B8=D1=80=D0=B8?= =?UTF-8?q?=D0=BB=D0=BB=D0=B8=D1=86=D0=B0/ETA/=D0=BF=D1=80=D0=B5=D1=80?= =?UTF-8?q?=D1=8B=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5)=20+=20=D1=80=D0=B0=D0=B7?= =?UTF-8?q?=D0=B1=D0=BE=D1=80=20=D0=B4=D0=B2=D1=83=D1=85=D0=BA=D0=BB=D0=B0?= =?UTF-8?q?=D1=81=D1=82=D0=B5=D1=80=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=B4=D0=B5?= =?UTF-8?q?=D0=BF=D0=BB=D0=BE=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- History/README.md | 2 ++ .../infra/2026-08-24-two-clusters-deploy.md | 27 +++++++++++++++++ History/tests/2026-08-24-test-batch-v067.md | 30 +++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 History/infra/2026-08-24-two-clusters-deploy.md create mode 100644 History/tests/2026-08-24-test-batch-v067.md diff --git a/History/README.md b/History/README.md index 20726b4..2b1dfa3 100644 --- a/History/README.md +++ b/History/README.md @@ -89,6 +89,7 @@ - **2026-08-21-pattern-vm-buffer-pull-plan.md** — план: перенос паттерна «ВМ-буфер + pull» в drhider. - **2026-08-21-vm-files-api-plan.md** — план: универсальный файловый сервис на ВМ (API). - **2026-08-21-vm-upload-implemented.md** — v0.0.58: ВМ-загрузка реализована (паттерн «ВМ-буфер + pull»). +- **2026-08-24-two-clusters-deploy.md** — деплой на двух кластерах: iot-naeel (актуальный, DNS → .151) и naeel-test-3 (не погашен). ## ux-frontend/ — фичи фронтенда @@ -128,6 +129,7 @@ - **2026-08-19-ui-5runs-benchmark.md** — v0.0.49: бенчмарк UI, 5 прогонов DownLoads.zip (18 файлов, замеры времени). - **2026-08-23-obfuscation-tests.md** — тесты реальной обфускации и фикс .doc (v0.0.60–0.0.61, корпус /mnt/y/T). - **2026-08-24-tests-upload-and-obfuscation.md** — тесты загрузки и обфускации (v0.0.62, лимиты, ВМ-буфер). +- **2026-08-24-test-batch-v067.md** — тесты v0.0.67: загрузка, лимит 50МБ, ZIP-кириллица, ETA, прерывание с частичным сохранением. --- diff --git a/History/infra/2026-08-24-two-clusters-deploy.md b/History/infra/2026-08-24-two-clusters-deploy.md new file mode 100644 index 0000000..15dccc1 --- /dev/null +++ b/History/infra/2026-08-24-two-clusters-deploy.md @@ -0,0 +1,27 @@ +# Деплой: два кластера, iot-naeel актуальный, naeel-test-3 — не погашен (2026-08-24) + +## Симптом +- health/HTML внешнего URL отдавали **0.0.67**, а под в ns 20a75175 на naeel-test-3 был **0.0.61** + (внутренний health 0.0.61, нет MAX_FILE_BYTES/cancel/ETA/UI). +- Часть запросов (upload_refs) попадала на старый под → тесты вели себя непредсказуемо + (60МБ «принимался»). + +## Причина (подтверждена kubeconfig'ами обоих кластеров) +- drhider развёрнут на **двух кластерах** в одном namespace-ID `20a75175-...`: + - **iot-naeel**: под `pythonk8s-cf686f894-96l7m` (возраст ~42м — свежий редеплой), **v0.0.67**; + ingress `drhider.pythonk8s.dev.nubes.ru` → **185.247.187.151**. + - **naeel-test-3**: под `pythonk8s-797ddd69df-dmdg6` — **старый, не погашенный** (был 0.0.61); + ingress → 185.247.187.147. +- **DNS `drhider.pythonk8s.dev.nubes.ru` → 185.247.187.151 = iot-naeel** → внешний URL обслуживает + iot-naeel (0.0.67). naeel-test-3 в DNS не участвует, но остаётся живым инстансом. + +## Что сделано +- kubeconfig'и на ВМ обновлены на оба кластера (`~/.kube/config` iot-naeel, `~/.kube/config-naeel-test-3`). +- Проверены оба пода: и iot-naeel, и naeel-test-3 теперь **v0.0.67** (naeel-test-3 обновлён + пересозданием пода — `scale 0 → 1` заставил git-clone master@0.0.67). +- Внешний бэкенд — iot-naeel (0.0.67), все тесты прогнаны на нём (см. tests/2026-08-24-test-batch-v067.md). + +## Осталось (рекомендация) +- В Штурвале **погасить/удалить инстанс drhider на naeel-test-3** (ns 20a75175) — он не нужен, + DNS ведёт на iot-naeel. Оставить один актуальный (iot-naeel, 0.0.67). +- Проверить прочие `pythonk8s` на iot-naeel (contractor/loadtest/polygon/atest) — это другие приложения, не drhider. diff --git a/History/tests/2026-08-24-test-batch-v067.md b/History/tests/2026-08-24-test-batch-v067.md new file mode 100644 index 0000000..c5c3615 --- /dev/null +++ b/History/tests/2026-08-24-test-batch-v067.md @@ -0,0 +1,30 @@ +# Тесты v0.0.67: загрузка, лимиты, ZIP-кириллица, ETA, прерывание (2026-08-24) + +_Фон: найден и разобран неконсистентный деплой (см. infra/2026-08-24-two-clusters-deploy.md). +Все тесты — на реальном внешнем бэкенде **iot-naeel (185.247.187.151), под v0.0.67**._ + +## 1. Загрузка: много + больших ✅ +- 119 файлов / **480.5 МБ** (8×45МБ + 10×10МБ + 100×200КБ). +- PUT (P=8) 44.8с, `upload_refs` 51.9с, сессия: 119 файлов, 480.5МБ, 0 ошибок. + +## 2. Лимит 50 МБ/файл ✅ +- big60 (60МБ) + small1 (1МБ) → `upload_refs` `{count:1}`; в сессии только `small1.bin`; big60 удалён с ВМ. +- Раньше (старый под 0.0.61 в балансировке) big60 принимался — после чистки работает. + +## 3. ZIP: кириллица без UTF-8-флага (v0.0.67) ✅ +- ZIP с `TKM_6й_Семестр_ЭКЗАМЕН.docx`, `Договор_ООО_Ромашка.pdf` (UTF-8, флаг сброшен) → в браузере имена декодированы **верно** (было `╨╣…`-мусор). Оценки времени видны. + +## 4. Обфускация 20 файлов: ETA и SSE-события ✅ +- 21 файл (вкл. plan.txt): SSE 255с, `complete {total:21, tokens:104128, llm_sec:254.0}`. +- События: `start=21, extract_done=1, file_start=21, file_chunk=21, file_done=21, done=21, complete=1`. +- `llm`-heartbeat с `eta_sec`: 230 примеров, убывает 237→0 (адаптивная ETA работает). +- ZIP: 21 файл (29.4КБ), CSV: 295 строк. + +## 5. Прерывание с частичным сохранением ✅ +- 22 файла, через 25с `POST /api/cancel/` → `{"ok":true}`. +- SSE `cancelled: {saved:3, total:22, tokens:11640, llm_sec:30.2}`. +- **Частичный ZIP: 3 файла (4.4КБ), частичный CSV: 188 строк** — скачаны (HTTP 200). + +## Вывод +На консистентном v0.0.67 все новые фичи работают: лимиты, декодирование имён ZIP, +ETA (global+per-file в SSE), прерывание с частичным результатом. Регрессий нет.