- Исправлена задержка доставки 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).
This commit is contained in:
1 parent
b798b3f9b7
commit
e9329ccbb2
48 files changed
+11073
-235
No files matched your search
@@ -11,14 +11,14 @@
|
||||
|---|---|---|
|
||||
| Конфигурация | Lua/JSON/YAML/YML/TOML, Include, глобальные и локальные области, наследование модулей | Lua VM ограничена; не все функции окружения конфигуратора Prosody доступны. Runtime обслуживает один VirtualHost и его компоненты |
|
||||
| Хранилище | internal `.dat`, `.list`, бинарные строки, смешанные ключи Lua, атомарные записи, потоковые архивы, инвалидирование `.lidx` | SQL, external storage остальных модулей и произвольные драйверы не реализованы; S3 uploads поддержаны. Каталог блокируется между процессами Rust; Prosody в блокировке не участвует |
|
||||
| Аккаунты, saslauth | internal_hashed SHA-1/SHA-256, SASLprep, PLAIN внутри TLS, SCRAM и PLUS с tls-exporter/tls-server-end-point, SSDP, SASL2 | Только internal_hashed; опциональный sasl2_bind2 (alias bind2) поддерживает inline bind/SM/CSI/Carbons. SASL2 inline SM resume и takeover живого транспорта реализованы; MAM metadata при Bind2 читает весь архив синхронно |
|
||||
| Аккаунты, saslauth | internal_hashed SHA-1/SHA-256, SASLprep, PLAIN внутри TLS, SCRAM и PLUS с tls-exporter/tls-server-end-point, SSDP, SASL2 | Только internal_hashed; опциональный sasl2_bind2 (alias bind2) поддерживает inline bind/SM/CSI/Carbons. SASL2 inline SM resume и takeover живого транспорта реализованы; Bind2/MAM metadata читает endpoints без полного scan; полные MAM queries всё ещё могут сканировать историю |
|
||||
| Сообщения и presence | локальная маршрутизация, приоритеты ресурсов, контакты/подписки/probes, offline, carbons, блокировки | Полная совместимость всех пограничных сценариев маршрутизации ещё не подтверждена |
|
||||
| MAM | личный и комнатный MAM2, prefs, формы, RSM, фильтры времени/контакта/ID, extended queries, metadata, stanza-id, expiry | Нет доказательства совпадения каждой ошибки и порядка результатов при всех комбинациях запроса |
|
||||
| MUC | комнаты, несколько ресурсов, роли/affiliations, owner/admin, конфигурация, приглашения, история без MAM и MAM, occupant-id/avatar, hats, PM/presence policies, регистрация, административные ad-hoc команды; журнал конфигурации, членства и истории до ответа, crash recovery persistent/temporary комнат | Rust-журнал авторитетен, native config/state — экспорт. Без SM восстановление требует новой аутентификации точного полного JID; grace по умолчанию 300 с, `muc_recovery_grace_period` 1..604800. Действующая приватная SM-запись восстанавливает логическое членство до listeners. Произвольные Lua-модули не запускаются; [MUC-RECOVERY.md](MUC-RECOVERY.md) |
|
||||
| PEP/pubsub | persistent nodes/items, ACL, subscriptions, publish/retract/purge/delete, owner/configuration, caps, OMEMO XML как payload | Не все необязательные политики узлов Prosody реализованы; OMEMO шифруют клиенты, криптография OMEMO не часть сервера |
|
||||
| private/bookmarks/vCard | private XML, старые и новые закладки, vCard/temp-vCard4 и avatar-переходы | Межклиентное поведение нужно дополнительно проверить настоящими клиентами |
|
||||
| SM/push | acknowledgements после обработки, resumable XEP-0198 sessions, replay, ограниченные очереди, приватный durable snapshot, heartbeat и shutdown checkpoint; legacy SASL/SASL2 resume после restart; native регистрации push | Нужны новый TLS/SASL-транспорт и токен того же владельца; TCP/TLS-сокеты не сохраняются. SM-снимок не native Prosody: 256 MiB суммарно, 8 MiB/4096 stanza на сессию. При неопределённой отправке возможен replay. Есть coalescing и watchdog первого push; реальный APNs/FCM цикл не подтверждён |
|
||||
| CSI | active/inactive, ограниченный буфер, native importance rules, delay, flush при клиентской активности и grace period | Событие socket drain приближено завершением записи; необязательные расширенные XPath-фильтры поддержаны не полностью |
|
||||
| CSI | active/inactive, ограниченный буфер, native importance function + runtime defaults для OMEMO/receipts/markers, delay, flush при клиентской активности и grace period | Defaults0.8.2 важнее по доставке, чем строгая native policy; явный csi_important_payloads заменяет defaults. Событие socket drain приближено завершением записи; необязательные расширенные XPath-фильтры поддержаны не полностью |
|
||||
| Федерация | входящие/исходящие STARTTLS, CA/DNS-ID, SASL EXTERNAL, DNS SRV, проверка домена каждого stanza, ограниченный пул соединений | Нет dialback/DANE/OtherName-only/SRV-ID/bidi/direct TLS |
|
||||
| HTTP upload | Несколько XEP-0363 components, Host/path isolation, local/S3 gateway, multipart/SigV4, streaming PUT, GET/HEAD/range/conditional, квоты/expiry, native metadata/JWT; offline local↔S3/S3↔S3 migration с SHA-256/resume; intent/exact-key recovery и quarantine; реальный 10 GiB PUT/GET через MinIO проверен | MinIO single-node с описанным netlink adapter тестовой среды; AWS/distributed deployment не проверены. Миграция требует остановки сервера и временного места под один файл; source сохраняется. Потерянные ownership metadata и неопределённый Complete требуют отдельного разбора; HTTP-UPLOAD.md |
|
||||
| WebSocket/BOSH | WS/WSS и HTTP/HTTPS, общая XMPP-сессия, origin rules, BOSH RID/retry/hold/reorder/restart; http_altconnect XRD/JRD discovery; http_paths, HTTP Host/fallback, внешний URL, доверенные IP/CIDR и forwarded headers для TLS reverse proxy | Один VirtualHost с компонентами; нет PROXYv1/v2, произвольных Lua HTTP-приложений и горячей перенастройки. См. HTTP-PROXY.md |
|
||||
|
||||
@@ -53,7 +53,7 @@ Image smoke проходит и на PR. Только после успеха в
|
||||
|
||||
- `sha-<полный40символьныйcommit>` — каждый публикуемый commit;
|
||||
- `latest` — только основная ветка;
|
||||
- `v0.8.0` — пример version tag; он должен совпадать с Cargo.toml.
|
||||
- `v0.8.2` — пример version tag; он должен совпадать с Cargo.toml.
|
||||
|
||||
Version tag не меняет latest; prerelease также не перезаписывает latest.
|
||||
Собирается Linux amd64, не multiarch. Локальный `docker build .` по-прежнему
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
# Задержка доставки: исправление 0.8.1
|
||||
|
||||
В0.8.0 MUC после каждого groupchat append запускал expire_before. Эта операция
|
||||
под общим mutex компонента проходила по всему архиву и записывала сохранённые
|
||||
записи во временный файл даже при отсутствии истёкших записей. Задержка каждого
|
||||
сообщения росла с размером истории. Дополнительно переписывались неизменённые
|
||||
native room config/persistent index, а CSI сохранял полную durable SM-сессию
|
||||
даже при пустой/неизменённой очереди.
|
||||
|
||||
В0.8.1 эти лишние операции исключены из обычного пути доставки. Очистка архива
|
||||
остаётся в периодическом maintenance (интервал сервера300с) и перед MAM-запросами.
|
||||
Неизменённые native-файлы не переписываются; недостающие/изменённые экспорты и
|
||||
повтор после ошибки сохранены. Авторитетный MUC checkpoint и SM state по-прежнему
|
||||
записываются до подтверждения соответствующих изменений. CSI откатывает изменение
|
||||
очереди при ошибке checkpoint. Ненаправленный в MUC account traffic обходит mutex
|
||||
компонента и не ждёт его обслуживания архивов.
|
||||
|
||||
## Измерение
|
||||
|
||||
Настоящий STARTTLS, два клиента, durable SM, MUC MAM с finite retention,
|
||||
active/inactive CSI. Изолированный loopback; архив native `.list` заполнен до
|
||||
запуска сервера. Проверяются доставка sender echo/peer, counters, durable CSI
|
||||
buffer/flush и точное число записей архива. Порог задержки в миллисекундах не
|
||||
используется как flaky assertion; структурные регрессии запрещают полный scan
|
||||
архива при append и запись неизменённых native-файлов.
|
||||
|
||||
Active CSI, MUC peer, мс:
|
||||
|
||||
| Записей истории | 0.8.0 median / p95 | 0.8.1 median / p95 |
|
||||
|---:|---:|---:|
|
||||
|0|9.425 / 11.221|5.054 / 7.643|
|
||||
|1000|32.718 / 36.995|4.280 / 6.605|
|
||||
|10000|259.472 / 269.067|4.895 / 6.307|
|
||||
|100000|2517.940 / 2520.941|4.680 / 14.532|
|
||||
|
||||
Inactive CSI,100000 записей: median3866.027→4.285мс,
|
||||
p95 4150.867→5.072мс. Первые три строки —5samples/state, последняя —3.
|
||||
Это ограниченное сравнение на одном loopback host, а не production SLA и не
|
||||
доказательство всех возможных причин задержки у реальных клиентов.
|
||||
Полные сырые samples и SHA-256 обеих сборок — validation-logs-0.8.1/latency-*.json.
|
||||
|
||||
Команды:
|
||||
|
||||
```bash
|
||||
python3 tests/message_latency_network.py --binary target/release/rust-xmpp \
|
||||
--rounds 5 --history-records 0 1000 10000 --output /tmp/message-latency.json
|
||||
python3 tests/message_latency_network.py --binary target/release/rust-xmpp \
|
||||
--rounds 3 --history-records 100000 --output /tmp/message-latency-100k.json
|
||||
```
|
||||
|
||||
Быстрая проверка0/10000 records уже включена в verify-local.sh и GitHub Actions.
|
||||
Для повторной медленной проверки используйте сохранённую0.8.0 release-сборку;
|
||||
не приписывайте исходному бинарнику результаты пересобранной новой версии.
|
||||
|
||||
## Если задержка остаётся в целевой установке
|
||||
|
||||
Сопоставьте время отправки, получения и отображения delivery/read receipt,
|
||||
тип чата, transport, состояние CSI и наличие федерации. Доставка сообщения и
|
||||
receipt — разные события. Native CSI policy для низкоприоритетных payload не
|
||||
менялась. Длительный MAM query, периодическая очистка большого архива, медленный
|
||||
диск или внешний XMPP-домен могут иметь отдельную задержку. Текущие изменения
|
||||
не отключают fsync, не обещают exactly-once и не подменяют проверку реальных
|
||||
Conversations/Monal/Gajim либо deployment.
|
||||
@@ -0,0 +1,102 @@
|
||||
# Личные сообщения: исправления0.8.2
|
||||
|
||||
Предыдущий0.8.1 устранил per-message MUC archive scan и часть лишних CSI writes.
|
||||
Отдельная проверка личных чатов обнаружила другие причины. Испытания ниже
|
||||
проведены на loopback; это не подтверждение поведения конкретной production-сессии.
|
||||
|
||||
## Push не должен останавливать чат
|
||||
|
||||
В прежнем обработчике после локальной доставки выполнялся await внешнего
|
||||
push IQ route и только потом обновлялся handled и читалось следующее сообщение.
|
||||
Неполадки DNS/TCP/TLS/SASL внешнего шлюза задерживали отправителя до сетевого
|
||||
таймаута (30с на route). При полностью offline получателе push даже отправлялся
|
||||
раньше записи offline archive.
|
||||
|
||||
Регрессия воспроизвела настоящий исходящий STARTTLS к шлюзу, который после TLS
|
||||
не присылает features. У0.8.1 через2с первое сообщение уже в durable SM pending,
|
||||
второго нет, SM ACK отсутствует. У0.8.0 с полностью offline получателем в этот
|
||||
момент ещё нет даже первого offline record. В0.8.2 в обоих сценариях оба сообщения
|
||||
сохранены и sender ACK h=4 соответствует входящим4 stanza при том же зависшем
|
||||
шлюзе. Offline records присутствуют уже при первом post-TLS stream gateway.
|
||||
|
||||
Уведомления теперь маршрутизирует ограниченный worker:1024queued,8in-flight.
|
||||
При переполнении/ошибке notification routing пишет warning; подтверждение
|
||||
сообщения не означает успешный push. Очередь уведомлений не durable и при
|
||||
остановке отменяется; сами сообщения сохраняются независимо. Проверен XMPP
|
||||
push fixture, не APNs/FCM и не промышленный мобильный цикл.
|
||||
|
||||
## CSI и зашифрованные сообщения без body
|
||||
|
||||
Прежняя policy считала unimportant receipt-only и ciphertext-only OMEMO без
|
||||
body/EME. При `inactive` они могли ждать активности клиента. В тесте намеренный
|
||||
dwell2с показан отдельно: это время удержания, не вычислительная задержка.
|
||||
Сервер уже быстро отвечал SM ACK, но пользователь ещё не видел payload/receipt.
|
||||
|
||||
Default `csi_important_payloads` в0.8.2:
|
||||
|
||||
- `{eu.siacs.conversations.axolotl}encrypted`
|
||||
- `{urn:xmpp:omemo:2}encrypted`
|
||||
- `{urn:xmpp:receipts}received`
|
||||
- `{urn:xmpp:chat-markers:0}received`
|
||||
- `{urn:xmpp:chat-markers:0}displayed`
|
||||
- `{urn:xmpp:chat-markers:0}acknowledged`
|
||||
|
||||
Они выходят без ожидания active. Body, EME и остальные прежние important payload
|
||||
сохраняют поведение; headline и прочие unimportant данные продолжают буферизоваться.
|
||||
Явный список заменяет defaults: если уже настроили свой список, добавьте нужные
|
||||
пути туда. Для строгой прежней policy в JSON используйте `csi_important_payloads: []`;
|
||||
эквивалентный явно непустой Lua-list без новых extensions:
|
||||
`csi_important_payloads = { "{urn:xmpp:eme:0}encryption" }` (EME уже important).
|
||||
Defaults увеличивают число немедленных доставок и возможных пробуждений клиента.
|
||||
Старая importance function/native oracle сохранена; изменён именно runtime default.
|
||||
На bind и resume применяется текущая конфигурация, включая сохранённые старые slots.
|
||||
|
||||
В6TLS fixtures:100000MAM/user, roster0/5000/10000,500durable pending, default/explicit[]:
|
||||
все проверки прошли. Default inactive OMEMO legacy/2 —2.58–4.06мс,
|
||||
receipts —7.36–35.56мс; при explicit[] сохраняется hold до active.
|
||||
Headline buffering, EME delivery и точный счёт100523MAM records/user проверены.
|
||||
Это XML/wire проверка доставки ciphertext, не проверка OMEMO криптографии клиента.
|
||||
|
||||
## Большой личный архив при входе
|
||||
|
||||
Bind2 и обычный MAM metadata IQ раньше декодировали все записи ради start/end.
|
||||
На100000records,5samples:
|
||||
|
||||
| Операция | Старая медиана |0.8.2медиана |
|
||||
|---|---:|---:|
|
||||
|SASL2 Bind2 authenticate→success|2742.353мс|1.976мс|
|
||||
|TCP/STARTTLS→Bind2 success|2745.115мс|3.565мс|
|
||||
|MAM metadata IQ|2437.945мс|0.355мс|
|
||||
|
||||
Baseline0.8.0 содержит тот же прежний scan path; hash сохранён в raw report.
|
||||
Новый edges_store читает ограниченные endpoint records под существующей блокировкой,
|
||||
не создаёт/не требует index и восстанавливает partial append. Проверяются exact
|
||||
IDs/timestamps. Это операция metadata, не проверка integrity всех промежуточных
|
||||
записей. Полные MAM queries и периодическая очистка всё ещё могут читать архив.
|
||||
|
||||
## Проверка и диагностика
|
||||
|
||||
Новые scripts:
|
||||
|
||||
```bash
|
||||
python3 tests/push_latency_network.py --binary target/release/rust-xmpp --recipient hibernating
|
||||
python3 tests/push_latency_network.py --binary target/release/rust-xmpp --recipient offline
|
||||
python3 tests/personal_message_latency_network.py --binary target/release/rust-xmpp
|
||||
python3 tests/bind2_archive_latency_network.py --binary target/release/rust-xmpp --records 100000 --samples 5
|
||||
```
|
||||
|
||||
Быстрые варианты включены в verify-local.sh и CI. Push fixture использует
|
||||
loopback port5269; конфликт порта является ошибкой fixture. Global DNS/resolv.conf
|
||||
не меняются; fixture использует special-use localhost и другой account domain.
|
||||
|
||||
`message-processing-slow` warning содержит duration_ms, route и correlation connection.
|
||||
Оно фиксирует завершившуюся серверную обработку>250мс, без текста сообщения.
|
||||
Если задержка остаётся, сопоставьте его с клиентским временем, типом transport,
|
||||
CSI state, регистрацией push и внешней федерацией. Отсутствие warning не доказывает
|
||||
отсутствие сетевого/клиентского ожидания до/после обработки.
|
||||
|
||||
SM Store пока использует общий mutex для durable slot IO; обязательный fsync
|
||||
не отключён. Полные архивные запросы/maintenance, большие roster, медленный диск
|
||||
и внешняя федерация имеют собственную стоимость. Производственная квалификация
|
||||
клиентов и полная замена Prosody остаются за рамками этих fixtures.
|
||||
Итоговые тесты/сырые отчёты: VALIDATION-0.8.2.md и validation-logs-0.8.2/.
|
||||
+19
-9
@@ -1,5 +1,8 @@
|
||||
9c4e46e42c549436c503a4cd70f90efd8f7754ce8c2103a6d1352cd34174aac0 .github/workflows/ci.yml
|
||||
06e1035f41aa02cd4d0fbc14db3160290f9e5384791c1b93f3268bc67aeee3e2 AGENTS.md
|
||||
79f3f5cd46255826869c9151151d3471dd7139c2ea8fb2da4b2b6fbea113f0cf .github/workflows/ci.yml
|
||||
d9732ba55b93d2907cd1a2a0fa20bc1f46e0f2970de0e9f2bf730048212cfc31 AGENTS.md
|
||||
f8e6a12039b067ed5af42320bca42fb0555d9a5f438d1652860a5be4534469d1 Cargo.lock
|
||||
4e8d7ee328f044be284e0cb436f13a468adcac3058bbb1be381f8bff96603e5a Cargo.toml
|
||||
6be2fbcd1da8a07dda7daf3ddd727b38f363751ebace9c0b87c282f8961cffed Dockerfile
|
||||
7136ea911bb6b6d352f703f80efeebde921028ea9dc39cd0d2cd55ea465f8c37 examples/config.json
|
||||
8a65739eb5c24f10b9f2c509f0bd050fb1115706e6a41fdf804b9e0e44f583fd examples/config.toml
|
||||
ca86274bcf4dc5daebbf69c9f003854afca92954719aff068f810e0a3d615dea examples/config.yaml
|
||||
@@ -22,13 +25,13 @@ b1018e1b279c89f6cf14b4017e4f1b14e9165afef2f668cec6ac8bbe0c710d85 scripts/integr
|
||||
e08ac6136cce27cda2ddbd510da0f25750766ab0150a9f4b8f87c953276d16e9 scripts/prosody_compat/oracle.lua
|
||||
2c7a2c946885205e9df38b97305073a8ac72f58ac8ff84fc6f9af320c35bbc96 scripts/prosody_compat/verify.sh
|
||||
1b9ed063daf3e0320819b4fe0135c96dd27e49877044aa2f5093b8ab4fbda41d scripts/smoke.py
|
||||
caa74bdd83f0b952b875f613cdbd238d7f903408c2176d54178ce18994b53e95 scripts/verify-local.sh
|
||||
c32bc7ed2d5f954a2b3de06db31fb1580378259edfc8ce574aa5cd5719cc2a59 scripts/verify-local.sh
|
||||
a2e47f547ab9349f84ee6c4f8e51c147b7110b41a82c17cdb938027a84d82ef3 src/account_modules.rs
|
||||
5637f816586f0613b83e14d0ed478bd539f325b70ccbfc9fdf893adbe494453d src/admin.rs
|
||||
89d7e29d8f8daab614c9c836864b166fdaa324ca035c2d3d5f95639c24b2a9e1 src/archive.rs
|
||||
7b844cbe377b057555436378ab8bd784f99b85e7c9992cb3c5a044f40326951f src/archive.rs
|
||||
e15b079a420227ee59e3b7ac305783c51eb59d76a8fb5dd12760547b0f812107 src/auth.rs
|
||||
83ac35a4c9d20debf006fe80fba8e423c09806fb2526ff384b188ca28d612a5e src/config.rs
|
||||
55f8e68d0d41a81d2254a0c5aef4146488127f771c5b71ccd2e23d17dd1e8e79 src/csi.rs
|
||||
175ab07f17ba14c51c76857c4905b0a587d8be68e2be5179456e9c71a523c487 src/csi.rs
|
||||
834ebe4a1f2d46ab932c14c0a2c7be3375873a71ef56026d372c86e60ef041fc src/data_lock.rs
|
||||
1c8aa5cb816a32a0f9f24589ac00beba27544a83c3d9aad771523a1d1cbcd4c8 src/extras.rs
|
||||
dca8959effb123b94e1fbd42c561a79c721178c4b612a004db9f9fccb3b8950d src/federation.rs
|
||||
@@ -41,8 +44,8 @@ c604a0a764ffac6bae0c9aa15c9ef7022d35cb1f8c9159eb66257114445621c5 src/http_trans
|
||||
a21e1119ea0271b63935e92eb106ab6076f0035e6d3a06c21a352f152b9b37db src/logging.rs
|
||||
58ce2a9daa36ac26b39c8f263a16f4fa8cc4e57c91bbbf5b24a6aad3f1a326e0 src/lua.rs
|
||||
a264e2765a31c8c096462551aca229530cad356e39e338370d1a0bdd97860680 src/main.rs
|
||||
71d5d185900b9cde190e10e2f28371cd5042d98b5900b4385d823f724234fced src/mam.rs
|
||||
d8b69775bcdb01597bcaffa6123c636a226922f349beaa274fe77ff1e36bc5ef src/muc.rs
|
||||
68d97d96aa3a370474c144ccfdbf16109c46a6b14123d55d30464237ae29a958 src/mam.rs
|
||||
f17b06fe5b76381b5cdbfc2b668107f6c2b0b456c05b7a7709bea6a284531ff5 src/muc.rs
|
||||
c7ba46a140b9dce65cc573176265d6f77049ae657a70ffe59611a1c0f3ef89af src/muc_admin.rs
|
||||
ed2f07105ffeb80396aaf91c7a1fe9a8dc88d17235d03a0796372c1797c1506a src/muc_history.rs
|
||||
636f6ea7ad7cc98390ac775a93b469d2f3e0f9e138be5bd1e256cad5037c7183 src/muc_recovery.rs
|
||||
@@ -53,9 +56,9 @@ f09a6479b76c9c601a169b5f1f9cf1364e82df5ae27e4bab8d1b1428b5cad457 src/preauth.rs
|
||||
8dbb7a6b43a5f0562a775df42a959ab8badc466135a8b32da86cd79615b5acbf src/pubsub.rs
|
||||
913cd033f60a68f6c7cf9b3adbaf76db1c5c9bc88a0599196d373b16b64c0a1e src/push.rs
|
||||
bec477f2520af6a9d7ca54e43eb12158b53e3cf09057653e504dfdeab956885e src/sasl.rs
|
||||
9cfef150f88a08ee0cfb33b63b621e5ecd058daa08f19119379c099f9c7f7e7a src/server.rs
|
||||
a445dcab6d0275861b08412a4bd622cb72c3f462ebba5eaedad360e740a6513c src/server.rs
|
||||
c7450f9058528e3030df559840f87dae591a2b88be8503872956e9b78435d916 src/session_store.rs
|
||||
a4e6faac3b5ab9b7e6e2c586387cb32d18a01fbd1ef65302cbc92ccbce934044 src/sessions.rs
|
||||
1d4e890315886bc4fd0b824e034a5c1833a1f2c1347e8c3ca77254e13a2acab9 src/sessions.rs
|
||||
71d7ce1036a091d8c27016ea7ce4cffedf904dfca9d1cc4891b7dc66a1e06a4e src/storage.rs
|
||||
462b00edb2c1e02dd34524bafe4f82b5ef902028b44310ba31b085d31f4dc2aa src/tls_binding.rs
|
||||
a78592aa79d8f01c22af1457d0c3f5922863ccd3e8ebb1aa05e043cc44579b8a src/upload_migration.rs
|
||||
@@ -63,8 +66,10 @@ f9b023565711e0217238b53fb678c5fb14849cdcd2efcd0fce249018274fad69 src/wire.rs
|
||||
b4eb7a230570dfde0fd0d301a6ace36559a5eae3e1402e42c76f014f61739c24 tests/_wire_client.py
|
||||
45613ad6c53087a50c6c3a7969b30783578c334499bc6baceadb2d18b0b3ea4e tests/admin_socket.rs
|
||||
0645fda01bede4362d998ef22aefdd2c02578dd2c2aae3878d0cff87b3679835 tests/android_sasl_network.py
|
||||
ad225ade463f55bfd0734e67f5306e274cd9aab59e10e91469bf7263547cdf79 tests/archive_edges.rs
|
||||
366b315521bd4f4448c0bac17bf74ddb77a728ff41fc48e29d46377625e0330f tests/archive_mam.rs
|
||||
cb6b7bbcd1bc7ee01a4ccf892d4b6074765685c56c4b8bb46e0381b834577b6a tests/auth.rs
|
||||
011bbdd00c8ff8b648076d133086c395f6784cdcbb0c9f4e1efcbc15c1e79d9c tests/bind2_archive_latency_network.py
|
||||
b3c3470f0b9b64584abf98c26a4578b0b90089086d00f7b07187aa5f6db6a417 tests/cli.rs
|
||||
cc58adbb0fc867802b09cf7bd0d25397a273e721fbd0d0cb0ce30c19e80c13a2 tests/config.rs
|
||||
ba364e9ea561624b2c649cd0dda559e213c75e6d7080ae85f0c23f1f13d117e1 tests/csi.rs
|
||||
@@ -83,6 +88,7 @@ f1ea3eb78d5c716f4281cf17cb41b9fb22e08dbb4cf08ed9c8477c79b7d2382b tests/http_pro
|
||||
da2fc65e931ec74fbcdcd26d04f2cb073e2dc1e354139135166c79580973a477 tests/iq_errors.rs
|
||||
05160f17f8098466a67c9b069c165dc9d94a84ab03a49896169f110baf8e869a tests/logging.rs
|
||||
dfc3429e3e755d4c99ec1bd8ee6fb0f1f6aaf86414d5adaca7e9e3b18c7fe3f7 tests/logging_network.py
|
||||
0141961eadf9246ce287d7ee0dbbbf5243fd6e1332e09ccd2f6a591be419c2c3 tests/message_latency_network.py
|
||||
329ccbd4faee6cbbfa92d2fa0248844721b7ffc033baae4ec2570e9893f5df9f tests/message_routing.rs
|
||||
1134fefd5bb75884b096b8542c4f9745e64fd5dfcf87a6bba8d665aad2185a8a tests/muc_access.rs
|
||||
8120c66b85c0884619e39eea0b8761e11b41f2ed14c5be00146e35ca4714a9a0 tests/muc_crash_network.py
|
||||
@@ -91,6 +97,7 @@ dfc3429e3e755d4c99ec1bd8ee6fb0f1f6aaf86414d5adaca7e9e3b18c7fe3f7 tests/logging_
|
||||
1d06b769b59012732ba04497a995f4f54df127f58c5f4f264a5df99589f31a94 tests/muc_extensions.rs
|
||||
a8a01faf51bf82bce6cbb2616cdaabb6337047d1c5f17d5f39975c0528a1d5ae tests/muc_flow.rs
|
||||
b24bd920f096576c2009ff1ccc0366eb8734c5f0b2feb39f04ad7087268a94b9 tests/muc_history.rs
|
||||
1b34ab721eec69295e1274e44bfd108c0e117dd383624cb6c98d851eb20e7a9a tests/muc_latency_storage.rs
|
||||
1f3df5f3f39143adc2b2a419fac0cd74b2229337ffa86570261d1f6ac61137a1 tests/muc_native.rs
|
||||
3df2736ccfd25a6cab290df80ceb7474ea44bb02af6cf768a9216d6b8f7f8630 tests/muc_optional_admin.rs
|
||||
5dc93407a658b45e504b89e26cfc8f495cd28ad90d0a308b7d228a472435ff9f tests/muc_protocol.rs
|
||||
@@ -106,6 +113,7 @@ dd68c50d7d7cfd7871f69331a2787e0336dcab73762a82c599cee2a39920ae95 tests/pep_diag
|
||||
42b6c19d14e60b0c93193b4df473a0dd7cfcdb19250245ab94a7e1a237608395 tests/pep_item_order.rs
|
||||
3e349f9219da20602a239a6c4ce71dc045faf9afb1c36599e2b41e90b2423508 tests/pep_notifications_network.py
|
||||
83cea7164e5e6aadfc126b6b8349eb242bc113ba638385fa13c51ffda32aa57a tests/pep_order_network.py
|
||||
08d1a1c5585dba862b78deddab59bd45282610afa58852b29ef56f3023a79de9 tests/personal_message_latency_network.py
|
||||
6a078c3fbddff07131f3247d01fb1e13bc923888d93ea30175adda471cbece2f tests/preauth.rs
|
||||
b4048d34620bd0726cfb79d4d1cca9635f27ca8e58c8ad61d619af63672a2e09 tests/preauth_native.rs
|
||||
06a66caa73c179b9d3b239e6f4deac6fc876d8c8dfeafe302f043d85d9f4beb9 tests/preauth_network.py
|
||||
@@ -113,6 +121,7 @@ fa1eae49717ca9fb8b118f40058dff0c068c8f28823ea1b0ac42fd0c3e935bda tests/pubsub_n
|
||||
359de6dd2d960e63296f1109617f139bed2eac40409e50f72ff745897ba943ac tests/pubsub_persistence.rs
|
||||
6fb7475ca7359ad870a83d5f143a1994c7bd34e9b56e275f7496ba8da291ee17 tests/push.rs
|
||||
b8dd71798f96931f7ab4489cdb1e258556f41411815ef38d3a03e80e4e8fbdfc tests/push_discovery.py
|
||||
44c8e642f725be2292dfc5282feac8772ac34824927b63058f03f7c98285e5b6 tests/push_latency_network.py
|
||||
abf5e6a32ab542ccba5861eaaf7aed9a86b8306abfe2c329646d54e43176dc0c tests/reference/COPYING
|
||||
1ecd0a5c122910cbd066922c95ff0c32e945a07e2c9b0a37a30e5f035b5ecea6 tests/reference/configmanager.lua
|
||||
f407c6565fa73b6653e7e73204daa65ae1d87111e82c6b96154aea76497ad65d tests/reference_prosody.rs
|
||||
@@ -125,6 +134,7 @@ ddd9d5b46dc943138a334c64477fb11970b3d45e4cfbeaafc7348754f1e5e29e tests/sasl_acc
|
||||
a7d1519f4f44cc7bfad3d20bcfdf455e92abdd084feed493ffc9e0267a387740 tests/sasl_network.py
|
||||
4748fa227743686f78a0fa0364735d2dda5995f8d70a79ad03c1aa1decb42978 tests/sasl_retry_network.py
|
||||
d8882b8aabd6ff603c81fbbc259eefa68772afb2b3eec2e003ac29efd65d146b tests/sasl_web_network.py
|
||||
7d69c14ced7884450b9a1ff63cd984cdb9dfe948d6c56631c7593b6fabdabf7f tests/session_routing_isolation.rs
|
||||
d9eef5c37fcd99404619d61dbf7a2bf7673087924d93e69b08769e716afe297b tests/sm_durable_slots.rs
|
||||
0b74b2ff47b8ae681b5613bc87e914fdf8e5033156180df06ff2174df2781a5a tests/sm_restart_network.py
|
||||
72f2d60e47e5295b82d497289b78925a64a1d986c70c277015ae228d211d32bb tests/storage_accounts.rs
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# Проверка 0.8.1
|
||||
|
||||
2026-10-21, Linux x86_64, Rust1.99.1. Итоговый **единый** прогон:
|
||||
[verify.txt](validation-logs-0.8.1/verify.txt). Структурированный отчёт:
|
||||
[validation-results.json](validation-results.json).
|
||||
|
||||
| Проверка | Результат |
|
||||
|---|---|
|
||||
| cargo tests |297 passed,0failed,11ignored в обычном наборе|
|
||||
| fmt / Clippy all-targets -D warnings / release |Успешно|
|
||||
| Новые структурные регрессии |2CSI mutation/rollback +2MUC archive scan/native export/retry — успешно|
|
||||
| Сеть |Весь verify-local.sh, включая10MUC crash cases, SM restart/offline fanout, PEP/push, Android SASL, WSS/BOSH/proxy, upload/S3/migration — успешно|
|
||||
| Native reference |8module/storage +1TLS/SASL EXTERNAL federation — успешно|
|
||||
| Общая нагрузка |100accounts,500TLS,5000ping,5000messages,10000MAM,failures=[]|
|
||||
| MUC+SM нагрузка |500resources,10rooms,25000presence,1500deliveries,SIGKILL и10resume — успешно|
|
||||
| Latency regression |0/10000records в полном прогоне; отдельное сравнение0/1000/10000/100000 до/после — успешно|
|
||||
|
||||
MUC+SM connect 3.149с; join 25.54с;
|
||||
весь сценарий 39.535с; выборочный peakRSS 41.25MiB.
|
||||
|
||||
100000записей, active CSI MUC peer: median 2517.940→4.680мс,
|
||||
p95 2520.941→14.532мс. Inactive CSI median
|
||||
3866.027→4.285мс. По3samples/state для большого архива;
|
||||
это loopback измерение с проверкой точного количества MAM-записей, не production SLA.
|
||||
Сырые samples: validation-logs-0.8.1/latency-*.json.
|
||||
Причины и изменения: [MESSAGE-LATENCY.md](MESSAGE-LATENCY.md).
|
||||
|
||||
Release SHA-256: `c57757476f2019c60ac877e4a66364b17283218e3cc244ae3f29cde1d3be2977`. Baseline0.8.0 SHA-256:
|
||||
`74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a`. Отчёты автоматически связывают результат с бинарником.
|
||||
|
||||
Повторение: `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; native Lua-зависимости
|
||||
из Ubuntu packages извлечены в частный /tmp prefix из-за ограничений среды.
|
||||
Оригинальные compiled Prosody modules предоставленной ревизии сохранены.
|
||||
|
||||
Никакой fsync не отключён. Подтверждённые изменения MUC/SM остаются durable,
|
||||
CSI queue mutation откатывается при ошибке записи. Старые crash/owner/token/h/
|
||||
account deletion/recreation тесты проходят. Периодический maintenance и MAM
|
||||
queries всё ещё работают с архивом; исправление устраняет scan на каждый append,
|
||||
а не обещает постоянную стоимость любой архивной операции.
|
||||
|
||||
Ignored native9тестов выполнены отдельно внутри того же verify-local.sh.
|
||||
Оставшиеся AF_UNIX admin и>128MiB archive tests по-прежнему входят в полный CI
|
||||
entrypoint, но в этом локальном прогоне не запускались. Передачи10GiB не
|
||||
повторялись: старые0.7.8/0.7.9отчёты не относятся к новой сборке.
|
||||
Настоящие production клиенты, DNSSEC, APNs/FCM и полный Prosody parity этим
|
||||
не подтверждаются. Общие пределы: [COMPATIBILITY.md](COMPATIBILITY.md).
|
||||
@@ -0,0 +1,51 @@
|
||||
# Проверка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).
|
||||
+42
-41
@@ -1,50 +1,51 @@
|
||||
# Проверка 0.8.0
|
||||
# Проверка0.8.2
|
||||
|
||||
Linux x86_64, Rust1.99.1, 2026-10-20. Итоговый полный прогон:
|
||||
[verify.txt](validation-logs-0.8.0/verify.txt).
|
||||
Структурированный отчёт: [validation-results.json](validation-results.json).
|
||||
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 tests | 293 passed, 0 failed, 11 ignored |
|
||||
| fmt / Clippy all-targets -D warnings / release | Успешно |
|
||||
| MUC SIGKILL через настоящий STARTTLS | temporary/persistent комнаты, несколько ресурсов, show/status/roles, порядок истории, подтверждённые leave/kick/demotion/password/config, фиксированный/custom grace — успешно |
|
||||
| SM между процессами | SIGKILL/SIGTERM, legacy SASL/SASL2, counters, ack/replay, неверные owner/token/h, resource conflict — успешно |
|
||||
| MUC offline fanout | До аутентификации Bob новое сообщение Alice уже в приватной durable SM-очереди; после resume доставка без history delay — успешно |
|
||||
| Отзыв SM | Удаление аккаунта подтверждается; после повторного создания старый SM-токен отклоняется |
|
||||
| MUC+SM нагрузка | 100 аккаунтов, 500 TLS-ресурсов, 10 комнат, 25000 join presence; SIGKILL и resume представителей всех комнат — успешно |
|
||||
| Native reference | 8 module/storage + 1 TLS/SASL EXTERNAL federation — успешно |
|
||||
| Остальные сетевые регрессии | Android SASL, WSS/BOSH/proxy/altconnect, PEP/push/preauth, resource policies, upload/S3/migration — успешно |
|
||||
|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: connect 5.193 с; join 46.703 с;
|
||||
полный сценарий 78.857 с; выборочный peak RSS 41.26 MiB.
|
||||
Детали fanout, CPU, slots и replay: [muc-sm-load.json](validation-logs-0.8.0/muc-sm-load.json).
|
||||
Это loopback smoke measurement, а не гарантия production capacity.
|
||||
MUC+SM total 45.54с, peak sampled RSS 40.94MiB.
|
||||
|
||||
SHA-256 итоговой release-сборки: `74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a`.
|
||||
Основной прогон: `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.
|
||||
Воспроизведение личного push-stall: прежний0.8.1 за2с сохраняет только первое
|
||||
сообщение и не отвечаетSMACK при зависшем postTLSfeatures gateway. Новый0.8.2
|
||||
сохраняет оба и отвечаетh=4 в том же2сокне; тестовое окно не является latency SLA.
|
||||
Offline ordering baseline проверен на0.8.0; его точный hash указан отдельно.
|
||||
|
||||
Первый основной прогон остановился на пятисекундном readiness timeout нового
|
||||
нагрузочного теста после успешных обычных и сетевых проверок. В самом тесте
|
||||
таймаут увеличен до60секунд; нагрузка500 повторена с той же release-сборкой,
|
||||
а native-проверки выполнены отдельно. verify.txt объединяет успешные части
|
||||
этих запусков; первоначальный лог сохранён в initial-load-timeout.txt.
|
||||
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.
|
||||
|
||||
В процессе проверки исправлены потеря сохранённых presence/history, защита
|
||||
истёкших recovery claims, отсутствие успешного ответа при удалении аккаунта,
|
||||
учёт stanza до SM enable и потеря MUC fanout до подключения другого участника.
|
||||
Первоначальный тест последнего случая принимал позднюю историю за доставку;
|
||||
итоговый тест проверяет именно private pending queue до аутентификации.
|
||||
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).
|
||||
|
||||
Реальные TCP/TLS-сокеты после завершения процесса отсутствуют: требуется новое
|
||||
защищённое аутентифицированное соединение. SM допускает повторную доставку при
|
||||
неопределённом сетевом результате; это не exactly-once транзакция между всеми
|
||||
хранилищами и сетью. Известные встроенные возможности MUC перенесены, произвольные
|
||||
community Lua-модули не исполняются. Пределы записей и порядок восстановления:
|
||||
[MUC-RECOVERY.md](MUC-RECOVERY.md). Полная замена всей установки и проверка
|
||||
реальными клиентами этим не заявляются: [COMPATIBILITY.md](COMPATIBILITY.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.
|
||||
|
||||
10GiB upload в0.8.0 не повторялся. Исторические испытания local/MinIO находятся
|
||||
в VALIDATION-0.7.8.md и VALIDATION-0.7.9.md; их результаты не приписываются новой сборке.
|
||||
Это 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).
|
||||
@@ -0,0 +1,232 @@
|
||||
{
|
||||
"binary_sha256": "c57757476f2019c60ac877e4a66364b17283218e3cc244ae3f29cde1d3be2977",
|
||||
"scope": "loopback STARTTLS; isolated fixture; no production latency claim",
|
||||
"cases": [
|
||||
{
|
||||
"mam_enabled": false,
|
||||
"sm_enabled": true,
|
||||
"rounds": 3,
|
||||
"seeded_muc_archive_records": 0,
|
||||
"active": {
|
||||
"direct_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 2.188561000025402,
|
||||
"p95_ms": 2.3107499999923675,
|
||||
"max_ms": 2.3107499999923675,
|
||||
"samples_ms": [
|
||||
2.0956669999350197,
|
||||
2.188561000025402,
|
||||
2.3107499999923675
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.38233800002763,
|
||||
"p95_ms": 4.56658600000992,
|
||||
"max_ms": 4.56658600000992,
|
||||
"samples_ms": [
|
||||
4.381051999985175,
|
||||
4.38233800002763,
|
||||
4.56658600000992
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 3,
|
||||
"median_ms": 3.617779000023802,
|
||||
"p95_ms": 3.788068999938332,
|
||||
"max_ms": 3.788068999938332,
|
||||
"samples_ms": [
|
||||
3.264654999952654,
|
||||
3.617779000023802,
|
||||
3.788068999938332
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 3.8124090000337674,
|
||||
"p95_ms": 3.8366489999361875,
|
||||
"max_ms": 3.8366489999361875,
|
||||
"samples_ms": [
|
||||
3.3308939999869835,
|
||||
3.8124090000337674,
|
||||
3.8366489999361875
|
||||
]
|
||||
}
|
||||
},
|
||||
"inactive": {
|
||||
"direct_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 2.189512999962062,
|
||||
"p95_ms": 2.2236539999767047,
|
||||
"max_ms": 2.2236539999767047,
|
||||
"samples_ms": [
|
||||
2.1697740000945487,
|
||||
2.189512999962062,
|
||||
2.2236539999767047
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.169533999970554,
|
||||
"p95_ms": 4.451736999953937,
|
||||
"max_ms": 4.451736999953937,
|
||||
"samples_ms": [
|
||||
4.0612270000792705,
|
||||
4.169533999970554,
|
||||
4.451736999953937
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 3,
|
||||
"median_ms": 3.311576999976751,
|
||||
"p95_ms": 4.169272000012825,
|
||||
"max_ms": 4.169272000012825,
|
||||
"samples_ms": [
|
||||
3.2493040000645124,
|
||||
3.311576999976751,
|
||||
4.169272000012825
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 3.372077999983958,
|
||||
"p95_ms": 4.188992999957009,
|
||||
"max_ms": 4.188992999957009,
|
||||
"samples_ms": [
|
||||
3.315083000074992,
|
||||
3.372077999983958,
|
||||
4.188992999957009
|
||||
]
|
||||
}
|
||||
},
|
||||
"urgent_flush": {
|
||||
"samples": 1,
|
||||
"median_ms": 3.6135210000338702,
|
||||
"p95_ms": 3.6135210000338702,
|
||||
"max_ms": 3.6135210000338702,
|
||||
"samples_ms": [
|
||||
3.6135210000338702
|
||||
]
|
||||
},
|
||||
"headline_durably_buffered": true,
|
||||
"activation_drained_queue": true,
|
||||
"personal_archive_records": 0,
|
||||
"muc_archive_records": 0,
|
||||
"wire_body_deliveries": 27,
|
||||
"status": "pass"
|
||||
},
|
||||
{
|
||||
"mam_enabled": true,
|
||||
"sm_enabled": true,
|
||||
"rounds": 3,
|
||||
"seeded_muc_archive_records": 100000,
|
||||
"active": {
|
||||
"direct_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.533615000013924,
|
||||
"p95_ms": 4.635108000002219,
|
||||
"max_ms": 4.635108000002219,
|
||||
"samples_ms": [
|
||||
3.9327949999687917,
|
||||
4.533615000013924,
|
||||
4.635108000002219
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 3,
|
||||
"median_ms": 8.584756000004745,
|
||||
"p95_ms": 9.454648999962956,
|
||||
"max_ms": 9.454648999962956,
|
||||
"samples_ms": [
|
||||
8.391761999973824,
|
||||
8.584756000004745,
|
||||
9.454648999962956
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.660852999904819,
|
||||
"p95_ms": 14.45046399999228,
|
||||
"max_ms": 14.45046399999228,
|
||||
"samples_ms": [
|
||||
4.372101999933875,
|
||||
4.660852999904819,
|
||||
14.45046399999228
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.680227999983799,
|
||||
"p95_ms": 14.532127000052242,
|
||||
"max_ms": 14.532127000052242,
|
||||
"samples_ms": [
|
||||
4.40479399992455,
|
||||
4.680227999983799,
|
||||
14.532127000052242
|
||||
]
|
||||
}
|
||||
},
|
||||
"inactive": {
|
||||
"direct_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 5.005547999985538,
|
||||
"p95_ms": 5.457555000020875,
|
||||
"max_ms": 5.457555000020875,
|
||||
"samples_ms": [
|
||||
4.749896000021181,
|
||||
5.005547999985538,
|
||||
5.457555000020875
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 3,
|
||||
"median_ms": 9.33329400004368,
|
||||
"p95_ms": 9.77378499999304,
|
||||
"max_ms": 9.77378499999304,
|
||||
"samples_ms": [
|
||||
8.875206999960028,
|
||||
9.33329400004368,
|
||||
9.77378499999304
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.230191000033301,
|
||||
"p95_ms": 5.015898000010566,
|
||||
"max_ms": 5.015898000010566,
|
||||
"samples_ms": [
|
||||
4.2100000000573345,
|
||||
4.230191000033301,
|
||||
5.015898000010566
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.284876000042459,
|
||||
"p95_ms": 5.071866999969643,
|
||||
"max_ms": 5.071866999969643,
|
||||
"samples_ms": [
|
||||
4.257245000076182,
|
||||
4.284876000042459,
|
||||
5.071866999969643
|
||||
]
|
||||
}
|
||||
},
|
||||
"urgent_flush": {
|
||||
"samples": 1,
|
||||
"median_ms": 5.098277999991296,
|
||||
"p95_ms": 5.098277999991296,
|
||||
"max_ms": 5.098277999991296,
|
||||
"samples_ms": [
|
||||
5.098277999991296
|
||||
]
|
||||
},
|
||||
"headline_durably_buffered": true,
|
||||
"activation_drained_queue": true,
|
||||
"personal_archive_records": 26,
|
||||
"muc_archive_records": 100006,
|
||||
"wire_body_deliveries": 27,
|
||||
"status": "pass"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,232 @@
|
||||
{
|
||||
"binary_sha256": "74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a",
|
||||
"scope": "loopback STARTTLS; isolated fixture; no production latency claim",
|
||||
"cases": [
|
||||
{
|
||||
"mam_enabled": false,
|
||||
"sm_enabled": true,
|
||||
"rounds": 3,
|
||||
"seeded_muc_archive_records": 0,
|
||||
"active": {
|
||||
"direct_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.910238999968897,
|
||||
"p95_ms": 5.052589999991142,
|
||||
"max_ms": 5.052589999991142,
|
||||
"samples_ms": [
|
||||
4.849958000022525,
|
||||
4.910238999968897,
|
||||
5.052589999991142
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 3,
|
||||
"median_ms": 9.99482099996385,
|
||||
"p95_ms": 10.185542000044734,
|
||||
"max_ms": 10.185542000044734,
|
||||
"samples_ms": [
|
||||
9.438553999984833,
|
||||
9.99482099996385,
|
||||
10.185542000044734
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 3,
|
||||
"median_ms": 7.185058999993998,
|
||||
"p95_ms": 7.319806000054996,
|
||||
"max_ms": 7.319806000054996,
|
||||
"samples_ms": [
|
||||
5.824679000056676,
|
||||
7.185058999993998,
|
||||
7.319806000054996
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 7.9024159999789845,
|
||||
"p95_ms": 8.338388999959534,
|
||||
"max_ms": 8.338388999959534,
|
||||
"samples_ms": [
|
||||
6.551824999974087,
|
||||
7.9024159999789845,
|
||||
8.338388999959534
|
||||
]
|
||||
}
|
||||
},
|
||||
"inactive": {
|
||||
"direct_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 6.445996999900672,
|
||||
"p95_ms": 7.172110000055909,
|
||||
"max_ms": 7.172110000055909,
|
||||
"samples_ms": [
|
||||
4.87915000007888,
|
||||
6.445996999900672,
|
||||
7.172110000055909
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 3,
|
||||
"median_ms": 10.659646999897632,
|
||||
"p95_ms": 12.850071000002572,
|
||||
"max_ms": 12.850071000002572,
|
||||
"samples_ms": [
|
||||
9.232021000002533,
|
||||
10.659646999897632,
|
||||
12.850071000002572
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 3,
|
||||
"median_ms": 9.392836000074567,
|
||||
"p95_ms": 14.882106999948519,
|
||||
"max_ms": 14.882106999948519,
|
||||
"samples_ms": [
|
||||
5.741209000007075,
|
||||
9.392836000074567,
|
||||
14.882106999948519
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 10.40252400002828,
|
||||
"p95_ms": 16.07552799998757,
|
||||
"max_ms": 16.07552799998757,
|
||||
"samples_ms": [
|
||||
6.522893999999724,
|
||||
10.40252400002828,
|
||||
16.07552799998757
|
||||
]
|
||||
}
|
||||
},
|
||||
"urgent_flush": {
|
||||
"samples": 1,
|
||||
"median_ms": 6.09094300000379,
|
||||
"p95_ms": 6.09094300000379,
|
||||
"max_ms": 6.09094300000379,
|
||||
"samples_ms": [
|
||||
6.09094300000379
|
||||
]
|
||||
},
|
||||
"headline_durably_buffered": true,
|
||||
"activation_drained_queue": true,
|
||||
"personal_archive_records": 0,
|
||||
"muc_archive_records": 0,
|
||||
"wire_body_deliveries": 27,
|
||||
"status": "pass"
|
||||
},
|
||||
{
|
||||
"mam_enabled": true,
|
||||
"sm_enabled": true,
|
||||
"rounds": 3,
|
||||
"seeded_muc_archive_records": 100000,
|
||||
"active": {
|
||||
"direct_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 8.917705999920145,
|
||||
"p95_ms": 10.107052999956068,
|
||||
"max_ms": 10.107052999956068,
|
||||
"samples_ms": [
|
||||
8.420038000053864,
|
||||
8.917705999920145,
|
||||
10.107052999956068
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 3,
|
||||
"median_ms": 16.42384999991009,
|
||||
"p95_ms": 17.16581000005135,
|
||||
"max_ms": 17.16581000005135,
|
||||
"samples_ms": [
|
||||
16.391191000025174,
|
||||
16.42384999991009,
|
||||
17.16581000005135
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 3,
|
||||
"median_ms": 2517.3544539999284,
|
||||
"p95_ms": 2520.2535930000067,
|
||||
"max_ms": 2520.2535930000067,
|
||||
"samples_ms": [
|
||||
2501.2779300000147,
|
||||
2517.3544539999284,
|
||||
2520.2535930000067
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 2517.9402029999665,
|
||||
"p95_ms": 2520.940784000004,
|
||||
"max_ms": 2520.940784000004,
|
||||
"samples_ms": [
|
||||
2502.2604349999256,
|
||||
2517.9402029999665,
|
||||
2520.940784000004
|
||||
]
|
||||
}
|
||||
},
|
||||
"inactive": {
|
||||
"direct_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 24.452612999994017,
|
||||
"p95_ms": 26.775254999961362,
|
||||
"max_ms": 26.775254999961362,
|
||||
"samples_ms": [
|
||||
8.767078000005313,
|
||||
24.452612999994017,
|
||||
26.775254999961362
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 3,
|
||||
"median_ms": 36.83773900002052,
|
||||
"p95_ms": 50.86929899994175,
|
||||
"max_ms": 50.86929899994175,
|
||||
"samples_ms": [
|
||||
17.80327500000567,
|
||||
36.83773900002052,
|
||||
50.86929899994175
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 3,
|
||||
"median_ms": 3855.8298680000007,
|
||||
"p95_ms": 4150.020520999988,
|
||||
"max_ms": 4150.020520999988,
|
||||
"samples_ms": [
|
||||
2901.40261199997,
|
||||
3855.8298680000007,
|
||||
4150.020520999988
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 3,
|
||||
"median_ms": 3866.027479999957,
|
||||
"p95_ms": 4150.866962999999,
|
||||
"max_ms": 4150.866962999999,
|
||||
"samples_ms": [
|
||||
2901.4587140000003,
|
||||
3866.027479999957,
|
||||
4150.866962999999
|
||||
]
|
||||
}
|
||||
},
|
||||
"urgent_flush": {
|
||||
"samples": 1,
|
||||
"median_ms": 22.82110700002704,
|
||||
"p95_ms": 22.82110700002704,
|
||||
"max_ms": 22.82110700002704,
|
||||
"samples_ms": [
|
||||
22.82110700002704
|
||||
]
|
||||
},
|
||||
"headline_durably_buffered": true,
|
||||
"activation_drained_queue": true,
|
||||
"personal_archive_records": 26,
|
||||
"muc_archive_records": 100006,
|
||||
"wire_body_deliveries": 27,
|
||||
"status": "pass"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,522 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,522 @@
|
||||
{
|
||||
"binary_sha256": "74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a",
|
||||
"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": 5.10814599999776,
|
||||
"p95_ms": 6.436508999968282,
|
||||
"max_ms": 6.436508999968282,
|
||||
"samples_ms": [
|
||||
4.687508000017715,
|
||||
5.018378999977813,
|
||||
5.10814599999776,
|
||||
5.499873000019306,
|
||||
6.436508999968282
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 5,
|
||||
"median_ms": 10.949089000007461,
|
||||
"p95_ms": 11.194100000011531,
|
||||
"max_ms": 11.194100000011531,
|
||||
"samples_ms": [
|
||||
9.188771000026463,
|
||||
9.251739999967867,
|
||||
10.949089000007461,
|
||||
11.097223999968264,
|
||||
11.194100000011531
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 5,
|
||||
"median_ms": 6.3955159999977695,
|
||||
"p95_ms": 10.028454999996939,
|
||||
"max_ms": 10.028454999996939,
|
||||
"samples_ms": [
|
||||
5.6768890000284955,
|
||||
6.070047000036993,
|
||||
6.3955159999977695,
|
||||
6.783154999993712,
|
||||
10.028454999996939
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 5,
|
||||
"median_ms": 7.227664999959416,
|
||||
"p95_ms": 10.73728499994786,
|
||||
"max_ms": 10.73728499994786,
|
||||
"samples_ms": [
|
||||
6.249474000014743,
|
||||
6.710089000023345,
|
||||
7.227664999959416,
|
||||
7.554007000010188,
|
||||
10.73728499994786
|
||||
]
|
||||
}
|
||||
},
|
||||
"inactive": {
|
||||
"direct_peer": {
|
||||
"samples": 5,
|
||||
"median_ms": 4.543079999962174,
|
||||
"p95_ms": 5.169351999995797,
|
||||
"max_ms": 5.169351999995797,
|
||||
"samples_ms": [
|
||||
3.9885659999754353,
|
||||
4.165818999979365,
|
||||
4.543079999962174,
|
||||
4.987367000012455,
|
||||
5.169351999995797
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 5,
|
||||
"median_ms": 9.515092000015102,
|
||||
"p95_ms": 12.47698700001365,
|
||||
"max_ms": 12.47698700001365,
|
||||
"samples_ms": [
|
||||
8.106691999955729,
|
||||
8.858637999992425,
|
||||
9.515092000015102,
|
||||
9.874779000028866,
|
||||
12.47698700001365
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 5,
|
||||
"median_ms": 5.794529000013426,
|
||||
"p95_ms": 7.275404999973034,
|
||||
"max_ms": 7.275404999973034,
|
||||
"samples_ms": [
|
||||
5.51126799996382,
|
||||
5.724920000034217,
|
||||
5.794529000013426,
|
||||
6.444504000000961,
|
||||
7.275404999973034
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 5,
|
||||
"median_ms": 6.479804000036893,
|
||||
"p95_ms": 8.207588000004762,
|
||||
"max_ms": 8.207588000004762,
|
||||
"samples_ms": [
|
||||
6.077395999966484,
|
||||
6.479181999964112,
|
||||
6.479804000036893,
|
||||
7.2692859999961,
|
||||
8.207588000004762
|
||||
]
|
||||
}
|
||||
},
|
||||
"urgent_flush": {
|
||||
"samples": 1,
|
||||
"median_ms": 4.576559000042835,
|
||||
"p95_ms": 4.576559000042835,
|
||||
"max_ms": 4.576559000042835,
|
||||
"samples_ms": [
|
||||
4.576559000042835
|
||||
]
|
||||
},
|
||||
"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": 8.454973000027621,
|
||||
"p95_ms": 9.086850000016966,
|
||||
"max_ms": 9.086850000016966,
|
||||
"samples_ms": [
|
||||
7.875873999978467,
|
||||
7.919512999990275,
|
||||
8.454973000027621,
|
||||
8.744820000003983,
|
||||
9.086850000016966
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 5,
|
||||
"median_ms": 15.02084100002321,
|
||||
"p95_ms": 18.49304000000984,
|
||||
"max_ms": 18.49304000000984,
|
||||
"samples_ms": [
|
||||
14.658381000003828,
|
||||
15.0033279999775,
|
||||
15.02084100002321,
|
||||
16.241458000024522,
|
||||
18.49304000000984
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 5,
|
||||
"median_ms": 8.695557000010012,
|
||||
"p95_ms": 10.132943000030536,
|
||||
"max_ms": 10.132943000030536,
|
||||
"samples_ms": [
|
||||
6.247895000001336,
|
||||
8.190369000033115,
|
||||
8.695557000010012,
|
||||
8.886856000003718,
|
||||
10.132943000030536
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 5,
|
||||
"median_ms": 9.425391000036143,
|
||||
"p95_ms": 11.220557999990888,
|
||||
"max_ms": 11.220557999990888,
|
||||
"samples_ms": [
|
||||
6.928168999991158,
|
||||
9.00288799999771,
|
||||
9.425391000036143,
|
||||
9.836486999972749,
|
||||
11.220557999990888
|
||||
]
|
||||
}
|
||||
},
|
||||
"inactive": {
|
||||
"direct_peer": {
|
||||
"samples": 5,
|
||||
"median_ms": 8.574552000027325,
|
||||
"p95_ms": 11.412799000027007,
|
||||
"max_ms": 11.412799000027007,
|
||||
"samples_ms": [
|
||||
7.429673999979514,
|
||||
8.434421999993447,
|
||||
8.574552000027325,
|
||||
10.991448000027049,
|
||||
11.412799000027007
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 5,
|
||||
"median_ms": 16.801955000005364,
|
||||
"p95_ms": 20.960896000019602,
|
||||
"max_ms": 20.960896000019602,
|
||||
"samples_ms": [
|
||||
15.289625999969303,
|
||||
16.07350099999394,
|
||||
16.801955000005364,
|
||||
19.067943000038667,
|
||||
20.960896000019602
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 5,
|
||||
"median_ms": 9.673966000036671,
|
||||
"p95_ms": 10.545491000016227,
|
||||
"max_ms": 10.545491000016227,
|
||||
"samples_ms": [
|
||||
8.954777999974795,
|
||||
9.244574000035755,
|
||||
9.673966000036671,
|
||||
10.407988999986628,
|
||||
10.545491000016227
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 5,
|
||||
"median_ms": 10.7329940000227,
|
||||
"p95_ms": 11.54250500002263,
|
||||
"max_ms": 11.54250500002263,
|
||||
"samples_ms": [
|
||||
9.77221699997699,
|
||||
10.012581000012233,
|
||||
10.7329940000227,
|
||||
11.414449999961107,
|
||||
11.54250500002263
|
||||
]
|
||||
}
|
||||
},
|
||||
"urgent_flush": {
|
||||
"samples": 1,
|
||||
"median_ms": 8.784937999962494,
|
||||
"p95_ms": 8.784937999962494,
|
||||
"max_ms": 8.784937999962494,
|
||||
"samples_ms": [
|
||||
8.784937999962494
|
||||
]
|
||||
},
|
||||
"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": 7.590319999962958,
|
||||
"p95_ms": 8.892007999975249,
|
||||
"max_ms": 8.892007999975249,
|
||||
"samples_ms": [
|
||||
5.31427799995754,
|
||||
6.9214119999969625,
|
||||
7.590319999962958,
|
||||
7.624421999992137,
|
||||
8.892007999975249
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 5,
|
||||
"median_ms": 13.376056000026892,
|
||||
"p95_ms": 15.464272999963669,
|
||||
"max_ms": 15.464272999963669,
|
||||
"samples_ms": [
|
||||
12.23329399999784,
|
||||
13.25195099997245,
|
||||
13.376056000026892,
|
||||
14.078856999958589,
|
||||
15.464272999963669
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 5,
|
||||
"median_ms": 31.94280399998206,
|
||||
"p95_ms": 35.83487499997773,
|
||||
"max_ms": 35.83487499997773,
|
||||
"samples_ms": [
|
||||
30.683405999980096,
|
||||
31.05138800003715,
|
||||
31.94280399998206,
|
||||
34.427220999987185,
|
||||
35.83487499997773
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 5,
|
||||
"median_ms": 32.718170999999074,
|
||||
"p95_ms": 36.99477299994669,
|
||||
"max_ms": 36.99477299994669,
|
||||
"samples_ms": [
|
||||
31.32484000002478,
|
||||
31.708390999995117,
|
||||
32.718170999999074,
|
||||
35.15474099998528,
|
||||
36.99477299994669
|
||||
]
|
||||
}
|
||||
},
|
||||
"inactive": {
|
||||
"direct_peer": {
|
||||
"samples": 5,
|
||||
"median_ms": 6.955795000010312,
|
||||
"p95_ms": 7.9194580000034875,
|
||||
"max_ms": 7.9194580000034875,
|
||||
"samples_ms": [
|
||||
6.15931200002251,
|
||||
6.666912000014236,
|
||||
6.955795000010312,
|
||||
7.675652999978411,
|
||||
7.9194580000034875
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 5,
|
||||
"median_ms": 13.159411000003729,
|
||||
"p95_ms": 15.27061000001595,
|
||||
"max_ms": 15.27061000001595,
|
||||
"samples_ms": [
|
||||
12.274962999981653,
|
||||
13.057566999975734,
|
||||
13.159411000003729,
|
||||
14.08330199996044,
|
||||
15.27061000001595
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 5,
|
||||
"median_ms": 34.13865300001362,
|
||||
"p95_ms": 36.99340499997561,
|
||||
"max_ms": 36.99340499997561,
|
||||
"samples_ms": [
|
||||
30.982952999977442,
|
||||
32.71812099995941,
|
||||
34.13865300001362,
|
||||
35.38880100001052,
|
||||
36.99340499997561
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 5,
|
||||
"median_ms": 36.06873300003599,
|
||||
"p95_ms": 38.31650299997591,
|
||||
"max_ms": 38.31650299997591,
|
||||
"samples_ms": [
|
||||
33.48175599995784,
|
||||
34.2965520000007,
|
||||
36.06873300003599,
|
||||
36.353186000042115,
|
||||
38.31650299997591
|
||||
]
|
||||
}
|
||||
},
|
||||
"urgent_flush": {
|
||||
"samples": 1,
|
||||
"median_ms": 12.115028999971855,
|
||||
"p95_ms": 12.115028999971855,
|
||||
"max_ms": 12.115028999971855,
|
||||
"samples_ms": [
|
||||
12.115028999971855
|
||||
]
|
||||
},
|
||||
"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": 9.04404400000658,
|
||||
"p95_ms": 12.927059999981338,
|
||||
"max_ms": 12.927059999981338,
|
||||
"samples_ms": [
|
||||
8.594286000004558,
|
||||
9.04279899998528,
|
||||
9.04404400000658,
|
||||
10.732668000002832,
|
||||
12.927059999981338
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 5,
|
||||
"median_ms": 18.81452300000319,
|
||||
"p95_ms": 21.198468999955367,
|
||||
"max_ms": 21.198468999955367,
|
||||
"samples_ms": [
|
||||
17.06366100000878,
|
||||
17.834419999985585,
|
||||
18.81452300000319,
|
||||
18.89581300002874,
|
||||
21.198468999955367
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 5,
|
||||
"median_ms": 258.5251909999897,
|
||||
"p95_ms": 269.03445800002146,
|
||||
"max_ms": 269.03445800002146,
|
||||
"samples_ms": [
|
||||
243.74590799999396,
|
||||
244.56996899999695,
|
||||
258.5251909999897,
|
||||
260.5109279999738,
|
||||
269.03445800002146
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 5,
|
||||
"median_ms": 259.47216499997694,
|
||||
"p95_ms": 269.0669140000068,
|
||||
"max_ms": 269.0669140000068,
|
||||
"samples_ms": [
|
||||
244.58446500000264,
|
||||
245.61970199999905,
|
||||
259.47216499997694,
|
||||
261.3186459999497,
|
||||
269.0669140000068
|
||||
]
|
||||
}
|
||||
},
|
||||
"inactive": {
|
||||
"direct_peer": {
|
||||
"samples": 5,
|
||||
"median_ms": 9.321043999989342,
|
||||
"p95_ms": 11.691385000005994,
|
||||
"max_ms": 11.691385000005994,
|
||||
"samples_ms": [
|
||||
9.130955999978596,
|
||||
9.257138999998915,
|
||||
9.321043999989342,
|
||||
9.393109000029654,
|
||||
11.691385000005994
|
||||
]
|
||||
},
|
||||
"direct_application_rtt": {
|
||||
"samples": 5,
|
||||
"median_ms": 22.537706999969487,
|
||||
"p95_ms": 22.7979030000256,
|
||||
"max_ms": 22.7979030000256,
|
||||
"samples_ms": [
|
||||
18.378415999961817,
|
||||
18.92694800000072,
|
||||
22.537706999969487,
|
||||
22.614556000007724,
|
||||
22.7979030000256
|
||||
]
|
||||
},
|
||||
"muc_sender_echo": {
|
||||
"samples": 5,
|
||||
"median_ms": 257.6139750000266,
|
||||
"p95_ms": 278.14462699996056,
|
||||
"max_ms": 278.14462699996056,
|
||||
"samples_ms": [
|
||||
248.2455429999959,
|
||||
251.84251700000004,
|
||||
257.6139750000266,
|
||||
262.41991000000553,
|
||||
278.14462699996056
|
||||
]
|
||||
},
|
||||
"muc_peer": {
|
||||
"samples": 5,
|
||||
"median_ms": 258.46415800003797,
|
||||
"p95_ms": 278.8930929999651,
|
||||
"max_ms": 278.8930929999651,
|
||||
"samples_ms": [
|
||||
250.01428399997394,
|
||||
253.1065140000237,
|
||||
258.46415800003797,
|
||||
263.1856349999566,
|
||||
278.8930929999651
|
||||
]
|
||||
}
|
||||
},
|
||||
"urgent_flush": {
|
||||
"samples": 1,
|
||||
"median_ms": 11.461830000030204,
|
||||
"p95_ms": 11.461830000030204,
|
||||
"max_ms": 11.461830000030204,
|
||||
"samples_ms": [
|
||||
11.461830000030204
|
||||
]
|
||||
},
|
||||
"headline_durably_buffered": true,
|
||||
"activation_drained_queue": true,
|
||||
"personal_archive_records": 42,
|
||||
"muc_archive_records": 10010,
|
||||
"wire_body_deliveries": 43,
|
||||
"status": "pass"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"clients": 500,
|
||||
"accounts": 100,
|
||||
"rooms": 10,
|
||||
"message_rounds": 3,
|
||||
"concurrency": 20,
|
||||
"binary": "/tmp/xmpp-durable-muc-load-p95vsvii/rust-xmpp",
|
||||
"binary_sha256": "c57757476f2019c60ac877e4a66364b17283218e3cc244ae3f29cde1d3be2977",
|
||||
"before": {
|
||||
"rss_kib": 10076,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 12
|
||||
},
|
||||
"connect_seconds": 3.149,
|
||||
"connect_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 121.817,
|
||||
"p95_ms": 169.081,
|
||||
"max_ms": 257.299
|
||||
},
|
||||
"phase": "completed",
|
||||
"status": "pass",
|
||||
"elapsed_seconds": 39.535,
|
||||
"join_seconds": 25.54,
|
||||
"joined": {
|
||||
"rss_kib": 42224,
|
||||
"cpu_seconds": 14.41,
|
||||
"fd_count": 512
|
||||
},
|
||||
"join_presence_deliveries": 25000,
|
||||
"slots_joined": {
|
||||
"count": 500,
|
||||
"bytes": 309790
|
||||
},
|
||||
"message_seconds": 5.504,
|
||||
"room_messages_sent": 30,
|
||||
"room_messages_delivered": 1500,
|
||||
"before_kill": {
|
||||
"rss_kib": 42224,
|
||||
"cpu_seconds": 17.88,
|
||||
"fd_count": 512
|
||||
},
|
||||
"slots_before_kill": {
|
||||
"count": 500,
|
||||
"bytes": 514030
|
||||
},
|
||||
"restart_seconds": 2.962,
|
||||
"resumed_resources": 10,
|
||||
"replayed_pending_room_messages": 10,
|
||||
"membership_groupchat_deliveries_after_resume": 10,
|
||||
"after_resume": {
|
||||
"rss_kib": 20796,
|
||||
"cpu_seconds": 2.81,
|
||||
"fd_count": 22
|
||||
},
|
||||
"slots_after_resume": {
|
||||
"count": 500,
|
||||
"bytes": 671070
|
||||
},
|
||||
"total_seconds": 39.535,
|
||||
"peak_rss_kib": 42240
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,164 @@
|
||||
{
|
||||
"binary_source": "/tmp/rust-xmpp-0.8.2-final",
|
||||
"binary_sha256": "130431025c4c7c2f72e28b77a31c83867f857ef8bb56d1f71b10e4b19d7caaf5",
|
||||
"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": [
|
||||
0.4802089999884629,
|
||||
0.35487300010572653,
|
||||
0.3393980000510055,
|
||||
0.49224100007450033,
|
||||
0.3266720000283385
|
||||
],
|
||||
"median_ms": 0.35487300010572653,
|
||||
"p95_ms": 0.49224100007450033,
|
||||
"max_ms": 0.49224100007450033
|
||||
},
|
||||
"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": [
|
||||
1.9306740000502032,
|
||||
2.103263999970295,
|
||||
2.0025989999794547,
|
||||
1.9764060000397876,
|
||||
1.8955069999719854
|
||||
],
|
||||
"median_ms": 1.9764060000397876,
|
||||
"p95_ms": 2.103263999970295,
|
||||
"max_ms": 2.103263999970295
|
||||
},
|
||||
"tcp_starttls_to_bind2_success": {
|
||||
"samples_ms": [
|
||||
6.099597000002177,
|
||||
3.735450000021956,
|
||||
3.564695000022766,
|
||||
3.3520640001825086,
|
||||
3.3587010000246664
|
||||
],
|
||||
"median_ms": 3.564695000022766,
|
||||
"p95_ms": 6.099597000002177,
|
||||
"max_ms": 6.099597000002177
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,164 @@
|
||||
{
|
||||
"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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"clients": 500,
|
||||
"accounts": 100,
|
||||
"rooms": 10,
|
||||
"message_rounds": 3,
|
||||
"concurrency": 20,
|
||||
"binary": "/tmp/xmpp-durable-muc-load-qywt10tu/rust-xmpp",
|
||||
"binary_sha256": "130431025c4c7c2f72e28b77a31c83867f857ef8bb56d1f71b10e4b19d7caaf5",
|
||||
"before": {
|
||||
"rss_kib": 9548,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 12
|
||||
},
|
||||
"connect_seconds": 2.918,
|
||||
"connect_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 114.756,
|
||||
"p95_ms": 154.077,
|
||||
"max_ms": 206.971
|
||||
},
|
||||
"phase": "completed",
|
||||
"status": "pass",
|
||||
"elapsed_seconds": 45.54,
|
||||
"join_seconds": 30.37,
|
||||
"joined": {
|
||||
"rss_kib": 41856,
|
||||
"cpu_seconds": 16.64,
|
||||
"fd_count": 514
|
||||
},
|
||||
"join_presence_deliveries": 25000,
|
||||
"slots_joined": {
|
||||
"count": 500,
|
||||
"bytes": 309790
|
||||
},
|
||||
"message_seconds": 6.696,
|
||||
"room_messages_sent": 30,
|
||||
"room_messages_delivered": 1500,
|
||||
"before_kill": {
|
||||
"rss_kib": 41884,
|
||||
"cpu_seconds": 20.77,
|
||||
"fd_count": 512
|
||||
},
|
||||
"slots_before_kill": {
|
||||
"count": 500,
|
||||
"bytes": 514030
|
||||
},
|
||||
"restart_seconds": 2.763,
|
||||
"resumed_resources": 10,
|
||||
"replayed_pending_room_messages": 10,
|
||||
"membership_groupchat_deliveries_after_resume": 10,
|
||||
"after_resume": {
|
||||
"rss_kib": 20984,
|
||||
"cpu_seconds": 2.66,
|
||||
"fd_count": 22
|
||||
},
|
||||
"slots_after_resume": {
|
||||
"count": 500,
|
||||
"bytes": 671070
|
||||
},
|
||||
"total_seconds": 45.54,
|
||||
"peak_rss_kib": 41920
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,498 @@
|
||||
{
|
||||
"binary_sha256": "c57757476f2019c60ac877e4a66364b17283218e3cc244ae3f29cde1d3be2977",
|
||||
"scope": "loopback STARTTLS; fixture only; forced CSI dwell explicitly separated",
|
||||
"cases": [
|
||||
{
|
||||
"active": {
|
||||
"delivery": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.817936999870653,
|
||||
"p95_ms": 16.517306000196186,
|
||||
"max_ms": 16.517306000196186,
|
||||
"samples_ms": [
|
||||
4.748034999920492,
|
||||
4.817936999870653,
|
||||
16.517306000196186
|
||||
]
|
||||
},
|
||||
"sender_sm_handled": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.7456789998250315,
|
||||
"p95_ms": 16.426100000217048,
|
||||
"max_ms": 16.426100000217048,
|
||||
"samples_ms": [
|
||||
4.626912000048833,
|
||||
4.7456789998250315,
|
||||
16.426100000217048
|
||||
]
|
||||
},
|
||||
"client_receipt_end_to_end": {
|
||||
"samples": 3,
|
||||
"median_ms": 10.344463999899745,
|
||||
"p95_ms": 21.304692000057912,
|
||||
"max_ms": 21.304692000057912,
|
||||
"samples_ms": [
|
||||
9.215212999833966,
|
||||
10.344463999899745,
|
||||
21.304692000057912
|
||||
]
|
||||
},
|
||||
"receipt_return_leg": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.755211999963649,
|
||||
"p95_ms": 5.568677999917782,
|
||||
"max_ms": 5.568677999917782,
|
||||
"samples_ms": [
|
||||
4.3716870000025665,
|
||||
4.755211999963649,
|
||||
5.568677999917782
|
||||
]
|
||||
}
|
||||
},
|
||||
"inactive": {
|
||||
"delivery": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.89018300004318,
|
||||
"p95_ms": 5.018079000137732,
|
||||
"max_ms": 5.018079000137732,
|
||||
"samples_ms": [
|
||||
4.7031279998464015,
|
||||
4.89018300004318,
|
||||
5.018079000137732
|
||||
]
|
||||
},
|
||||
"sender_sm_handled": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.817049000166662,
|
||||
"p95_ms": 5.079797999997027,
|
||||
"max_ms": 5.079797999997027,
|
||||
"samples_ms": [
|
||||
4.60740799985615,
|
||||
4.817049000166662,
|
||||
5.079797999997027
|
||||
]
|
||||
},
|
||||
"client_receipt_end_to_end": {
|
||||
"samples": 3,
|
||||
"median_ms": 9.543050000047515,
|
||||
"p95_ms": 10.455423000166775,
|
||||
"max_ms": 10.455423000166775,
|
||||
"samples_ms": [
|
||||
9.271581000120932,
|
||||
9.543050000047515,
|
||||
10.455423000166775
|
||||
]
|
||||
},
|
||||
"receipt_return_leg": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.79821100020672,
|
||||
"p95_ms": 5.540141000210497,
|
||||
"max_ms": 5.540141000210497,
|
||||
"samples_ms": [
|
||||
4.134176999968986,
|
||||
4.79821100020672,
|
||||
5.540141000210497
|
||||
]
|
||||
}
|
||||
},
|
||||
"receipt_only-active": {
|
||||
"delivery_ms": 5.081753000013123,
|
||||
"sender_sm_handled_ms": 4.81151700000737,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"receipt_only-inactive": {
|
||||
"delivery_ms": 2010.5149120001897,
|
||||
"sender_sm_handled_ms": 4.923649000147634,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 2.0,
|
||||
"after_activation_ms": 1.6535839999960444
|
||||
},
|
||||
"omemo_legacy_only-active": {
|
||||
"delivery_ms": 2.6542460000200663,
|
||||
"sender_sm_handled_ms": 2.3668179999276617,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_legacy_only-inactive": {
|
||||
"delivery_ms": 2012.9395249998652,
|
||||
"sender_sm_handled_ms": 2.5684999998247804,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 2.0,
|
||||
"after_activation_ms": 3.8570599999729893
|
||||
},
|
||||
"omemo_2_only-active": {
|
||||
"delivery_ms": 2.803322000090702,
|
||||
"sender_sm_handled_ms": 2.5052290000076027,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_2_only-inactive": {
|
||||
"delivery_ms": 2006.170849,
|
||||
"sender_sm_handled_ms": 2.1322459999737475,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 2.0,
|
||||
"after_activation_ms": 1.5037350001421146
|
||||
},
|
||||
"omemo_with_eme-active": {
|
||||
"delivery_ms": 5.247026000006372,
|
||||
"sender_sm_handled_ms": 4.908949999844481,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_with_eme-inactive": {
|
||||
"delivery_ms": 6.537689000197133,
|
||||
"sender_sm_handled_ms": 6.264521000048262,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"sm_backlog": {
|
||||
"seeded_messages": 500,
|
||||
"durable_pending_before_sample": 500,
|
||||
"delivery_ms": 4.346552000015436,
|
||||
"sender_sm_handled_ms": 4.268297999942661
|
||||
},
|
||||
"status": "pass",
|
||||
"final_personal_mam_records_per_user": [
|
||||
100517,
|
||||
100517
|
||||
],
|
||||
"roster_contacts_per_user": 0,
|
||||
"seeded_personal_mam_records_per_user": 100000,
|
||||
"archive_policy": "always"
|
||||
},
|
||||
{
|
||||
"active": {
|
||||
"delivery": {
|
||||
"samples": 3,
|
||||
"median_ms": 19.816834000039307,
|
||||
"p95_ms": 34.282772000096884,
|
||||
"max_ms": 34.282772000096884,
|
||||
"samples_ms": [
|
||||
19.449956000016755,
|
||||
19.816834000039307,
|
||||
34.282772000096884
|
||||
]
|
||||
},
|
||||
"sender_sm_handled": {
|
||||
"samples": 3,
|
||||
"median_ms": 19.71937500002241,
|
||||
"p95_ms": 34.19807699992816,
|
||||
"max_ms": 34.19807699992816,
|
||||
"samples_ms": [
|
||||
19.322317000160183,
|
||||
19.71937500002241,
|
||||
34.19807699992816
|
||||
]
|
||||
},
|
||||
"client_receipt_end_to_end": {
|
||||
"samples": 3,
|
||||
"median_ms": 39.9533730001167,
|
||||
"p95_ms": 54.972926000118605,
|
||||
"max_ms": 54.972926000118605,
|
||||
"samples_ms": [
|
||||
39.557586999990235,
|
||||
39.9533730001167,
|
||||
54.972926000118605
|
||||
]
|
||||
},
|
||||
"receipt_return_leg": {
|
||||
"samples": 3,
|
||||
"median_ms": 20.108162000042284,
|
||||
"p95_ms": 20.66232500010301,
|
||||
"max_ms": 20.66232500010301,
|
||||
"samples_ms": [
|
||||
20.07690499999626,
|
||||
20.108162000042284,
|
||||
20.66232500010301
|
||||
]
|
||||
}
|
||||
},
|
||||
"inactive": {
|
||||
"delivery": {
|
||||
"samples": 3,
|
||||
"median_ms": 21.33975200013083,
|
||||
"p95_ms": 22.656845000028625,
|
||||
"max_ms": 22.656845000028625,
|
||||
"samples_ms": [
|
||||
19.565955999951257,
|
||||
21.33975200013083,
|
||||
22.656845000028625
|
||||
]
|
||||
},
|
||||
"sender_sm_handled": {
|
||||
"samples": 3,
|
||||
"median_ms": 21.24135799999749,
|
||||
"p95_ms": 22.574971000040023,
|
||||
"max_ms": 22.574971000040023,
|
||||
"samples_ms": [
|
||||
19.466118999844184,
|
||||
21.24135799999749,
|
||||
22.574971000040023
|
||||
]
|
||||
},
|
||||
"client_receipt_end_to_end": {
|
||||
"samples": 3,
|
||||
"median_ms": 42.33967000004668,
|
||||
"p95_ms": 42.759643999943364,
|
||||
"max_ms": 42.759643999943364,
|
||||
"samples_ms": [
|
||||
39.931753000018944,
|
||||
42.33967000004668,
|
||||
42.759643999943364
|
||||
]
|
||||
},
|
||||
"receipt_return_leg": {
|
||||
"samples": 3,
|
||||
"median_ms": 20.32766500019534,
|
||||
"p95_ms": 21.3887639999939,
|
||||
"max_ms": 21.3887639999939,
|
||||
"samples_ms": [
|
||||
19.65616699999373,
|
||||
20.32766500019534,
|
||||
21.3887639999939
|
||||
]
|
||||
}
|
||||
},
|
||||
"receipt_only-active": {
|
||||
"delivery_ms": 20.706908999954976,
|
||||
"sender_sm_handled_ms": 20.764115000019956,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"receipt_only-inactive": {
|
||||
"delivery_ms": 2024.603683000123,
|
||||
"sender_sm_handled_ms": 19.517362000215144,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 2.0,
|
||||
"after_activation_ms": 2.5455170000441285
|
||||
},
|
||||
"omemo_legacy_only-active": {
|
||||
"delivery_ms": 2.6721889998952975,
|
||||
"sender_sm_handled_ms": 2.4056919999111415,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_legacy_only-inactive": {
|
||||
"delivery_ms": 2008.3468199998151,
|
||||
"sender_sm_handled_ms": 2.188200999853507,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 2.0,
|
||||
"after_activation_ms": 2.0773089997874195
|
||||
},
|
||||
"omemo_2_only-active": {
|
||||
"delivery_ms": 3.2299929998771404,
|
||||
"sender_sm_handled_ms": 2.707185999952344,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_2_only-inactive": {
|
||||
"delivery_ms": 2008.4954139999809,
|
||||
"sender_sm_handled_ms": 2.423592000013741,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 2.0,
|
||||
"after_activation_ms": 2.214231000152722
|
||||
},
|
||||
"omemo_with_eme-active": {
|
||||
"delivery_ms": 22.333799999842086,
|
||||
"sender_sm_handled_ms": 22.02385900000081,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_with_eme-inactive": {
|
||||
"delivery_ms": 36.01745500009201,
|
||||
"sender_sm_handled_ms": 35.61825799988583,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"sm_backlog": {
|
||||
"seeded_messages": 500,
|
||||
"durable_pending_before_sample": 500,
|
||||
"delivery_ms": 18.815608000068096,
|
||||
"sender_sm_handled_ms": 18.779131000201232
|
||||
},
|
||||
"status": "pass",
|
||||
"final_personal_mam_records_per_user": [
|
||||
100517,
|
||||
100517
|
||||
],
|
||||
"roster_contacts_per_user": 5000,
|
||||
"seeded_personal_mam_records_per_user": 100000,
|
||||
"archive_policy": "roster"
|
||||
},
|
||||
{
|
||||
"active": {
|
||||
"delivery": {
|
||||
"samples": 3,
|
||||
"median_ms": 36.994213000070886,
|
||||
"p95_ms": 46.157045999962065,
|
||||
"max_ms": 46.157045999962065,
|
||||
"samples_ms": [
|
||||
32.354088000147385,
|
||||
36.994213000070886,
|
||||
46.157045999962065
|
||||
]
|
||||
},
|
||||
"sender_sm_handled": {
|
||||
"samples": 3,
|
||||
"median_ms": 37.03395700017609,
|
||||
"p95_ms": 46.22371799996472,
|
||||
"max_ms": 46.22371799996472,
|
||||
"samples_ms": [
|
||||
32.41653200007022,
|
||||
37.03395700017609,
|
||||
46.22371799996472
|
||||
]
|
||||
},
|
||||
"client_receipt_end_to_end": {
|
||||
"samples": 3,
|
||||
"median_ms": 70.08860200016898,
|
||||
"p95_ms": 79.21533199987607,
|
||||
"max_ms": 79.21533199987607,
|
||||
"samples_ms": [
|
||||
64.34645700005603,
|
||||
70.08860200016898,
|
||||
79.21533199987607
|
||||
]
|
||||
},
|
||||
"receipt_return_leg": {
|
||||
"samples": 3,
|
||||
"median_ms": 32.9383449998204,
|
||||
"p95_ms": 33.00209500002893,
|
||||
"max_ms": 33.00209500002893,
|
||||
"samples_ms": [
|
||||
31.880290000117384,
|
||||
32.9383449998204,
|
||||
33.00209500002893
|
||||
]
|
||||
}
|
||||
},
|
||||
"inactive": {
|
||||
"delivery": {
|
||||
"samples": 3,
|
||||
"median_ms": 36.834342000020115,
|
||||
"p95_ms": 39.296434999869234,
|
||||
"max_ms": 39.296434999869234,
|
||||
"samples_ms": [
|
||||
32.84419600004185,
|
||||
36.834342000020115,
|
||||
39.296434999869234
|
||||
]
|
||||
},
|
||||
"sender_sm_handled": {
|
||||
"samples": 3,
|
||||
"median_ms": 36.63234700002249,
|
||||
"p95_ms": 39.167316999964896,
|
||||
"max_ms": 39.167316999964896,
|
||||
"samples_ms": [
|
||||
32.901452000032805,
|
||||
36.63234700002249,
|
||||
39.167316999964896
|
||||
]
|
||||
},
|
||||
"client_receipt_end_to_end": {
|
||||
"samples": 3,
|
||||
"median_ms": 74.8365649999414,
|
||||
"p95_ms": 82.56400300001587,
|
||||
"max_ms": 82.56400300001587,
|
||||
"samples_ms": [
|
||||
65.61269799999536,
|
||||
74.8365649999414,
|
||||
82.56400300001587
|
||||
]
|
||||
},
|
||||
"receipt_return_leg": {
|
||||
"samples": 3,
|
||||
"median_ms": 35.5047470000045,
|
||||
"p95_ms": 45.70364199980759,
|
||||
"max_ms": 45.70364199980759,
|
||||
"samples_ms": [
|
||||
32.67074199993658,
|
||||
35.5047470000045,
|
||||
45.70364199980759
|
||||
]
|
||||
}
|
||||
},
|
||||
"receipt_only-active": {
|
||||
"delivery_ms": 35.88422400002855,
|
||||
"sender_sm_handled_ms": 35.596954999846275,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"receipt_only-inactive": {
|
||||
"delivery_ms": 2042.8565239999443,
|
||||
"sender_sm_handled_ms": 37.33574900002168,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 2.0,
|
||||
"after_activation_ms": 1.5680029998748068
|
||||
},
|
||||
"omemo_legacy_only-active": {
|
||||
"delivery_ms": 2.439558000105535,
|
||||
"sender_sm_handled_ms": 2.5105040001562884,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_legacy_only-inactive": {
|
||||
"delivery_ms": 2008.4427409999535,
|
||||
"sender_sm_handled_ms": 2.87832799995158,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 2.0,
|
||||
"after_activation_ms": 1.7736980000790936
|
||||
},
|
||||
"omemo_2_only-active": {
|
||||
"delivery_ms": 2.8043899999374844,
|
||||
"sender_sm_handled_ms": 2.46161499990194,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_2_only-inactive": {
|
||||
"delivery_ms": 2006.2423169999875,
|
||||
"sender_sm_handled_ms": 2.324273000112953,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 2.0,
|
||||
"after_activation_ms": 1.4116319998720428
|
||||
},
|
||||
"omemo_with_eme-active": {
|
||||
"delivery_ms": 37.31560400001399,
|
||||
"sender_sm_handled_ms": 37.00228699995023,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_with_eme-inactive": {
|
||||
"delivery_ms": 34.92131200005133,
|
||||
"sender_sm_handled_ms": 34.618570000020554,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"sm_backlog": {
|
||||
"seeded_messages": 500,
|
||||
"durable_pending_before_sample": 500,
|
||||
"delivery_ms": 37.54468600004657,
|
||||
"sender_sm_handled_ms": 37.61967200011895
|
||||
},
|
||||
"status": "pass",
|
||||
"final_personal_mam_records_per_user": [
|
||||
100517,
|
||||
100517
|
||||
],
|
||||
"roster_contacts_per_user": 10000,
|
||||
"seeded_personal_mam_records_per_user": 100000,
|
||||
"archive_policy": "roster"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"status": "pass",
|
||||
"recipient_state": "hibernating",
|
||||
"durable_pending_at_gateway_stream": {
|
||||
"push-first": true,
|
||||
"push-second": true
|
||||
},
|
||||
"observation_seconds": 2,
|
||||
"elapsed_seconds": 2.0038609230000475,
|
||||
"gateway_post_tls_stream_observed": true,
|
||||
"gateway_post_tls_stream_at_bound": true,
|
||||
"blocked_stage": "post-tls-features",
|
||||
"durable_pending": {
|
||||
"push-first": true,
|
||||
"push-second": true
|
||||
},
|
||||
"sender_sm_ack_h": [
|
||||
4
|
||||
],
|
||||
"sender_inputs": 4,
|
||||
"sender_handled_before": 2,
|
||||
"binary_version": "rust-xmpp 0.8.2 \u2014 experimental XMPP runtime",
|
||||
"binary_sha256": "130431025c4c7c2f72e28b77a31c83867f857ef8bb56d1f71b10e4b19d7caaf5",
|
||||
"scope": "loopback TLS fixture; stalled external XMPP push service; no APNs/FCM"
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"status": "reproduced-blocking",
|
||||
"observation_seconds": 2,
|
||||
"elapsed_seconds": 2.005253799000002,
|
||||
"gateway_post_tls_stream_observed": true,
|
||||
"gateway_post_tls_stream_at_bound": true,
|
||||
"blocked_stage": "post-tls-features",
|
||||
"durable_pending": {
|
||||
"push-first": true,
|
||||
"push-second": false
|
||||
},
|
||||
"sender_sm_ack_h": [],
|
||||
"sender_inputs": 4,
|
||||
"sender_handled_before": 2,
|
||||
"binary_sha256": "c57757476f2019c60ac877e4a66364b17283218e3cc244ae3f29cde1d3be2977",
|
||||
"scope": "loopback TLS fixture; stalled external XMPP push service; no APNs/FCM"
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"status": "pass",
|
||||
"recipient_state": "offline",
|
||||
"durable_pending_at_gateway_stream": {
|
||||
"push-first": true,
|
||||
"push-second": true
|
||||
},
|
||||
"observation_seconds": 2,
|
||||
"elapsed_seconds": 2.00361997899995,
|
||||
"gateway_post_tls_stream_observed": true,
|
||||
"gateway_post_tls_stream_at_bound": true,
|
||||
"blocked_stage": "post-tls-features",
|
||||
"durable_pending": {
|
||||
"push-first": true,
|
||||
"push-second": true
|
||||
},
|
||||
"sender_sm_ack_h": [
|
||||
4
|
||||
],
|
||||
"sender_inputs": 4,
|
||||
"sender_handled_before": 2,
|
||||
"binary_version": "rust-xmpp 0.8.2 \u2014 experimental XMPP runtime",
|
||||
"binary_sha256": "130431025c4c7c2f72e28b77a31c83867f857ef8bb56d1f71b10e4b19d7caaf5",
|
||||
"scope": "loopback TLS fixture; stalled external XMPP push service; no APNs/FCM"
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"status": "reproduced-blocking",
|
||||
"recipient_state": "offline",
|
||||
"durable_pending_at_gateway_stream": {
|
||||
"push-first": false,
|
||||
"push-second": false
|
||||
},
|
||||
"observation_seconds": 2,
|
||||
"elapsed_seconds": 2.007238984000196,
|
||||
"gateway_post_tls_stream_observed": true,
|
||||
"gateway_post_tls_stream_at_bound": true,
|
||||
"blocked_stage": "post-tls-features",
|
||||
"durable_pending": {
|
||||
"push-first": false,
|
||||
"push-second": false
|
||||
},
|
||||
"sender_sm_ack_h": [],
|
||||
"sender_inputs": 4,
|
||||
"sender_handled_before": 2,
|
||||
"binary_version": "rust-xmpp 0.8.0 \u2014 experimental XMPP runtime",
|
||||
"binary_sha256": "74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a",
|
||||
"scope": "loopback TLS fixture; stalled external XMPP push service; no APNs/FCM"
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"version": "0.8.0",
|
||||
"date_utc": "2026-10-20",
|
||||
"ordinary_tests": {
|
||||
"passed": 293,
|
||||
"failed": 0,
|
||||
"ignored": 11
|
||||
},
|
||||
"fmt": "passed",
|
||||
"clippy": "passed",
|
||||
"release": "passed",
|
||||
"release_binary_sha256": "74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a",
|
||||
"native_module_tests": 8,
|
||||
"native_federation_tests": 1,
|
||||
"muc_crash_network": "passed: real TLS, SIGKILL, temporary/persistent rooms, multiple resources, saved presence/roles, ordered history, acknowledged leave/kick/demotion/password/config, fixed grace, unsupported module rejection; destroy/tombstone separate log",
|
||||
"sm_restart_network": "passed: SIGKILL/SIGTERM, legacy/SASL2, counter/replay/ack pruning, owner/token/h isolation, resource conflict, account deletion/recreation revocation, MUC offline fanout durable before recipient authentication",
|
||||
"muc_sm_load": {
|
||||
"clients": 500,
|
||||
"accounts": 100,
|
||||
"rooms": 10,
|
||||
"message_rounds": 3,
|
||||
"concurrency": 20,
|
||||
"binary": "/tmp/xmpp-durable-muc-load-g0crm4ik/rust-xmpp",
|
||||
"binary_sha256": "74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a",
|
||||
"before": {
|
||||
"rss_kib": 9696,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 12
|
||||
},
|
||||
"connect_seconds": 5.193,
|
||||
"connect_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 204.391,
|
||||
"p95_ms": 270.035,
|
||||
"max_ms": 332.503
|
||||
},
|
||||
"phase": "completed",
|
||||
"status": "pass",
|
||||
"elapsed_seconds": 78.857,
|
||||
"join_seconds": 46.703,
|
||||
"joined": {
|
||||
"rss_kib": 42248,
|
||||
"cpu_seconds": 17.77,
|
||||
"fd_count": 513
|
||||
},
|
||||
"join_presence_deliveries": 25000,
|
||||
"slots_joined": {
|
||||
"count": 500,
|
||||
"bytes": 309790
|
||||
},
|
||||
"message_seconds": 10.861,
|
||||
"room_messages_sent": 30,
|
||||
"room_messages_delivered": 1500,
|
||||
"before_kill": {
|
||||
"rss_kib": 42128,
|
||||
"cpu_seconds": 23.12,
|
||||
"fd_count": 514
|
||||
},
|
||||
"slots_before_kill": {
|
||||
"count": 500,
|
||||
"bytes": 514030
|
||||
},
|
||||
"restart_seconds": 10.559,
|
||||
"resumed_resources": 10,
|
||||
"replayed_pending_room_messages": 10,
|
||||
"membership_groupchat_deliveries_after_resume": 10,
|
||||
"after_resume": {
|
||||
"rss_kib": 21168,
|
||||
"cpu_seconds": 5.03,
|
||||
"fd_count": 23
|
||||
},
|
||||
"slots_after_resume": {
|
||||
"count": 500,
|
||||
"bytes": 671070
|
||||
},
|
||||
"total_seconds": 78.857,
|
||||
"peak_rss_kib": 42252
|
||||
},
|
||||
"upload": "S3 fixture/migration/network regression passed; large 10GiB transfer retained as historical0.7.9 validation, not repeated0.8.0",
|
||||
"limitations": [
|
||||
"New TLS/SASL connection required; TCP/TLS sockets cannot survive process exit",
|
||||
"At-least-once SM replay, not cross-store/network exactly-once transaction",
|
||||
"Known builtin MUC features ported; arbitrary community Lua modules not executed",
|
||||
"Private durable SM format is Rust-specific, bounded queues and component checkpoint; see MUC-RECOVERY.md",
|
||||
"Loopback smoke tests, not production capacity or real client qualification",
|
||||
"Full Prosody parity remains subject to COMPATIBILITY.md"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,190 @@
|
||||
{
|
||||
"version": "0.8.1",
|
||||
"date_utc": "2026-10-21",
|
||||
"ordinary_tests": {
|
||||
"passed": 297,
|
||||
"failed": 0,
|
||||
"ignored": 11
|
||||
},
|
||||
"fmt": "passed",
|
||||
"clippy": "passed",
|
||||
"release": "passed",
|
||||
"release_binary_sha256": "c57757476f2019c60ac877e4a66364b17283218e3cc244ae3f29cde1d3be2977",
|
||||
"native_module_tests": 8,
|
||||
"native_federation_tests": 1,
|
||||
"full_verify": "passed in single final run with native and both500-client loads",
|
||||
"message_latency": {
|
||||
"scope": "loopback STARTTLS; isolated fixture; no production latency claim",
|
||||
"before_binary_sha256": "74882319fcb467dd1e1813ab61e85441ffd3dae2f9f7961b28fd98ec5da7c89a",
|
||||
"after_binary_sha256": "c57757476f2019c60ac877e4a66364b17283218e3cc244ae3f29cde1d3be2977",
|
||||
"muc_history_records": 100000,
|
||||
"rounds_per_state": 3,
|
||||
"active_before": {
|
||||
"samples": 3,
|
||||
"median_ms": 2517.9402029999665,
|
||||
"p95_ms": 2520.940784000004,
|
||||
"max_ms": 2520.940784000004,
|
||||
"samples_ms": [
|
||||
2502.2604349999256,
|
||||
2517.9402029999665,
|
||||
2520.940784000004
|
||||
]
|
||||
},
|
||||
"active_after": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.680227999983799,
|
||||
"p95_ms": 14.532127000052242,
|
||||
"max_ms": 14.532127000052242,
|
||||
"samples_ms": [
|
||||
4.40479399992455,
|
||||
4.680227999983799,
|
||||
14.532127000052242
|
||||
]
|
||||
},
|
||||
"inactive_before": {
|
||||
"samples": 3,
|
||||
"median_ms": 3866.027479999957,
|
||||
"p95_ms": 4150.866962999999,
|
||||
"max_ms": 4150.866962999999,
|
||||
"samples_ms": [
|
||||
2901.4587140000003,
|
||||
3866.027479999957,
|
||||
4150.866962999999
|
||||
]
|
||||
},
|
||||
"inactive_after": {
|
||||
"samples": 3,
|
||||
"median_ms": 4.284876000042459,
|
||||
"p95_ms": 5.071866999969643,
|
||||
"max_ms": 5.071866999969643,
|
||||
"samples_ms": [
|
||||
4.257245000076182,
|
||||
4.284876000042459,
|
||||
5.071866999969643
|
||||
]
|
||||
}
|
||||
},
|
||||
"general_load": {
|
||||
"total_load_wall_seconds": 8.892,
|
||||
"requested_resources": 500,
|
||||
"authenticated_bound_resources": 500,
|
||||
"connection_setup_concurrency": 50,
|
||||
"setup_wall_seconds": 0.646,
|
||||
"setup_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 60.166,
|
||||
"p95_ms": 81.981,
|
||||
"max_ms": 105.233
|
||||
},
|
||||
"ping_rounds": 10,
|
||||
"ping_round_trip": {
|
||||
"samples": 5000,
|
||||
"median_ms": 10.879,
|
||||
"p95_ms": 21.103,
|
||||
"max_ms": 23.338
|
||||
},
|
||||
"accounts": 100,
|
||||
"message_rounds": 10,
|
||||
"messages_sent": 5000,
|
||||
"messages_received": 5000,
|
||||
"message_batch_seconds": 6.009,
|
||||
"metrics_before": {
|
||||
"rss_kib": 8412,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 11
|
||||
},
|
||||
"metrics_connected": {
|
||||
"rss_kib": 27472,
|
||||
"cpu_seconds": 1.09,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_after_workload": {
|
||||
"rss_kib": 28176,
|
||||
"cpu_seconds": 11.23,
|
||||
"fd_count": 511
|
||||
},
|
||||
"metrics_two_seconds_after_disconnect": {
|
||||
"rss_kib": 28240,
|
||||
"cpu_seconds": 11.27,
|
||||
"fd_count": 11
|
||||
},
|
||||
"sampled_peak_rss_kib": 28240,
|
||||
"fd_delta_after_disconnect": 0,
|
||||
"failures": [],
|
||||
"scope": "One loopback host, 100 accounts with distinct resources, TLS+PLAIN, ping and directed messages; not a production benchmark or proof of no memory leaks.",
|
||||
"mam": {
|
||||
"archive_files": 100,
|
||||
"records": 10000,
|
||||
"expected_records": 10000
|
||||
}
|
||||
},
|
||||
"muc_sm_load": {
|
||||
"clients": 500,
|
||||
"accounts": 100,
|
||||
"rooms": 10,
|
||||
"message_rounds": 3,
|
||||
"concurrency": 20,
|
||||
"binary": "/tmp/xmpp-durable-muc-load-p95vsvii/rust-xmpp",
|
||||
"binary_sha256": "c57757476f2019c60ac877e4a66364b17283218e3cc244ae3f29cde1d3be2977",
|
||||
"before": {
|
||||
"rss_kib": 10076,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 12
|
||||
},
|
||||
"connect_seconds": 3.149,
|
||||
"connect_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 121.817,
|
||||
"p95_ms": 169.081,
|
||||
"max_ms": 257.299
|
||||
},
|
||||
"phase": "completed",
|
||||
"status": "pass",
|
||||
"elapsed_seconds": 39.535,
|
||||
"join_seconds": 25.54,
|
||||
"joined": {
|
||||
"rss_kib": 42224,
|
||||
"cpu_seconds": 14.41,
|
||||
"fd_count": 512
|
||||
},
|
||||
"join_presence_deliveries": 25000,
|
||||
"slots_joined": {
|
||||
"count": 500,
|
||||
"bytes": 309790
|
||||
},
|
||||
"message_seconds": 5.504,
|
||||
"room_messages_sent": 30,
|
||||
"room_messages_delivered": 1500,
|
||||
"before_kill": {
|
||||
"rss_kib": 42224,
|
||||
"cpu_seconds": 17.88,
|
||||
"fd_count": 512
|
||||
},
|
||||
"slots_before_kill": {
|
||||
"count": 500,
|
||||
"bytes": 514030
|
||||
},
|
||||
"restart_seconds": 2.962,
|
||||
"resumed_resources": 10,
|
||||
"replayed_pending_room_messages": 10,
|
||||
"membership_groupchat_deliveries_after_resume": 10,
|
||||
"after_resume": {
|
||||
"rss_kib": 20796,
|
||||
"cpu_seconds": 2.81,
|
||||
"fd_count": 22
|
||||
},
|
||||
"slots_after_resume": {
|
||||
"count": 500,
|
||||
"bytes": 671070
|
||||
},
|
||||
"total_seconds": 39.535,
|
||||
"peak_rss_kib": 42240
|
||||
},
|
||||
"large_upload": "10GiB not repeated in0.8.1; S3 fixture/migration/network regression passed; historical0.7.8/0.7.9 reports retained",
|
||||
"limitations": [
|
||||
"Loopback timing, not production SLA or real client qualification",
|
||||
"Required disk synchronization remains, at-least-once SM replay",
|
||||
"Periodic archive maintenance and large MAM queries still perform archive IO",
|
||||
"Full Prosody compatibility and production deployment not asserted; see COMPATIBILITY.md"
|
||||
]
|
||||
}
|
||||
+1641
-35
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user