chore(test): проверить конфликты speed и блокировки PostgreSQL на стенде

This commit is contained in:
Denozordec committed 2026-10-08 09:19:43 +07:00
1 parent 9ccfc7f2b6
commit 01061b4406
6 files changed
+196 -5

No files matched your search

+5 -1
View File
@@ -1,6 +1,6 @@
# UX/UI: протокол внешней приёмки 12.5
Статус на2026-10-08: backend/frontend8782054, backend healthy. PG-1/2/3/4/5 приняты в описанных границах, PG-6 integrated для одного isolated instance, PG-7 real JWT/processcounts и browser restore passed. PG-8 real PG/native и browser unknown→history done приняты с fault injection после настоящего COMMIT. PortalSSO, физический TCP disconnect, мультиэкземпляры и остальные ROS/Q/интеграции остаются открытыми. [Паспорт](ux-ui-test-server.md), [журнал](ux-ui-progress.md).
Статус на2026-10-08: backend/frontend8782054, backend healthy. PG-1/2/3/4/5 приняты в описанных границах, PG-6 integrated для одного isolated instance, PG-7 real JWT/processcounts и browser restore passed. PG-8 real PG/native и browser unknown→history done приняты с fault injection после настоящего COMMIT. ROS-8/9 real API/SQL/native приняты в границах12.5.23; browser race открыт. PortalSSO, физический TCP disconnect, мультиэкземпляры и остальные ROS/Q/интеграции остаются открытыми. [Паспорт](ux-ui-test-server.md), [журнал](ux-ui-progress.md).
## Паспорт стенда
@@ -129,3 +129,7 @@ BGP-prefix evaluator, отдельное live GRE расписание и recove
## Real browser unknown и deployment — 2026-10-08
12.5.22: [real browser speed unknown](ux-ui/acceptance/browser-speed-unknown-2026-10-08.json) подтвердил snapshot42, видимый unknown/runId, reconciliation к SQL history done, снятие предупреждения, native1/POST1/JS0/320fits. HTTP/RouterOS-моков нет; COMMIT acknowledgement fault введён на node-pg boundary, физический network disconnect не проверен. [Оба образа8782054 развёрнуты](ux-ui/acceptance/deployed-8782054-2026-10-08.json), [пять экранов](ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json) прошли. Основная БД не восстанавливалась, контроль сохранён. Следующий12.5.23 — ROS-8/9: preflight/late-context changes на реальном PG/native. Полный12.5 открыт.
## Real speed context — 2026-10-08
12.5.23 [ROS-8/9 API/SQL/native evidence](ux-ui/acceptance/speed-context-2026-10-08.json): семь preflight409/bandwidth0, enable/reorder сохраняют fixture0; три TCPtransmit3s теста при late change/delete/row lock. Фактическая history done сохранена без stale probe association, новый snapshot null. Scheduler admission закрыт в isolated process до fixture setup; основной backend8782054healthy/история5 сохранены, testprobes0/containerудалён. Browser race и multi-instance открыты. Следующий12.5.24 — browser-смена контекста вторым клиентом.
+2 -2
View File
@@ -1,12 +1,12 @@
# План реализации UX/UI по пятичасовым окнам
Актуальное продолжение 2026-10-08: 12.5.22 завершён — backend и frontend source8782054 собраны и развёрнуты, backend healthy/version1.0.0-test.8782054. Real browser speed unknown→history done прошёл на выделенной БД без HTTP/RouterOS-моков; пять основных экранов проверены на ПК/320px. Следующий 12.5.23 — ROS-8/9: preflight конфликт и изменение параметров пробы во время native-теста в выделенной БД. Полный этап12.5 открыт.
Актуальное продолжение 2026-10-08: 12.5.23 завершён — ROS-8/9 проверены на реальном PG/native в выделенной БД: семь preflight409 без bandwidth-команды, zero/enable/reorder, поздняя смена и удаление пробы, два писателя под row lock. История фактического запуска сохранена без stale probe association; новый snapshot неизвестен. Runtime8782054 healthy. Следующий12.5.24 — browser-сценарий изменения speed-контекста вторым клиентом во время теста. Полный12.5 открыт.
Общий план проекта MikrotikManager. Основан на согласованном плане из задачи; точка продолжения обновлена 2026-10-08. Источник фактического прогресса, проверок и ограничений — [журнал реализации](ux-ui-progress.md). Этот документ задаёт объём и критерии завершения, журнал фиксирует результат.
## Актуальная точка продолжения — 2026-10-08
Этапы0–11 завершены в описанных локальных границах. Этап12 остаётся открытым. На161.104.46.222 развёрнуты backend/frontend8782054; два CHR подключены. PG backup/restore/rollback, single-instance quiescence, JWT/RBAC и browser restore приняты в границах журнала. PG-8 проверен с настоящими PG/native и введённой после COMMIT ошибкой подтверждения; новый browser UI сохраняет snapshot и сверяет историю. Следующий12.5.23 — ROS-8/9: конфликты и изменения speed-контекста. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) сохраняют точные доказательства и ограничения.
Этапы0–11 завершены в описанных локальных границах. Этап12 остаётся открытым. На161.104.46.222 развёрнуты backend/frontend8782054; два CHR подключены. PG backup/restore/rollback, single-instance quiescence, JWT/RBAC и browser restore приняты в границах журнала. PG-8 проверен с настоящими PG/native и введённой после COMMIT ошибкой подтверждения; новый browser UI сохраняет snapshot и сверяет историю. ROS-8/9 API/SQL/native приняты в описанных границах. Следующий12.5.24 — browser-смена контекста вторым клиентом во время native-теста. [Протокол](ux-ui-external-acceptance.md) и [журнал](ux-ui-stage-12.md) сохраняют точные доказательства и ограничения.
Реальные pg_dump/pg_restore, PG rollback и остановка UDP worker требуют внешней приёмки. Датированные продолжения ниже — история; точный следующий шаг также указан в начале [журнала](ux-ui-progress.md).
+15 -1
View File
@@ -1,6 +1,6 @@
# UX/UI: журнал реализации
Актуальное продолжение 2026-10-08: 12.5.22 завершён — backend и frontend source8782054 собраны и развёрнуты, backend healthy/version1.0.0-test.8782054. Real browser speed unknown→history done прошёл на выделенной БД без HTTP/RouterOS-моков; пять основных экранов проверены на ПК/320px. Следующий 12.5.23 — ROS-8/9: preflight конфликт и изменение параметров пробы во время native-теста в выделенной БД. Полный этап12.5 открыт.
Актуальное продолжение 2026-10-08: 12.5.23 завершён — ROS-8/9 проверены на реальном PG/native в выделенной БД: семь preflight409 без bandwidth-команды, zero/enable/reorder, поздняя смена и удаление пробы, два писателя под row lock. История фактического запуска сохранена без stale probe association; новый snapshot неизвестен. Runtime8782054 healthy. Следующий12.5.24 — browser-сценарий изменения speed-контекста вторым клиентом во время теста. Полный12.5 открыт.
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
@@ -34,6 +34,20 @@
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в описанных границах:12.3.83,main1186/1186,context221/221. Этап остаётся в работе: стенд12.5.1–3 развёрнут,bootstrap/smoke проверены;остальные сценарии12.5 не выполнены. |
## 12.5.23 — реальный конфликт speed-контекста и конкурентные записи (2026-10-08)
[Evidence ROS-8/9](ux-ui/acceptance/speed-context-2026-10-08.json): актуальный backend image/source8782054, PostgreSQL18.6/mmapp_acceptance_20261007, реальные HTTP PUT/POST и CHR1→CHR2. HTTP/RouterOS ответы не подменялись; wrapper только считал bandwidth-команды и отмечал их начало/окончание. Перед fixture setup проверены имя выделенной БД и отсутствие проб.
Семь preflight конфликтов: смена пары, srcInterface, dstInterface, протокола, направления, длительности и удалённая до запуска проба. Каждый POST409, bandwidthCalls0; существующий snapshot не изменён. История содержит error для отклонённого запроса с probeIdnull, без привязки к новому контексту. PUT enable/reorder сохранил lastStatusdone и измеренный0; нулевой baseline был явно подготовлен как DB fixture, не выдан за результат RouterOS.
Три реальных коротких TCP transmit3s команды (по одной на case): объединённая смена пары/интерфейсов/протокола/направления/длительности; удаление пробы; конкуренция записи конфигурации и результата при внешнем SELECT FOR UPDATE. В первых двух изменение конфигурации через HTTP завершилось до получения native response. В третьем отдельный observer увидел двух writers с wait_event_type Lock до освобождения строки. Все POST200; одна history done с фактическими src1/dst2/TCP/transmit3 и probeIdnull. Новый snapshot остался lastStatus/lastTx/lastRunAtnull, удалённая проба не создана заново. TX2815.169992/2841.242408/3247.053056, RXnull — функциональные результаты, не benchmark.
Первый пробный прогон обнаружил помеху harness: PUT refreshScheduler запускает немедленный speed job, который изменил fixture snapshot. В принятой матрице production scheduler admission закрыт до fixture setup только внутри isolated test process; таймеры не подменялись, основной scheduler не трогали. Этот подготовительный прогон не объявлен passed. Длинный terminal input отклонён инструментом; сценарий передан отдельным файлом, без изменения разрешений.
После принятой матрицы удалены временные пробы, count0; контейнер завершён и удалён --rm, locks освобождены, scheduler/listener/background/pool штатно закрыты. Исторические результаты остались только в выделенной БД. Основной backend8782054healthy/version1.0.0-test.8782054 и пять записей основной speed-истории сохранены. Продуктовый код не менялся; повторная сборка не требовалась.
ROS-8/9 приняты в перечисленных API/SQL/native границах: отдельные поля проверены preflight, поздняя смена объединяет параметры, row lock — один backend. Browser race, каждый поздний параметр по отдельности и multi-instance не проверены. Следующий12.5.24 — browser-сценарий смены speed-контекста вторым клиентом во время теста. Полный12.5 открыт; план/паспорт/протокол обновлены, локальный коммит без push.
## 12.5.22 — новые Docker-образы и real browser speed unknown (2026-10-08)
Из зафиксированного source8782054078304f36cc611876af2d17f87b857f60 подготовлены отдельные frontend/backend contexts и последовательно собраны production-образы на Debian-стенде. Frontend production build и проверка TypeScript внутри Docker прошли; backend contracts/TypeScript build прошёл. Незакоммиченные изменения, .env, ключи и локальные node_modules в сборку не передавались. Образы не публиковались.
+15 -1
View File
@@ -1,6 +1,6 @@
# Этап 12: итоговая приёмка UX/UI
Актуальное продолжение 2026-10-08: 12.5.22 завершён — backend и frontend source8782054 собраны и развёрнуты, backend healthy/version1.0.0-test.8782054. Real browser speed unknown→history done прошёл на выделенной БД без HTTP/RouterOS-моков; пять основных экранов проверены на ПК/320px. Следующий 12.5.23 — ROS-8/9: preflight конфликт и изменение параметров пробы во время native-теста в выделенной БД. Полный этап12.5 открыт.
Актуальное продолжение 2026-10-08: 12.5.23 завершён — ROS-8/9 проверены на реальном PG/native в выделенной БД: семь preflight409 без bandwidth-команды, zero/enable/reorder, поздняя смена и удаление пробы, два писателя под row lock. История фактического запуска сохранена без stale probe association; новый snapshot неизвестен. Runtime8782054 healthy. Следующий12.5.24 — browser-сценарий изменения speed-контекста вторым клиентом во время теста. Полный12.5 открыт.
План: [ux-ui-plan.md](ux-ui-plan.md). Фактические результаты: [ux-ui-progress.md](ux-ui-progress.md). Подготовлен после сводных проверок 11Б; завершение каждого блока требует локального коммита без push.
@@ -1182,3 +1182,17 @@ SchedulerSnapshotError раньшеигнорировалruns[].okfalse уuptime
[После развёртывания](ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json) dashboard/servers/uptime-speed/settings/filters200, ПК и320px,0JSerrors/0API>=400, HTTP-моков нет. Первая попытка чтения локального URL отказала из-за завершившегося прежнего SSH-туннеля; туннель3000/8000 восстановлен, повторная проверка прошла. Временные frontend/backend/network/3018-tunnel удалены; тестовая probe acceptance-browser-speed удалена, исторический результат остался только в выделенной БД. Основной туннель и тестовый сервер оставлены для продолжения.
PG-8 browser unknown/reconciliation принят в этих границах. PortalSSO, физический TCP fault, мультиэкземпляры и остальные ROS/Q/интеграции остаются открытыми. Следующий 12.5.23 — ROS-8/9: preflight409 и конкурентное изменение контекста speed-пробы на реальном PG/native. План, паспорт и протокол обновлены. Локальный коммит без push.
## 12.5.23 — реальный конфликт speed-контекста и конкурентные записи (2026-10-08)
[Evidence ROS-8/9](ux-ui/acceptance/speed-context-2026-10-08.json): актуальный backend image/source8782054, PostgreSQL18.6/mmapp_acceptance_20261007, реальные HTTP PUT/POST и CHR1→CHR2. HTTP/RouterOS ответы не подменялись; wrapper только считал bandwidth-команды и отмечал их начало/окончание. Перед fixture setup проверены имя выделенной БД и отсутствие проб.
Семь preflight конфликтов: смена пары, srcInterface, dstInterface, протокола, направления, длительности и удалённая до запуска проба. Каждый POST409, bandwidthCalls0; существующий snapshot не изменён. История содержит error для отклонённого запроса с probeIdnull, без привязки к новому контексту. PUT enable/reorder сохранил lastStatusdone и измеренный0; нулевой baseline был явно подготовлен как DB fixture, не выдан за результат RouterOS.
Три реальных коротких TCP transmit3s команды (по одной на case): объединённая смена пары/интерфейсов/протокола/направления/длительности; удаление пробы; конкуренция записи конфигурации и результата при внешнем SELECT FOR UPDATE. В первых двух изменение конфигурации через HTTP завершилось до получения native response. В третьем отдельный observer увидел двух writers с wait_event_type Lock до освобождения строки. Все POST200; одна history done с фактическими src1/dst2/TCP/transmit3 и probeIdnull. Новый snapshot остался lastStatus/lastTx/lastRunAtnull, удалённая проба не создана заново. TX2815.169992/2841.242408/3247.053056, RXnull — функциональные результаты, не benchmark.
Первый пробный прогон обнаружил помеху harness: PUT refreshScheduler запускает немедленный speed job, который изменил fixture snapshot. В принятой матрице production scheduler admission закрыт до fixture setup только внутри isolated test process; таймеры не подменялись, основной scheduler не трогали. Этот подготовительный прогон не объявлен passed. Длинный terminal input отклонён инструментом; сценарий передан отдельным файлом, без изменения разрешений.
После принятой матрицы удалены временные пробы, count0; контейнер завершён и удалён --rm, locks освобождены, scheduler/listener/background/pool штатно закрыты. Исторические результаты остались только в выделенной БД. Основной backend8782054healthy/version1.0.0-test.8782054 и пять записей основной speed-истории сохранены. Продуктовый код не менялся; повторная сборка не требовалась.
ROS-8/9 приняты в перечисленных API/SQL/native границах: отдельные поля проверены preflight, поздняя смена объединяет параметры, row lock — один backend. Browser race, каждый поздний параметр по отдельности и multi-instance не проверены. Следующий12.5.24 — browser-сценарий смены speed-контекста вторым клиентом во время теста. Полный12.5 открыт; план/паспорт/протокол обновлены, локальный коммит без push.
+4
View File
@@ -137,3 +137,7 @@ ssh -N -L 3000:127.0.0.1:3000 -L 8000:127.0.0.1:8000 root@161.104.46.222
## Обновление обоих образов — 2026-10-08
12.5.22: [deployment](ux-ui/acceptance/deployed-8782054-2026-10-08.json), [real browser speed unknown](ux-ui/acceptance/browser-speed-unknown-2026-10-08.json), [пять экранов](ux-ui/acceptance/deploy-browser-8782054-2026-10-08.json). Backend/frontend8782054, backend healthy. MMAPP_IMAGE_TAG и BACKEND_IMAGE_TAG равны ux-8782054. Приватный pre-update backup и конфигурация сохранены только на сервере; основная БД не восстанавливалась, контроль совпал. Temporarycontainers/network/3018 закрыты; основной SSH-туннель3000/8000 восстановлен. AUTHfalse/loopback ports сохранены. Следующий12.5.23 — ROS-8/9 на выделенной БД.
## Real speed context — 2026-10-08
12.5.23 [ROS-8/9 API/SQL/native evidence](ux-ui/acceptance/speed-context-2026-10-08.json): семь preflight409/bandwidth0, enable/reorder сохраняют fixture0; три TCPtransmit3s теста при late change/delete/row lock. Фактическая history done сохранена без stale probe association, новый snapshot null. Scheduler admission закрыт в isolated process до fixture setup; основной backend8782054healthy/история5 сохранены, testprobes0/containerудалён. Browser race и multi-instance открыты. Следующий12.5.24 — browser-смена контекста вторым клиентом.
@@ -0,0 +1,155 @@
{
"date": "2026-10-08",
"source": "8782054078304f36cc611876af2d17f87b857f60",
"database": "mmapp_acceptance_20261007",
"httpMocks": false,
"routerOsMocks": false,
"preflight": [
{
"case": "pair",
"status": 409,
"nativeCalls": 0,
"snapshotUnchanged": true,
"historyStatus": "error",
"probeAssociation": null
},
{
"case": "src-interface",
"status": 409,
"nativeCalls": 0,
"snapshotUnchanged": true,
"historyStatus": "error",
"probeAssociation": null
},
{
"case": "dst-interface",
"status": 409,
"nativeCalls": 0,
"snapshotUnchanged": true,
"historyStatus": "error",
"probeAssociation": null
},
{
"case": "protocol",
"status": 409,
"nativeCalls": 0,
"snapshotUnchanged": true,
"historyStatus": "error",
"probeAssociation": null
},
{
"case": "direction",
"status": 409,
"nativeCalls": 0,
"snapshotUnchanged": true,
"historyStatus": "error",
"probeAssociation": null
},
{
"case": "duration",
"status": 409,
"nativeCalls": 0,
"snapshotUnchanged": true,
"historyStatus": "error",
"probeAssociation": null
},
{
"case": "deleted-before-command",
"status": 409,
"nativeCalls": 0,
"probeAbsent": true,
"historyStatus": "error",
"probeAssociation": null
}
],
"cases": [
{
"case": "enable-reorder",
"measuredZeroPreserved": true,
"nativeCalls": 0
},
{
"case": "change",
"status": 200,
"nativeCalls": 1,
"mutationBeforeNativeResponse": true,
"rowLocksObserved": false,
"newSnapshotUnchanged": true,
"history": {
"id": "acceptance-live-change-1791425767822",
"probe_id": null,
"src_server_id": 1,
"dst_server_id": 2,
"src_interface": "",
"dst_interface": "",
"protocol": "tcp",
"direction": "transmit",
"duration_sec": 3,
"status": "done",
"tx_avg_mbps": 2815.169992,
"rx_avg_mbps": null
}
},
{
"case": "delete",
"status": 200,
"nativeCalls": 1,
"mutationBeforeNativeResponse": true,
"rowLocksObserved": false,
"newSnapshotUnchanged": true,
"history": {
"id": "acceptance-live-delete-1791425777959",
"probe_id": null,
"src_server_id": 1,
"dst_server_id": 2,
"src_interface": "",
"dst_interface": "",
"protocol": "tcp",
"direction": "transmit",
"duration_sec": 3,
"status": "done",
"tx_avg_mbps": 2841.242408,
"rx_avg_mbps": null
}
},
{
"case": "row-lock",
"status": 200,
"nativeCalls": 1,
"mutationBeforeNativeResponse": null,
"rowLocksObserved": true,
"newSnapshotUnchanged": true,
"history": {
"id": "acceptance-live-row-lock-1791425788084",
"probe_id": null,
"src_server_id": 1,
"dst_server_id": 2,
"src_interface": "",
"dst_interface": "",
"protocol": "tcp",
"direction": "transmit",
"duration_sec": 3,
"status": "done",
"tx_avg_mbps": 3247.0530559999997,
"rx_avg_mbps": null
}
}
],
"nativeCalls": 3,
"limits": [
"Three short real TCP transmit3s commands; not throughput benchmark",
"Preflight individual fields; late change combines pair/interfaces/protocol/direction/duration",
"Externally held row released after observing two blocked writers; single backend process",
"Zero baseline seeded as a database fixture; native results not fabricated",
"Scheduler admission paused before fixture setup to prevent refresh-triggered native jobs",
"No browser context-race or multi-instance acceptance"
],
"cleanup": {
"testProbesRemaining": 0,
"temporaryContainerRemoved": true,
"mainHistoryCountUnchanged": 5,
"mainBackendVersion": "1.0.0-test.8782054",
"mainBackendHealth": "healthy"
},
"exploration": "Initial fixture run failed because PUT refresh started a scheduler speed job and changed baseline. Production scheduler admission was paused in isolated process before setup for accepted matrix."
}