chore(rest): подтвердить устойчивость повторных параллельных чтений
This commit is contained in:
1 parent
3d51bba86d
commit
c88d31fa45
9 files changed
+4389
-11
No files matched your search
@@ -1,11 +1,21 @@
|
||||
# Оставшаяся внешняя приёмка — 2026-10-15
|
||||
|
||||
Актуальное продолжение 2026-10-15: 261 — оставшиеся12 default screens проверены; контраст recursive/ECMP исправлен, KPI BGP/GRE/VXLAN/OSPF используют штатную адаптивную сетку.64 unique live states261, вместе с260 —120 состояний30 экранов с явным происхождением;40 локальных E2E приняты. Runtime backend258/frontend261. Следующий262 — оформить десятиминутный REST-протокол, затем263 — итоговая UI-регрессия; этап12.5 открыт.
|
||||
Актуальное продолжение 2026-10-15: 262 — ten-minute REST soak после shared pool fix прошёл:21 волна×12 GET,252 запросов/504 device observations,200/errornull везде, новые receipts, native writes0. UI260/261 покрывает120 unique default states30 экранов. Runtime backend258/frontend261. Следующий263 — полная актуальная локальная UI-регрессия с изоляцией backend и сохранением screenshots; этап12.5 открыт.
|
||||
|
||||
Это актуальная матрица после 12.5.261. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
|
||||
Это актуальная матрица после 12.5.262. Исторические записи сохраняют версии и ограничения на момент выполнения; поздние проверки ниже уточняют их. Этап 12.5 открыт. Успех в двух CHR и одном backend не означает приёмку всех конфигураций, интеграций или полной регрессии.
|
||||
|
||||
Стенд: Debian13/Compose, PostgreSQL18.6, два CHR RouterOS7.24.5. Backend `ux-certificates258`, frontend `ux-accessibility261`; production lab с195 использует AUTH_REQUIRED=true и Portal1.3.1. Подписанные JWT/RBAC проверялись в изолированных процессах. Все собственные объекты112 удалены, исходные13 коллекций×2 (включая logging/certificates/files/routes) проверены; пароли не менялись.
|
||||
|
||||
## 12.5.262 — десятиминутная устойчивость REST после ограничения соединений (2026-10-15)
|
||||
|
||||
Реальный Portal UI login; JWT только в памяти процесса, не в отчёте/файле. Затем прямой localhost8000 SSH tunnel к backend258, endpoint GET /api/certificates/state:21 волна через30s,12 одновременно инициированных Node fetch запросов в каждой. Первый и последний запросы разделены полноценным окном600916ms. Frontend развёртывался/проверялся в части окна, обычные фоновые коллекторы работали; тест не зависел от frontend restart. [Полный протокол](ux-ui/acceptance/rest262-soak.json).
|
||||
|
||||
Все252 HTTP responses200;504 server observations по exact IDs1/2, errornull везде. Server collectedAt валидны и строго новее предыдущей волны: кэш старого receipt не засчитан. Median/p95/max request duration=821/1687/1933ms. Ошибок API/timeout/RouterOS login не обнаружено; автоматических повторов после неопределённого результата нет. Configuration/native writes0; только авторизация Portal и чтение. [Сводка](ux-ui/acceptance/rest262-summary.json).
|
||||
|
||||
Проверен один backend, два предоставленных CHR и конкретный HTTP REST путь. Live peak native sockets не измерялся: cap2 подтверждён профильным transport тестом257, здесь проверяется наблюдаемая стабильность под повторяющимися burst. Не заявляются global cap для hostname aliases/внешних WinBox/SSH/других backend, все прочие REST endpoints, максимальная пропускная способность или бессрочная устойчивость. Историческая причинность всех401/500/vendor version hypothesis этим окном не доказана.
|
||||
|
||||
Helper syntax/scoped ESLint passed; production код не менялся, Docker build/25 backend profiles не повторялись. Native объектов/настроек/DNS/файлов не создавали; rollback не нужен, пароли не менялись. Датированные документы и текущая матрица обновлены. Следующий263 — один полный локальный UI-набор после shared keyboard260 и responsive261, с недоступным proxy backend и восстановлением исходных screenshots; build/runtime остаются backend258/frontend261.
|
||||
|
||||
## 12.5.261 — оставшиеся экраны и читаемые сетевые KPI (2026-10-15)
|
||||
|
||||
Baseline12 разделов×2 темы×1440/320px:48 live states, API/JS errors0, overflow0, blocked configuration writes0. Четыре проверенных read-only POST OSPF preview разрешены явно после чтения backend handler; они рассчитывают план, не применяют его. DNS resolution/catalog read POST также имеют точный opt-in allowlist в helper, остальные non-GET блокируются. EvoBGP на стенде disabled, URL/key не настроены: каталоги здесь проверены в состоянии недоступной интеграции, не с реальными внешними данными. [Baseline](ux-ui/acceptance/ui261-baseline.json).
|
||||
@@ -362,7 +372,7 @@ Production backend/frontend ux-backups237 собраны и развёрнуты
|
||||
|
||||
| Группа | Подтверждено | Открытый объём / условие |
|
||||
| --- | --- | --- |
|
||||
| REST и достоверность данных | Нативные наблюдения236/238; ограничение shared REST pools257,12 параллельных чтений двух CHR и25 backend-профилей прошли | Длительное наблюдение после transport fix; историческая причинность всех401/500 и сравнение версий RouterOS полностью не доказаны |
|
||||
| REST и достоверность данных | Нативные наблюдения236/238; ограничение shared REST pools257,12 параллельных чтений двух CHR и25 backend-профилей прошли | После fix262 приняты21 burst/252 запроса за10min на одном endpoint; более длительные/иные endpoints, историческая причинность всех401/500 и сравнение версий отдельно |
|
||||
| Клиентские ОС и внешняя сеть | CHR↔CHR/Linux; Android StrongSwan full-tunnel и reconnect227 подтверждены пользователем | Windows/macOS/iOS и другие клиенты; независимые WAN/multi-WAN. Публичного IPv6 на предоставленном стенде нет — проверка требует другого подключения |
|
||||
| Масштаб и устойчивость | Контролируемые PG lock/dedupe/loss/recovery, отдельные multi-process сценарии194/200/201 | Несколько полноценных backend/worker со всеми writers, длительный rekey/traffic, физические потери WAN/DB и maximum throughput |
|
||||
| Хранилища и внешние jobs | Реальные Portal/Telegram195–201, Selectel S3/limited bridge restore/retention228–240, GeoIP mirror242; контейнеры248; production ACME250 и реальное renewal/rotation259 с trusted TLS/cleanup | Large native export/migration buckets/multi-instance S3; CA revocation отдельно не принят. Gitea publishing CI не запускался: действует no push. Direct licensed MaxMind отсутствует в текущей реализации |
|
||||
@@ -392,7 +402,7 @@ Portal offline JWT действует доexp после logout/role change; э
|
||||
|
||||
## Следующая последовательность — 2026-10-15
|
||||
|
||||
1. **REST262 и регрессия263:** оформить десятиминутную стабильность backend258; один полный локальный UI-набор после shared keyboard260/responsive261 с сохранением исходных screenshots и недоступным proxy backend, без native writes.
|
||||
1. **Регрессия263:** один полный локальный UI-набор после shared keyboard260/responsive261; сохранить/восстановить screenshots, proxy backend направить на недоступный local port, реальные устройства не использовать. REST262 завершён и принят в записанном scope.
|
||||
2. **Профильный контроль:** для новых изменений выполнять затронутые SQL/API/UI проверки. Общая регрессия192 выполнена; не повторять её без изменений общей основы или нового основания.
|
||||
3. **Внешние зависимости:** Portal issuer/login/revoke, Telegram bot/chat/разрешённое сообщение, клиентские ОС, независимые WAN/public IPv6 и scale/multi-instance — отдельные группы по таблице выше. Ограничения текущего стенда не превращать в обещание приёмки всех конфигураций.
|
||||
|
||||
|
||||
Reference in new issue
Block a user