docs(releases): fill in v1.31 release notes (cumulative since v1.26)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011LffAvostt3uMkiUbVUiyM
This commit is contained in:
Mikhail Chusavitin
2026-09-01 12:13:15 +03:00
co-authored by Claude Sonnet 5
parent 8278c77d98
commit be37f1852b
+108
View File
@@ -0,0 +1,108 @@
# logpile v1.31
Дата релиза: 2026-09-01
Тег: `v1.31`
Накопительный список изменений с версии v1.26.
## Парсеры
### nvidia_bug_report: извлечение ошибок GPU Xid/SXid (ADL-055)
Парсер теперь сканирует `nvidia-bug-report-*.log.gz` на строки `NVRM: Xid` /
`NVRM: SXid` и выдаёт события с эвристической классификацией «железо против
нагрузки» по каталогу Xid-кодов. Лавинообразный поток одного NVLink-сообщения
(наблюдалось 114 440 строк за раз) сворачивается в одно суммарное событие.
### Одиночные .gz больше не обрезаются фиксированным лимитом (ADL-054)
Распаковка одиночного gzip-файла ограничивается не жёстким потолком в 50 МБ, а
защитой по коэффициенту сжатия (300:1) и абсолютным потолком 1 ГБ. Большие
bug-report-логи (пример: 53 МБ в распакованном виде) проходят целиком.
### Inspur: часовые пояса, PPIN, активные отказы NVMe
- Уровень события берётся из RFC 5424 PRI; SEL-записи без смещения времени
разрешаются по временной шкале из IDL-записей с явным смещением; убраны
фиктивные записи 1970 года (ADL-056).
- PPIN процессора экспортируется как серийный номер CPU; активные отказы
NVMe-накопителей (`dev_status.log`, IDL Assert/Deassert) проецируются на статус
`hardware.storage` (ADL-057).
### Inspur: комбинированный component.log без devicefrusdr.log / asset.json (ADL-064)
- Блок `RESTful FRU info:` теперь разбирается — из него берутся производитель,
модель, партномер и системный UUID платы (раньше `board` содержал только
серийный номер, `stats.fru` был 0).
- Поле `fans_power` приходит как float (`12.000000`) — из-за типа `int`
`json.Unmarshal` всего блока падал и терял все датчики вентиляторов.
- Из версий прошивок (`RESTful version info`) срезается суффикс со временем
сборки (`08.05.01 (02/21/2024 16:51:27)`), иначе он вызывает событие
`FIRMWARE_CHANGED` при каждом импорте.
- Разбор строк SOL smartd в формате SCSI/SAS.
### xFusion: согласование выгрузок BMC и live-CD одного сервера (ADL-061, ADL-062)
- Общая нормализация в экспортёре: метки слотов памяти, модели дата-центровых
GPU, тип и интерфейс накопителей, фильтрация onboard-контроллеров и служебных
USB-флешек.
- OCP NIC выдаётся по одной записи на PCI-функцию без серийного номера, чтобы обе
выгрузки ключевали порты по MAC и не порождали ложные install/remove.
- Строки `mem_info` восстанавливаются при попадании байта `0x0A` в SPD-поле BOM
(исчез фантомный DIMM «slot s»).
### xFusion: размер накопителей из disk_info (ADL-063)
`Capacity : 6.986 TB` теперь разбирается (единицы TB/бинарные) в `size_gb`.
Раньше `Sscanf("%f GB")` не совпадал и `size_gb` оставался 0 для всех NVMe.
### HPE iLO AHS: дедуп DIMM по слоту (ADL-060)
Инвентарь памяти сворачивается по одной записи на слот, выигрывает самый свежий
POST-снимок. Замена модуля в слоте больше не даёт лишний модуль (было 26 на
24-слотовой плате).
### easy_bee: поддержка bee-support v12+
`bee-audit.json` и `runtime-health.json` ищутся не только в `export/`
(в v12+ они лежат в `tasks/_state/` и `status/`).
### models: PPIN как общий фолбэк серийного номера CPU (ADL-058)
`models.ResolveCPUSerialNumber` централизует правило: явный серийник в приоритете,
иначе валидный PPIN. Применяется в Dell, H3C, Inspur, Redfish и на границе
API/экспорта. Идентификатор никогда не выводится из сокета, модели или чужого
компонента.
## Redfish-коллектор
- Восстановление GPU и NIC, терявшихся на Redfish-выгрузках xFusion G5500.
- Дедуп GPU и разрешение модели по тексту на платах xFusion без PCI-идентити.
- RAID/HBA-контроллеры поднимаются из `Storage.StorageControllers[]`.
- Адрес preflight-ping собирается через `net.JoinHostPort` для IPv6-хостов.
## Экспорт в Reanimator
- Сбор и экспорт `storage.vendor_id` / `device_id` (контракт ingest v2.13, ADL-053).
- Дедуп NIC по нормализованному MAC; убран мусорный фолбэк серийника из redis.
- Устройства PCIe/GPU/NIC с шириной линии ниже согласованной помечаются `Warning`.
- Удалено мёртвое поле `bmc_event_summary`; исправлена потеря статуса для CPU/GPU Inspur.
- Канонический дедуп PCIe ключуется по BDF раньше серийника.
- Дизамбигуация коллизий слотов PSU и памяти; слоты PSU назначаются по порядку
серийников; исправлен дедуп памяти, схлопывавший разные DIMM.
- Исправлены обрезание больших tar.gz и подстановка пустого `device_class`.
## Инструменты
- Новый офлайн-CLI `logpile-cpu-audit` для аудита идентити процессоров, с режимом
`-reanimator` для готовых ingest-пейлоадов (ADL-059).
- Пакетная конвертация выполняется на пуле воркеров.
## Документация
- `bible-local`: ADL-054 … ADL-064.
## Запуск на macOS
Снимите карантинный атрибут через терминал: `xattr -d com.apple.quarantine /path/to/logpile-darwin-arm64`
После этого бинарник запустится без предупреждения Gatekeeper.