Files
rust-xmpp/docs/validation-logs-0.8.1/latency-after.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

523 lines
14 KiB
JSON

{
"binary_sha256": "c57757476f2019c60ac877e4a66364b17283218e3cc244ae3f29cde1d3be2977",
"scope": "loopback STARTTLS; isolated fixture; no production latency claim",
"cases": [
{
"mam_enabled": false,
"sm_enabled": true,
"rounds": 5,
"seeded_muc_archive_records": 0,
"active": {
"direct_peer": {
"samples": 5,
"median_ms": 2.2083669999801714,
"p95_ms": 2.7524509999921065,
"max_ms": 2.7524509999921065,
"samples_ms": [
2.0349779999833117,
2.1022979999543168,
2.2083669999801714,
2.581427999984953,
2.7524509999921065
]
},
"direct_application_rtt": {
"samples": 5,
"median_ms": 4.559320999987904,
"p95_ms": 5.448408999995991,
"max_ms": 5.448408999995991,
"samples_ms": [
3.9975349999394894,
4.301345000044421,
4.559320999987904,
4.565895999917302,
5.448408999995991
]
},
"muc_sender_echo": {
"samples": 5,
"median_ms": 4.29816700000174,
"p95_ms": 11.835469999937231,
"max_ms": 11.835469999937231,
"samples_ms": [
3.717826999945828,
3.95383000000038,
4.29816700000174,
11.782627000002321,
11.835469999937231
]
},
"muc_peer": {
"samples": 5,
"median_ms": 4.366868000033719,
"p95_ms": 11.859378999929504,
"max_ms": 11.859378999929504,
"samples_ms": [
3.7456439999914437,
4.002205000006143,
4.366868000033719,
11.841935000006742,
11.859378999929504
]
}
},
"inactive": {
"direct_peer": {
"samples": 5,
"median_ms": 2.1559959999422063,
"p95_ms": 2.7428159999089985,
"max_ms": 2.7428159999089985,
"samples_ms": [
1.889266000034695,
2.07170299995596,
2.1559959999422063,
2.2102450000147655,
2.7428159999089985
]
},
"direct_application_rtt": {
"samples": 5,
"median_ms": 4.291513999987728,
"p95_ms": 4.628346999993482,
"max_ms": 4.628346999993482,
"samples_ms": [
4.097702999956709,
4.117672000006678,
4.291513999987728,
4.321024999967449,
4.628346999993482
]
},
"muc_sender_echo": {
"samples": 5,
"median_ms": 3.607771000019966,
"p95_ms": 4.329054999971049,
"max_ms": 4.329054999971049,
"samples_ms": [
3.0511659999774565,
3.3668879999595447,
3.607771000019966,
3.629876999980297,
4.329054999971049
]
},
"muc_peer": {
"samples": 5,
"median_ms": 3.669854000008854,
"p95_ms": 4.375101999926301,
"max_ms": 4.375101999926301,
"samples_ms": [
3.109387999984392,
3.436124000018026,
3.669854000008854,
3.692369999953371,
4.375101999926301
]
}
},
"urgent_flush": {
"samples": 1,
"median_ms": 3.450391999990643,
"p95_ms": 3.450391999990643,
"max_ms": 3.450391999990643,
"samples_ms": [
3.450391999990643
]
},
"headline_durably_buffered": true,
"activation_drained_queue": true,
"personal_archive_records": 0,
"muc_archive_records": 0,
"wire_body_deliveries": 43,
"status": "pass"
},
{
"mam_enabled": true,
"sm_enabled": true,
"rounds": 5,
"seeded_muc_archive_records": 0,
"active": {
"direct_peer": {
"samples": 5,
"median_ms": 5.680922999999893,
"p95_ms": 5.92475899998135,
"max_ms": 5.92475899998135,
"samples_ms": [
4.959245000009105,
5.657132000010279,
5.680922999999893,
5.683216000079483,
5.92475899998135
]
},
"direct_application_rtt": {
"samples": 5,
"median_ms": 10.62067800000932,
"p95_ms": 11.266418999980488,
"max_ms": 11.266418999980488,
"samples_ms": [
9.56820900000821,
10.354214000017237,
10.62067800000932,
11.083625999958713,
11.266418999980488
]
},
"muc_sender_echo": {
"samples": 5,
"median_ms": 4.932548000056158,
"p95_ms": 7.615871999973933,
"max_ms": 7.615871999973933,
"samples_ms": [
4.048796000006405,
4.207175000033203,
4.932548000056158,
5.545106999989002,
7.615871999973933
]
},
"muc_peer": {
"samples": 5,
"median_ms": 5.05425800008652,
"p95_ms": 7.6429759999427915,
"max_ms": 7.6429759999427915,
"samples_ms": [
4.07517700000426,
4.236438000020826,
5.05425800008652,
5.570927000007941,
7.6429759999427915
]
}
},
"inactive": {
"direct_peer": {
"samples": 5,
"median_ms": 5.44478100005108,
"p95_ms": 5.556554000008873,
"max_ms": 5.556554000008873,
"samples_ms": [
4.727472000013222,
4.8114250000708125,
5.44478100005108,
5.505089000052976,
5.556554000008873
]
},
"direct_application_rtt": {
"samples": 5,
"median_ms": 10.183787000073607,
"p95_ms": 10.890477999964787,
"max_ms": 10.890477999964787,
"samples_ms": [
9.888724000006732,
9.945942000058494,
10.183787000073607,
10.306656000011571,
10.890477999964787
]
},
"muc_sender_echo": {
"samples": 5,
"median_ms": 5.1263200000448705,
"p95_ms": 5.255117000046994,
"max_ms": 5.255117000046994,
"samples_ms": [
4.305390000013176,
5.036372000063238,
5.1263200000448705,
5.168275000073663,
5.255117000046994
]
},
"muc_peer": {
"samples": 5,
"median_ms": 5.184012999961851,
"p95_ms": 5.310040000040317,
"max_ms": 5.310040000040317,
"samples_ms": [
4.368295000062972,
5.154129000061403,
5.184012999961851,
5.191530000047351,
5.310040000040317
]
}
},
"urgent_flush": {
"samples": 1,
"median_ms": 5.2187170000479455,
"p95_ms": 5.2187170000479455,
"max_ms": 5.2187170000479455,
"samples_ms": [
5.2187170000479455
]
},
"headline_durably_buffered": true,
"activation_drained_queue": true,
"personal_archive_records": 42,
"muc_archive_records": 10,
"wire_body_deliveries": 43,
"status": "pass"
},
{
"mam_enabled": true,
"sm_enabled": true,
"rounds": 5,
"seeded_muc_archive_records": 1000,
"active": {
"direct_peer": {
"samples": 5,
"median_ms": 5.179283999950712,
"p95_ms": 5.702402999986589,
"max_ms": 5.702402999986589,
"samples_ms": [
4.691908000040712,
5.172169999923426,
5.179283999950712,
5.635785999970722,
5.702402999986589
]
},
"direct_application_rtt": {
"samples": 5,
"median_ms": 9.836759999984679,
"p95_ms": 10.818348000043443,
"max_ms": 10.818348000043443,
"samples_ms": [
9.177894999993441,
9.73506099990118,
9.836759999984679,
10.593198000037773,
10.818348000043443
]
},
"muc_sender_echo": {
"samples": 5,
"median_ms": 4.2178580000609145,
"p95_ms": 6.532151999977032,
"max_ms": 6.532151999977032,
"samples_ms": [
3.8601360000711793,
4.174319999947329,
4.2178580000609145,
4.571829000042271,
6.532151999977032
]
},
"muc_peer": {
"samples": 5,
"median_ms": 4.280302000097436,
"p95_ms": 6.605132999993657,
"max_ms": 6.605132999993657,
"samples_ms": [
3.8853840000001583,
4.233521999935874,
4.280302000097436,
4.673529000001508,
6.605132999993657
]
}
},
"inactive": {
"direct_peer": {
"samples": 5,
"median_ms": 5.289302999926804,
"p95_ms": 5.9182850000070175,
"max_ms": 5.9182850000070175,
"samples_ms": [
4.637428000023647,
4.646944000000985,
5.289302999926804,
5.336470000088411,
5.9182850000070175
]
},
"direct_application_rtt": {
"samples": 5,
"median_ms": 9.881779000011193,
"p95_ms": 11.126878000027318,
"max_ms": 11.126878000027318,
"samples_ms": [
9.666927000012038,
9.780869999985953,
9.881779000011193,
9.893610999938574,
11.126878000027318
]
},
"muc_sender_echo": {
"samples": 5,
"median_ms": 5.337903999929949,
"p95_ms": 6.605088000014803,
"max_ms": 6.605088000014803,
"samples_ms": [
4.4430670000110695,
4.566451999949095,
5.337903999929949,
5.398619999937182,
6.605088000014803
]
},
"muc_peer": {
"samples": 5,
"median_ms": 5.365761999996721,
"p95_ms": 6.657663000055436,
"max_ms": 6.657663000055436,
"samples_ms": [
4.503487999954814,
4.589735999957156,
5.365761999996721,
5.456013999946663,
6.657663000055436
]
}
},
"urgent_flush": {
"samples": 1,
"median_ms": 6.4426129999901605,
"p95_ms": 6.4426129999901605,
"max_ms": 6.4426129999901605,
"samples_ms": [
6.4426129999901605
]
},
"headline_durably_buffered": true,
"activation_drained_queue": true,
"personal_archive_records": 42,
"muc_archive_records": 1010,
"wire_body_deliveries": 43,
"status": "pass"
},
{
"mam_enabled": true,
"sm_enabled": true,
"rounds": 5,
"seeded_muc_archive_records": 10000,
"active": {
"direct_peer": {
"samples": 5,
"median_ms": 5.5639299999938885,
"p95_ms": 6.427136000070277,
"max_ms": 6.427136000070277,
"samples_ms": [
4.3693179999308995,
5.252241999983198,
5.5639299999938885,
6.115242999953807,
6.427136000070277
]
},
"direct_application_rtt": {
"samples": 5,
"median_ms": 10.580320000030952,
"p95_ms": 11.34455600004003,
"max_ms": 11.34455600004003,
"samples_ms": [
8.862616999977035,
10.534624999991138,
10.580320000030952,
10.863696000001255,
11.34455600004003
]
},
"muc_sender_echo": {
"samples": 5,
"median_ms": 4.871052999988024,
"p95_ms": 6.248740000046382,
"max_ms": 6.248740000046382,
"samples_ms": [
4.298133000020243,
4.364993999956823,
4.871052999988024,
5.0552000000152475,
6.248740000046382
]
},
"muc_peer": {
"samples": 5,
"median_ms": 4.894828000033158,
"p95_ms": 6.306694000045354,
"max_ms": 6.306694000045354,
"samples_ms": [
4.328496999960407,
4.393286999970769,
4.894828000033158,
5.0838870000688985,
6.306694000045354
]
}
},
"inactive": {
"direct_peer": {
"samples": 5,
"median_ms": 4.837865000013153,
"p95_ms": 6.154906000006122,
"max_ms": 6.154906000006122,
"samples_ms": [
4.644825000013952,
4.6781300000020565,
4.837865000013153,
6.011097999930826,
6.154906000006122
]
},
"direct_application_rtt": {
"samples": 5,
"median_ms": 9.839443999908326,
"p95_ms": 11.105878999956076,
"max_ms": 11.105878999956076,
"samples_ms": [
9.05296900009489,
9.732880000001387,
9.839443999908326,
10.890076000009685,
11.105878999956076
]
},
"muc_sender_echo": {
"samples": 5,
"median_ms": 4.868799000064428,
"p95_ms": 5.506852999928924,
"max_ms": 5.506852999928924,
"samples_ms": [
4.652097999951366,
4.654195000057371,
4.868799000064428,
5.197563999900012,
5.506852999928924
]
},
"muc_peer": {
"samples": 5,
"median_ms": 4.921641999999338,
"p95_ms": 5.567783999936182,
"max_ms": 5.567783999936182,
"samples_ms": [
4.707422999899791,
4.71425300008832,
4.921641999999338,
5.261014999973668,
5.567783999936182
]
}
},
"urgent_flush": {
"samples": 1,
"median_ms": 6.844148000027417,
"p95_ms": 6.844148000027417,
"max_ms": 6.844148000027417,
"samples_ms": [
6.844148000027417
]
},
"headline_durably_buffered": true,
"activation_drained_queue": true,
"personal_archive_records": 42,
"muc_archive_records": 10010,
"wire_body_deliveries": 43,
"status": "pass"
}
]
}