fix(api): сохранить неизвестный исход записи speed без ложной ошибки

This commit is contained in:
Denozordec committed 2026-10-08 00:21:31 +07:00
1 parent c337fddac9
commit f408afba20
12 files changed
+220 -51

No files matched your search

+13 -1
View File
@@ -1,6 +1,6 @@
# UX/UI: журнал реализации
Актуальное продолжение 2026-10-08:12.5.18 завершён — PG-7 realJWT401/403/нулевыеchildprocesses,adminbackup200; realbrowserrestore200/архивныйконтроль и400/файлсохранён/unknownguard/reload/явныйreset passed наотдельнойБД. Backend4c12c55/frontend673e5ba сохраняются,основнаяБДнеизменена. Следующий12.5.19 — PG-8 commit acknowledgement/speed persistence иоставшиесяnative/integration сценарии;12.5 открыта.
Актуальное продолжение 2026-10-08:12.5.19 завершён — realPG/nativeTCP подтвердилиINSERTrollback иclient-sideackloss послеCOMMIT; APIunknown/runId безложногofailurewrite/повтора. Schedulerreceipt исправлен: unknownpersistence неложныйok.18scheduler/16persistence/HTTP-RBAC/build passed. Основнойbackend4c12c55 сохраняется,patchнеразвёрнут. Следующий12.5.20 — deploymentpatch/browserunknown-speed иоставшиесяROS/Q/интеграции.
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
@@ -34,6 +34,18 @@
| 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.19 — speed persistence, ошибка INSERT и потерянное подтверждение commit (2026-10-08)
Выявленриск: общийcatch native run послеошибкиpersist запускалrecordSpeedTestFailure, хотяbandwidth-test ужезавершён. Послеcommitackloss это моглоподменитьsnapshot/log ложнымerror (особенноеслиrunId не былпередан). ДобавленSpeedRunPersistenceUnknown(actualrunId,cause) тольконаграничепубликацииуспешногоnativeрезультата. Routeвозвращает502/outcomeunknown/runId/просьбупроверитьисторию; failurewriterне вызывается. Плановыйrun тоже не записываетложныйfailedresult. Исходныйdrivercause сохранёнвError,публичныйreceipt не раскрываетSQL/credentials.
SchedulerSnapshotError раньшеигнорировалruns[].okfalse уuptime_speed, поэтому реальныйплановыйackloss помечалсяjobok. Теперьошибкиисполненияspeedrun попадаютвreceipt.statuserror/ограничение,безпереименованиядействительногосохранённогорезультатасетевоготеставerror. Корректные observedoffline/down ресурсы/ping по-прежнемунесчитаютсяисключениемоперации.
[ОчищеннаяrealPG-8 матрица](ux-ui/acceptance/pg8-speed-2026-10-08.json): image4c12c55 плюсcompiledworktreepatch, mmapp_acceptance_20261007, настоящиеCHR1→CHR2 TCPtransmit3s/afterping,RouterOSответынеподменены. SQLBEFOREINSERTtrigger отказалhistory:HTTP502unknown/actualrunId,baseline snapshot42 сохранился,history0,ровно1nativecall. Дляackloss node-pg boundary действительноисполнялCOMMIT,затемотклонялclientpromise:HTTP502unknown,независимыйPGread показал1historydone иsnapshotdone ссовпадающимTX1929.132904Mbps/RXnull. Плановыйackloss: HTTP200/okfalse receipt,1nativecall,историяdone/TX1729.056592/RXnull,snapshotнепереписанвerror. Этоинъекцияclientackfault послереальногосervercommit,нефизическийобрывTCP; универсальныйrollback длялюбогосетевогоотказанеутверждается.
Матрицапотребоваладиагностикиharness: первыйwrapperнеподдерживалPool.connectcallback иупалдонативныхтестов; перваяполнаяnativeматрицавыявилаschedulerok дефект; rerunполучил500 приcallback instrumentation. Добавленыcallbackbypass/BEGINreset,разовыеmanualrunIDs иdiagnosticerrorhandler; окончательнаяматрицапрошла,проверяемые502обработаныproductionroute,неdiagnostic handler. Выполнялисьручныеповторыпослеисправленияharness/classifier; это неавтоповторвнутриоперации. ФинальныеcompiledJSиpatchSHA совпалислокальными. Temporaryprobe/trigger/function удалены,count0; historicaltest runs сохраненывпроверочнойБД,probeassociationпослеcleanupFK=null. Temporarycontainer--rm/consumers/pool остановлены,mainhealth4c12c55ok/БДнеизменена,RouterOSconfigurationне менялась.
Локально18scheduler tests (включаяновыйunknownspeedreceipt),16speedpersistence tests,HTTPcommand/RBAC/unknownrunId-no-failure-write test иcontracts/backend build прошли; diff-check passed. Старыйосновнойruntime4c12c55 ещёбезэтогопatch. BrowserunknowncommitUX/физическийnetworkloss/deploymentpatch иостальной12.5 открыты. Остатокпятичасовоголимитапоследнейпроверки9%;новыйкрупныйблокненачат. Следующий12.5.20 — собрать/deploypatch иbrowserunknown-speed,затемROS/Q/integrationпротокол. Локальныйкоммитбезpush.
## 12.5.18 — реальные права backup/restore и сценарии восстановления в браузере (2026-10-08)
Блокначат7октября,завершён8октября поAsia/Novosibirsk; отчётыдатированыподатеокончания. [PG-7 evidence](ux-ui/acceptance/rbac-4c12c55-2026-10-08.json): temporarycontainerсреальнымimageux-4c12c55, AUTH_REQUIRED=true,mmapp_acceptance_20261007. JWTтестовогоissuerсозданытольковпамяти, безPortalSSO. 16GETbackup/POSTrestore:anonymous/wrongissuer/expired/invalidsignature401;settingsreader/writer/trafficadmin/missingapp403. Instrumentation productionchild_process.spawn (безподменывыполнениякоманд) подтвердилаpg_dump0/pg_restore0/psql0длявсехотказов; контрольныеservers/retention/sequence/speed послеотказовсовпали. Adminmm:settings:adminbackup200/478183bytes/PGDMP запустилровноодиннастоящийpg_dump. ЭтоусиливаетпрежниеHTTP-onlyPG-7 проверкинаблюдениемпроцессов.