Files
rust-xmpp/docs/validation-logs-0.8.2/bind2-before-0.8.0.json
T
wt e9329ccbb2
Test, build and publish / All tests and Linux binary (push) Failing after 23s
Test, build and publish / Container smoke test and Gitea publish (push) Skipped
- Исправлена задержка доставки MUC с растущим архивом: после каждого
сообщения
  больше не выполняется полный 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).
2026-10-21 11:20:09 +07:00

165 lines
4.0 KiB
JSON

{
"binary_source": "/tmp/xmpp-message-latency-original-binary",
"binary_sha256": "74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a",
"scope": "real loopback TCP/STARTTLS/SASL2 Bind2; isolated personal MAM fixture; no production latency claim",
"timing": "raw ordered samples; auth timer starts before authenticate and ends at parsed success; full timer includes TCP/STARTTLS/features; metadata IQ timer runs from send to parsed result",
"result": {
"status": "pass",
"seeded_personal_archive_records": 100000,
"archive_bytes": 21488890,
"archive_expires_after": "never",
"index_present_before_start": false,
"reconnect_samples": 5,
"expected_metadata": {
"start": {
"id": "seed-0",
"timestamp": "2026-01-01T00:00:00Z"
},
"end": {
"id": "seed-99999",
"timestamp": "2026-01-02T03:46:39Z"
}
},
"observed_metadata": [
{
"start": {
"id": "seed-0",
"timestamp": "2026-01-01T00:00:00Z"
},
"end": {
"id": "seed-99999",
"timestamp": "2026-01-02T03:46:39Z"
}
},
{
"start": {
"id": "seed-0",
"timestamp": "2026-01-01T00:00:00Z"
},
"end": {
"id": "seed-99999",
"timestamp": "2026-01-02T03:46:39Z"
}
},
{
"start": {
"id": "seed-0",
"timestamp": "2026-01-01T00:00:00Z"
},
"end": {
"id": "seed-99999",
"timestamp": "2026-01-02T03:46:39Z"
}
},
{
"start": {
"id": "seed-0",
"timestamp": "2026-01-01T00:00:00Z"
},
"end": {
"id": "seed-99999",
"timestamp": "2026-01-02T03:46:39Z"
}
},
{
"start": {
"id": "seed-0",
"timestamp": "2026-01-01T00:00:00Z"
},
"end": {
"id": "seed-99999",
"timestamp": "2026-01-02T03:46:39Z"
}
}
],
"mam_metadata_iq": {
"samples_ms": [
2809.4374219999736,
2219.536220000009,
1944.7504689999278,
2437.94546800018,
3715.6457869998576
],
"median_ms": 2437.94546800018,
"p95_ms": 3715.6457869998576,
"max_ms": 3715.6457869998576
},
"observed_iq_metadata": [
{
"start": {
"id": "seed-0",
"timestamp": "2026-01-01T00:00:00Z"
},
"end": {
"id": "seed-99999",
"timestamp": "2026-01-02T03:46:39Z"
}
},
{
"start": {
"id": "seed-0",
"timestamp": "2026-01-01T00:00:00Z"
},
"end": {
"id": "seed-99999",
"timestamp": "2026-01-02T03:46:39Z"
}
},
{
"start": {
"id": "seed-0",
"timestamp": "2026-01-01T00:00:00Z"
},
"end": {
"id": "seed-99999",
"timestamp": "2026-01-02T03:46:39Z"
}
},
{
"start": {
"id": "seed-0",
"timestamp": "2026-01-01T00:00:00Z"
},
"end": {
"id": "seed-99999",
"timestamp": "2026-01-02T03:46:39Z"
}
},
{
"start": {
"id": "seed-0",
"timestamp": "2026-01-01T00:00:00Z"
},
"end": {
"id": "seed-99999",
"timestamp": "2026-01-02T03:46:39Z"
}
}
],
"sasl2_bind2_success": {
"samples_ms": [
2973.741726999833,
1934.8616100000982,
2034.18535600008,
3162.465005000058,
2742.352718999882
],
"median_ms": 2742.352718999882,
"p95_ms": 3162.465005000058,
"max_ms": 3162.465005000058
},
"tcp_starttls_to_bind2_success": {
"samples_ms": [
2977.800272999957,
1937.2807600000215,
2036.7481539999517,
3165.2697970000645,
2745.1149930000156
],
"median_ms": 2745.1149930000156,
"p95_ms": 3165.2697970000645,
"max_ms": 3165.2697970000645
}
}
}