сообщения больше не выполняется полный scan/rewrite архива для expiry. Очистка остаётся в maintenance и перед MAM-запросами; append и crash checkpoint до fanout сохранены. - Неизменённые native config/persistent index не перезаписываются при каждом сообщении. Удалённые файлы восстанавливаются, ошибки экспорта повторяются. - CSI больше не сохраняет SM snapshot при отсутствии изменения durable очереди. Изменённая очередь сохраняется до отправки; при ошибке записи очередь откатывается. - Личные сообщения, IQ и входящая федерация к аккаунтам больше не захватывают общий MUC mutex, ожидая несвязанную работу с комнатными архивами. - Добавлены регрессии native exports/archive scanning/CSI rollback и реальный TLS latency check в verify-local.sh, автоматически включённый и в CI. Измерения и границы подтверждения: [docs/MESSAGE-LATENCY.md](docs/MESSAGE-LATENCY.md). Результаты итогового прогона: [docs/VALIDATION-0.8.1.md](docs/VALIDATION-0.8.1.md). - Личные сообщения и SM ACK больше не ждут сетевую отправку push. Уведомления отправляются через очередь1024 с максимум8параллельных маршрутов; worker и его задачи отменяются при завершении serve. Ошибки очереди/маршрута логируются. - Offline сообщение сохраняется до публикации push, чтобы проснувшийся клиент мог сразу получить его. Подтверждена очередь при первом TLS stream push gateway. - По умолчанию CSI считает важными bodyless OMEMO legacy/2, delivery receipts и chat markers. Явный список `csi_important_payloads` заменяет расширенные defaults. Низкоприоритетный headline по-прежнему буферизуется. Policy обновляется и при SM resume. - Выбор адресатов и carbons фильтрует владельцев до захвата session mutex; зависшая сессия чужого аккаунта не задерживает этот путь. Duplicate SM ACK без изменения durable counters/queue не переписывает snapshot. - Bind2 и MAM metadata IQ читают только первый/последний native record вместо сканирования всей истории. Индекс не требуется; recovery/лимиты записи сохранены. - Добавлен `message-processing-slow`: обработка message дольше250мс, поля duration_ms/route, без payload/токенов. Это время обработки сервером, не peer receipt. - Новые сетевые регрессии включены в verify-local.sh/GitHub CI. Причины, изменение CSI policy, измерения и ограничения: [docs/PERSONAL-MESSAGE-LATENCY.md](docs/PERSONAL-MESSAGE-LATENCY.md).
52 lines
4.1 KiB
Markdown
52 lines
4.1 KiB
Markdown
# Проверка0.8.2
|
||
|
||
2026-10-21, Linux x86_64, Rust1.99.1. Итоговый единый прогон:
|
||
[verify.txt](validation-logs-0.8.2/verify.txt). Machine-readable report:
|
||
[validation-results.json](validation-results.json).
|
||
|
||
|Проверка|Результат|
|
||
|---|---|
|
||
|Rust ordinary tests|305passed,0failed,11ignored|
|
||
|fmt / Clippy all-targets -D warnings / release|Успешно|
|
||
|Новые Rust regressions|6archive endpoints/recovery/limits +2account-lock/duplicateACK — успешно|
|
||
|Личная доставка|6fixtures:100000MAM/user, roster0/5000/10000,500SMpending, default/native CSI — успешно|
|
||
|Неподвижный push gateway|Настоящий STARTTLS; hibernating+offline: bothmessagesdurable, senderACKh=4 до ответа gateway; offline сохранён до первого postTLSstream|
|
||
|Bind2 и MAM metadata|100000records,5reconnects+5IQ, exactIDs/timestamps — успешно|
|
||
|Сетевые регрессии|Весь verify-local.sh, включаяprivate WSS/BOSH chat, PEP/push,AndroidSASL,MUCcrash/SMrestart,S3/migration — успешно|
|
||
|Native reference|8module/storage +1TLS/SASL EXTERNAL federation — успешно|
|
||
|Общая нагрузка|500TLS,100accounts,5000ping,5000messages,10000MAM,failures=[]|
|
||
|MUC+SM нагрузка|500resources,10rooms,25000presence,1500messages,SIGKILL+10resume — успешно|
|
||
|
||
MUC+SM total 45.54с, peak sampled RSS 40.94MiB.
|
||
|
||
Воспроизведение личного push-stall: прежний0.8.1 за2с сохраняет только первое
|
||
сообщение и не отвечаетSMACK при зависшем postTLSfeatures gateway. Новый0.8.2
|
||
сохраняет оба и отвечаетh=4 в том же2сокне; тестовое окно не является latency SLA.
|
||
Offline ordering baseline проверен на0.8.0; его точный hash указан отдельно.
|
||
|
||
Bind2 authenticate→success median2742.353→1.976мс; metadataIQ2437.945→0.355мс.
|
||
Baseline0.8.0hash74882319… содержит тот же прежний scan path. Все raw samples,
|
||
IDs, timestamps и hashes — validation-logs-0.8.2/bind2-*.json.
|
||
|
||
Default inactive OMEMO доставлен за2.58–4.06мс, receipts7.36–35.56мс в checked
|
||
fixtures; explicit[] сохраняет удержание доactive. Намеренный CSI dwell2с
|
||
отдельно обозначен в отчёте и не выдаётся за время вычисления/доставки.
|
||
Каждый personalarchive содержит ровно100523records/user. Детали и настройка:
|
||
[PERSONAL-MESSAGE-LATENCY.md](PERSONAL-MESSAGE-LATENCY.md).
|
||
|
||
Release SHA-256: `130431025c4c7c2f72e28b77a31c83867f857ef8bb56d1f71b10e4b19d7caaf5`. Все новые final reports содержат этот hash.
|
||
Команда: `XMPP_LOAD_CHECK=1 bash scripts/verify-local.sh` с native env согласно
|
||
scripts/prosody_compat/README.md. Использованы CARGO_INCREMENTAL=0,
|
||
CARGO_PROFILE_DEV_DEBUG=0, CARGO_PROFILE_TEST_DEBUG=0. Перед итоговым прогоном
|
||
устранены stale package linker artifacts очисткой package build outputs;
|
||
исходники не менялись после финальной сборки. Воспроизведение прошло одним
|
||
последующим полным прогоном; preliminary compiler errors не являются test failures.
|
||
|
||
Это loopback, не production клиента/диска/сети. Fsync и durable commit до
|
||
подтверждения сохранены; boundedpushqueue не обещает durable notification delivery.
|
||
SMglobalIOmutex, полные MAMqueries и maintenance остаются отдельной стоимостью.
|
||
9nativeignoredtests выполнены; остальные AF_UNIX/largearchiveignoredtests и
|
||
10GiBtransfers в этом локальном прогоне не запускались (полный CI entrypoint
|
||
по-прежнему включает их). Старые largeupload результаты не приписываются0.8.2.
|
||
Общие границы: [COMPATIBILITY.md](COMPATIBILITY.md).
|