fix(traffic): останавливать сбор при потере соединения блокировки

This commit is contained in:
Denozordec committed 2026-10-13 16:20:46 +07:00
1 parent 46de87e213
commit cbe44e8072
16 files changed
+1340 -18

No files matched your search

File diff suppressed because it is too large. Load diff
@@ -0,0 +1,26 @@
{
"date": "2026-10-13",
"block": "12.5.200",
"database": "mm_accept_166_1791882888802",
"baseline": true,
"cases": [
{
"name": "process crash releases advisory lock",
"signal": "SIGKILL",
"crashedWaveRows": 0,
"recoveryWaveRows": 1
},
{
"name": "lock connection loss baseline",
"unhandledClientError": true,
"nonzeroChildExit": true
},
{
"name": "next process recovers after connection loss",
"waveRows": 2
}
],
"passed": true,
"scope": "Production compiled collector, independent Linux child processes, owned restricted PostgreSQL and local RouterOS HTTP fixture; no production PID/native CHR touched",
"interfaceRequests": 4
}
@@ -0,0 +1,28 @@
{
"date": "2026-10-13",
"block": "12.5.200",
"database": "mm_accept_166_1791882999162",
"baseline": false,
"cases": [
{
"name": "process crash releases advisory lock",
"signal": "SIGKILL",
"crashedWaveRows": 0,
"recoveryWaveRows": 1
},
{
"name": "lock connection loss",
"collectorProcessSurvived": true,
"fatalSnapshot": true,
"staleSampleRows": 0,
"staleSettingsWrite": false
},
{
"name": "next process recovers after connection loss",
"waveRows": 2
}
],
"passed": true,
"scope": "Production compiled collector, independent Linux child processes, owned restricted PostgreSQL and local RouterOS HTTP fixture; no production PID/native CHR touched",
"interfaceRequests": 4
}
@@ -0,0 +1,17 @@
{
"date": "2026-10-13",
"block": "12.5.200",
"sourceFilesMatched": 468,
"compiledFilesMatched": 1044,
"backendImage": "mmapp-test/backend:ux-lock200",
"imageId": "sha256:5bebf46bb5bb6844565529b9c7e125e4a41b1bd5529de089465e8df47d4fcd9a6",
"frontendImage": "mmapp-test/frontend:ux-portal199",
"healthy": true,
"ownDatabasesRolesContainersRemoved": 3,
"productionProcessesKilled": 0,
"chrChanges": 0,
"limits": [
"Guards react after pg error/end is observed; no atomic fencing of writes across separate pooled connections",
"Already issued native HTTP request cannot be unsent; delayed TCP failure detection and true network partition not tested"
]
}
@@ -0,0 +1,22 @@
{
"date": "2026-10-13",
"block": "12.5.200",
"database": "mm_accept_166_1791883011630",
"scope": "ephemeral role and precreated owned database; no copied production credentials",
"tests": [
{
"command": "npm --prefix backend run test:traffic-rate",
"passed": true,
"durationMs": 57603,
"ownedTrafficSqlCases": 9,
"ownedHistorySqlCases": 14,
"ownedLiveSqlCases": 10,
"ownedVolumeSqlCases": 17,
"ownedStatusSqlCases": 21,
"ownedConcurrencySqlSequencePassed": true,
"postgresUnavailableSkip": false
}
],
"scopedRoleVerified": true,
"passed": true
}
@@ -0,0 +1,46 @@
{
"date": "2026-10-13",
"block": "12.5.200",
"runtime": {
"backend": "ux-lock200",
"frontend": "ux-portal199"
},
"apis": [
{
"path": "/api/traffic/servers",
"status": 200
},
{
"path": "/api/traffic/users",
"status": 200
},
{
"path": "/api/traffic/bound-interfaces",
"status": 200
}
],
"cases": [
{
"width": 1440,
"trafficServers200": true,
"attemptProvenanceVisible": true,
"actualLiveSample": true,
"backendReceiptLabel": true,
"pageErrors": 0,
"noOverflow": true
},
{
"width": 320,
"trafficServers200": true,
"attemptProvenanceVisible": true,
"actualLiveSample": true,
"backendReceiptLabel": true,
"pageErrors": 0,
"noOverflow": true
}
],
"bounds": [
"Read-only smoke; error/stale/legacy branches proven by owned SQL and UI fixtures",
"No manual production scheduler/config/password/message writes"
]
}