- fglair-discover: fchmod 0600 и при перезаписи существующего --out. - fglctl: #include <cstdlib>; точная проверка обрезки config (n == sizeof-1 && !feof); валидация 'monitor <sec>' (endptr/errno). - docs: отчёт soak — формулировка «ответы на batch GET»; индекс reports. Ревью M4 независимым агентом: 2 круга, APPROVED.
36 lines
1.8 KiB
Markdown
36 lines
1.8 KiB
Markdown
# M4 soak-отчёт: fglctl monitor на живом приборе
|
||
|
||
- **Дата**: 2026-09-29, 00:16–01:16 MSK (60 минут)
|
||
- **Прибор**: AP-WC1E (fw 2.6.17-fgl2), IP/DSN — в локальном
|
||
`docs/legacy/config_kata.json` (не версионируется)
|
||
- **Команда**: `fglctl docs/legacy/config_kata.json monitor 3600`
|
||
- **Лог**: локально (артефакт прогона; сводка ниже)
|
||
|
||
## Результаты
|
||
|
||
| Метрика | Значение |
|
||
|---------|----------|
|
||
| Смены состояний | registering → online → idle (stop) |
|
||
| recovering / offline / KEY_ERROR | **0** |
|
||
| Свойств получено | 33 (ответы на стартовый batch GET, все свойства шаблона A, вкл. строковые) |
|
||
| Push'ей со статусом ≠ 200 | **0** |
|
||
| `pushes_ok` / `pushes_bad` | 33 / **0** |
|
||
| Опросов `commands.json` модулем | 273 (~каждые 13 с) |
|
||
| Re-key | 1 (только первичный; keep-alive 15 с предотвращает stale-gap re-key — PROTOCOL §4.4) |
|
||
|
||
Строковые свойства подтверждены на приборе: `DeviceName="Wave13"`,
|
||
`BuildingName="NoGroup"`, `ServiceContact*=""`.
|
||
|
||
## Вывод
|
||
|
||
60-минутный soak с непрерывным опросом модуля: 0 рассинхронов, 0 потерь,
|
||
сессия стабильна, `delete_session` при завершении отправлен.
|
||
|
||
**Полный 24-часовой прогон — приёмочный шаг перед релизом** (выполняется
|
||
владельцем; рекомендуется на том же стенде):
|
||
|
||
```sh
|
||
fglctl docs/legacy/config_kata.json monitor 86400 > soak24h.log 2>&1
|
||
# Accept: нет строк recovering/offline/KEY_ERROR; pushes_bad=0 в финальном STATS
|
||
```
|