- Уменьшено число последовательных синхронизаций до доставки: ordinary
MAM append использует один sync вместо четырёх, SM checkpoint — один вместо двух. Checksummed redo journals сохраняют commit-before-ACK и восстанавливают native archive/SM JSON exports после аварии. - Ограничены рост журналов, ротация и tombstone GC. Старый `.rappend` и legacy JSON импортируются. Retain/save/purge не возвращают удалённые записи. - Recovery синхронизирует валидный journal перед публикацией состояния; проверка checksum не заменяет durability barrier. EIO при adoption блокирует startup или offline handoff. Новые fault fixtures проверяют сохранность журнала и retry. - Replay SM проверяет checksum/JSON всех frames, но создаёт и валидирует полный Record только для последнего snapshot, сокращая работу с superseded queues. - `message-processing-slow` содержит времена MAM отправителя/получателя, доставки, carbons, offline/push и handled, а также число ресурсов/копий. Payload и секреты не добавляются в логи. - Добавлена offline команда `storage-checkpoint CONFIG`: durable экспорт и передача archive writer/подготовка отката на legacy Rust. Не запускайте другого writer и не удаляйте journals до успешного завершения команды. - Новые crash, partial-write, corruption, EIO, recovery, handoff и latency регрессии включены в GitHub Actions через verify-local.sh; отчёты сохраняются. Измерения, ограничения и эксплуатация: [docs/DURABLE-MESSAGE-IO.md](docs/DURABLE-MESSAGE-IO.md), [docs/VALIDATION-0.8.3.md](docs/VALIDATION-0.8.3.md).
This commit is contained in:
1 parent
e9329ccbb2
commit
bff609097b
53 files changed
+8924
-1792
No files matched your search
@@ -166,3 +166,9 @@ ad-hoc destroy/set-affiliation. Общие и host `modules_disabled` приме
|
||||
Ограничения журнала, native-экспорта и отката:
|
||||
[MUC-RECOVERY.md](MUC-RECOVERY.md). Итоги проверки:
|
||||
[VALIDATION-0.8.0.md](VALIDATION-0.8.0.md).
|
||||
|
||||
## Durable IO0.8.3
|
||||
|
||||
MAM/SM используют authoritative redo sidecars. Перед сменой writer или откатом
|
||||
на старую версию требуется offline `storage-checkpoint CONFIG`; после аварии
|
||||
нельзя просто удалить sidecars. Подробности — [DURABLE-MESSAGE-IO.md](DURABLE-MESSAGE-IO.md).
|
||||
@@ -0,0 +1,103 @@
|
||||
# Личные сообщения и durable IO в 0.8.3
|
||||
|
||||
В присланном журнале сервера 0.8.2 есть три `message-processing-slow` с 4792–5549 мс,
|
||||
route=local. Этот таймер начинается после приёма XML и заканчивается после
|
||||
`mark_handled`: ожидание происходит внутри обработчика. Старые события не
|
||||
содержат разбивки по этапам и сами по себе не доказывают причину медленного IO.
|
||||
Исходный пользовательский журнал не включён в архив проекта.
|
||||
|
||||
## Изменение записи
|
||||
|
||||
До 0.8.3 append в MAM требовал 4 последовательных sync: rollback marker file+dir,
|
||||
native list, удаление marker+dir. Обычное сохранение SM требовало 2: JSON file+dir.
|
||||
В TLS fixture1:1 с двумя аккаунтами, четырьмя SM-ресурсами и carbons это обычно
|
||||
16 sync на сообщение. Увеличение задержки каждого настоящего fsync/fdatasync
|
||||
внутри изолированного data_path воспроизводит задержку в несколько секунд.
|
||||
Interposer не пропускает sync и не меняет системные настройки/production.
|
||||
|
||||
В 0.8.3 принятые данные сначала фиксируются в журнале восстановления с checksum:
|
||||
|
||||
- MAM `.rredo`: native `.list` сохраняет формат Prosody; обычный append требует
|
||||
одного sync журнала. Replay восстанавливает недостающий native suffix и
|
||||
отбрасывает незавершённый хвост. Полностью записанная повреждённая запись
|
||||
вызывает ошибку. Ротация —128 frames/1 MiB плюс максимум одна 16 MiB запись.
|
||||
- SM `.wal`: authoritative полные snapshots и tombstones; readable JSON —
|
||||
восстанавливаемый экспорт. Обычное сохранение требует одного sync_data.
|
||||
Ротация —16 MiB плюс максимум один snapshot; aggregate WAL cap 512 MiB,
|
||||
logical slots по-прежнему 256 MiB/8 MiB на slot/4096 stanzas и 4096 sessions.
|
||||
Tombstone GC сначала синхронизирует удаление JSON, затем удаляет WAL.
|
||||
|
||||
Recovery синхронизирует полностью проверенный журнал перед публикацией
|
||||
восстановленного состояния: полный frame после SIGKILL может остаться
|
||||
только в page cache. Checksum подтверждает целостность, но не запись на диск. Ошибка этого sync запрещает startup/handoff.
|
||||
|
||||
Создание журналов, восстановление и ротация дополнительно синхронизируют файлы
|
||||
и каталог. Экономия относится к обычной записи, не каждому возможному запросу.
|
||||
Отключения durability или периодической записи вместо commit-before-ACK нет.
|
||||
При неопределённой ошибке SM IO store блокирует дальнейшие изменения до
|
||||
восстановления. После успешного WAL commit ошибка экспорта не откатывает память.
|
||||
Queues/archives не образуют общей транзакции с сетью: гарантия replay остаётся
|
||||
at least once, а не exactly once между всеми хранилищами.
|
||||
|
||||
## Передача данных Prosody и откат версии
|
||||
|
||||
После SIGKILL/OS crash сначала используйте 0.8.3 для восстановления redo. Не
|
||||
удаляйте `.wal`/`.rredo` вручную и не редактируйте JSON export как источник истины.
|
||||
Для смены writer или отката на старую версию остановите сервер и выполните:
|
||||
|
||||
```bash
|
||||
rust-xmpp storage-checkpoint /etc/prosody/prosody.cfg.lua
|
||||
```
|
||||
|
||||
Команда берёт data-directory lock и SM store lock, восстанавливает журналы,
|
||||
синхронизирует native archives и актуальные JSON, затем durably удаляет redo.
|
||||
При ошибке передача владения не завершена; разберите ошибку, не запускайте
|
||||
другой writer. Перед работой с production данными сохраните обычную резервную
|
||||
копию всего data_path. Native Prosody не понимает resumable SM snapshots Rust;
|
||||
checkpoint SM обеспечивает совместимый JSON для старого Rust, не переносит
|
||||
TLS/TCP/SM-сессию в Prosody. Простой graceful stop не заменяет эту явную команду.
|
||||
Нельзя одновременно изменять `.list` средствами Prosody и Rust. Неjournaled
|
||||
in-place append при активном redo считается незавершённым и может быть отброшен.
|
||||
При восстановлении согласованной копии всего data_path журнал остаётся
|
||||
авторитетным независимо от смены inode файла. Любая внешняя модификация,
|
||||
включая atomic replacement, требует handoff. Внутренний rewrite сначала
|
||||
фиксирует старый native snapshot и удаление redo, затем атомарно заменяет native
|
||||
файл: авария в промежутке сохраняет старый snapshot, после замены — старый/новый.
|
||||
Редактирование baseline in place без handoff не поддержано. Anchor проверяет
|
||||
последние 4 KiB baseline, не является checksum всего старого архива.
|
||||
|
||||
## Диагностика
|
||||
|
||||
`message-processing-slow` по-прежнему имеет threshold 250 мс, duration_ms, route
|
||||
и connection. Новые поля в integer milliseconds:
|
||||
|
||||
|Поле|Измеряемый этап|
|
||||
|---|---|
|
||||
|pre_routing_ms|Работа до личного MAM; для MUC/ранних выходов — обработка до handled|
|
||||
|sender_mam_ms|Политика и архивирование отправителя|
|
||||
|recipient_mam_ms|Проверка аккаунта, политика и архивирование получателя|
|
||||
|delivery_ms|Маршрутизация, targets, mutex и transmit|
|
||||
|carbons_ms|Выбор ресурсов и отправка carbon|
|
||||
|offline_push_ms|Offline commit и подготовка/enqueue push|
|
||||
|handled_ms|Session mutex и durable mark_handled|
|
||||
|
||||
Неисполненные этапы равны 0. target_count — выбранные локальные ресурсы,
|
||||
carbon_count — успешные carbon transmit. Это серверные этапы, не время
|
||||
отображения клиентом. Тексты сообщений, SASL и токены не логируются.
|
||||
|
||||
## Проверки и границы
|
||||
|
||||
`tests/slow_storage_latency_network.py` — реальный STARTTLS, MAM/carbons/PEP,
|
||||
контролируемый sync delay и счётчик операций. `tests/slow_storage_crash_network.py`
|
||||
— sender SM ACK, немедленный SIGKILL, проверка committed journals/обоих архивов
|
||||
до повторной аутентификации и replay всех ресурсов. Rust regressions проверяют
|
||||
partial tails, corruption, ротацию, tombstones, migration и offline handoff.
|
||||
Отдельный `journal_recovery_sync_network.py` вводит scoped EIO для WAL/redo
|
||||
и проверяет отказ startup/handoff без потери journal и успешный повтор.
|
||||
Точные измерения и результаты этой сборки — [VALIDATION.md](VALIDATION.md).
|
||||
|
||||
Общий mutex SM store, обязательное durable IO, большие pending snapshots,
|
||||
полные MAM queries/maintenance, PEP storage и federation всё ещё имеют стоимость.
|
||||
Медленный диск не становится быстрым от сокращения числа sync. Проверка на
|
||||
loopback не устанавливает причину каждого production warning; новые phase
|
||||
fields позволяют проверить это на целевой системе.
|
||||
@@ -80,7 +80,10 @@ Native state без подтверждающих Rust-метаданных са
|
||||
восстановление. Это не универсальное слияние параллельных записей двух серверов.
|
||||
|
||||
Для отката на Prosody остановите Rust и сохраните резервную копию всего
|
||||
`data_path`. Prosody использует native-экспорт и не читает Rust-журнал. Перед
|
||||
`data_path`. Начиная с0.8.3 перед сменой writer выполните новым binary
|
||||
`rust-xmpp storage-checkpoint CONFIG`: он фиксирует MAM redo и SM JSON exports.
|
||||
Это не перенос Rust SM-сессий в Prosody и не универсальная конверсия MUC journal.
|
||||
Подробности — [DURABLE-MESSAGE-IO.md](DURABLE-MESSAGE-IO.md). Prosody использует native-экспорт и не читает Rust-журнал. Перед
|
||||
возвратом с Prosody на Rust согласуйте данные и устраните устаревший
|
||||
`rust_muc_checkpoint` в остановленном экземпляре: иначе неизменившиеся native
|
||||
файлы могут быть приняты за экспорт предыдущего поколения Rust. Удаление
|
||||
|
||||
@@ -100,3 +100,8 @@ SM Store пока использует общий mutex для durable slot IO;
|
||||
и внешняя федерация имеют собственную стоимость. Производственная квалификация
|
||||
клиентов и полная замена Prosody остаются за рамками этих fixtures.
|
||||
Итоговые тесты/сырые отчёты: VALIDATION-0.8.2.md и validation-logs-0.8.2/.
|
||||
|
||||
## Продолжение0.8.3
|
||||
|
||||
Новые логи показали seconds-level серверную обработку. Добавлены redo MAM/SM
|
||||
и разбивка времени на этапы: [DURABLE-MESSAGE-IO.md](DURABLE-MESSAGE-IO.md).
|
||||
+21
-14
@@ -1,13 +1,14 @@
|
||||
79f3f5cd46255826869c9151151d3471dd7139c2ea8fb2da4b2b6fbea113f0cf .github/workflows/ci.yml
|
||||
d9732ba55b93d2907cd1a2a0fa20bc1f46e0f2970de0e9f2bf730048212cfc31 AGENTS.md
|
||||
f8e6a12039b067ed5af42320bca42fb0555d9a5f438d1652860a5be4534469d1 Cargo.lock
|
||||
4e8d7ee328f044be284e0cb436f13a468adcac3058bbb1be381f8bff96603e5a Cargo.toml
|
||||
9984392a77fcbb6d0ee70b536ecdcfc4349101bb300a509e32353aaa1134979e .github/workflows/ci.yml
|
||||
6593266e57a718762fbca26fd893fcabf1ea842dcc53dd0fd11844b2def2a543 AGENTS.md
|
||||
b83b20e991af384b349825ca39aad157d8b412d0143cc34c68567ca011bccf58 Cargo.lock
|
||||
3ecc46532a7fb1a231dbbd5337221d0c0c32ba36574e74655854f1a1d54d4581 Cargo.toml
|
||||
6be2fbcd1da8a07dda7daf3ddd727b38f363751ebace9c0b87c282f8961cffed Dockerfile
|
||||
7136ea911bb6b6d352f703f80efeebde921028ea9dc39cd0d2cd55ea465f8c37 examples/config.json
|
||||
8a65739eb5c24f10b9f2c509f0bd050fb1115706e6a41fdf804b9e0e44f583fd examples/config.toml
|
||||
ca86274bcf4dc5daebbf69c9f003854afca92954719aff068f810e0a3d615dea examples/config.yaml
|
||||
bbc2591581d382fef5fb918a480e6c338c7e3e3f2025df5509f51708534631e7 examples/converse-origin.fragment.yaml
|
||||
66ea9e2b58f6a39b70911b9981cae5e99625483af7a41168e24923464de8ae56 examples/reverse-proxy.fragment.yaml
|
||||
d13306be0ecda81ce779baa290ffb417380d525928477f16200884b5169cca33 rust-toolchain.toml
|
||||
c08bd5923906f4d2163a258c8b68dbef39ea6a3e07032f67e5c12d3d9ca81c5e scripts/ci/image-tags.py
|
||||
8820d262f8018a822b27eb9e5f0d3b9ca0c1272001164ca8a59fcd13911a5426 scripts/ci/prepare-minio.sh
|
||||
5bcd646c6c9159bbdce3a4eadce4d80d6c7422748e47c6ad04e5769efb4f2920 scripts/ci/prepare-reference.sh
|
||||
@@ -25,10 +26,10 @@ b1018e1b279c89f6cf14b4017e4f1b14e9165afef2f668cec6ac8bbe0c710d85 scripts/integr
|
||||
e08ac6136cce27cda2ddbd510da0f25750766ab0150a9f4b8f87c953276d16e9 scripts/prosody_compat/oracle.lua
|
||||
2c7a2c946885205e9df38b97305073a8ac72f58ac8ff84fc6f9af320c35bbc96 scripts/prosody_compat/verify.sh
|
||||
1b9ed063daf3e0320819b4fe0135c96dd27e49877044aa2f5093b8ab4fbda41d scripts/smoke.py
|
||||
c32bc7ed2d5f954a2b3de06db31fb1580378259edfc8ce574aa5cd5719cc2a59 scripts/verify-local.sh
|
||||
2cd5e17cdf0902ceaaca9b6e8d36ca766e33e66a06784ec97ad99165571eaf91 scripts/verify-local.sh
|
||||
a2e47f547ab9349f84ee6c4f8e51c147b7110b41a82c17cdb938027a84d82ef3 src/account_modules.rs
|
||||
5637f816586f0613b83e14d0ed478bd539f325b70ccbfc9fdf893adbe494453d src/admin.rs
|
||||
7b844cbe377b057555436378ab8bd784f99b85e7c9992cb3c5a044f40326951f src/archive.rs
|
||||
1b2011fb38482eba69dc245c367ddf496089d0cbde8a000b1ff5e9bbf8c3dea8 src/archive.rs
|
||||
e15b079a420227ee59e3b7ac305783c51eb59d76a8fb5dd12760547b0f812107 src/auth.rs
|
||||
83ac35a4c9d20debf006fe80fba8e423c09806fb2526ff384b188ca28d612a5e src/config.rs
|
||||
175ab07f17ba14c51c76857c4905b0a587d8be68e2be5179456e9c71a523c487 src/csi.rs
|
||||
@@ -43,7 +44,7 @@ c604a0a764ffac6bae0c9aa15c9ef7022d35cb1f8c9159eb66257114445621c5 src/http_trans
|
||||
5b27b6c719537af919bd6fe089574eba5e2c7bbe0d32249164914a4bb57a1427 src/lib.rs
|
||||
a21e1119ea0271b63935e92eb106ab6076f0035e6d3a06c21a352f152b9b37db src/logging.rs
|
||||
58ce2a9daa36ac26b39c8f263a16f4fa8cc4e57c91bbbf5b24a6aad3f1a326e0 src/lua.rs
|
||||
a264e2765a31c8c096462551aca229530cad356e39e338370d1a0bdd97860680 src/main.rs
|
||||
f103c15e11d61b5818e9a9491b8533b904cade7b3654c481cc61d3a7d0bb8173 src/main.rs
|
||||
68d97d96aa3a370474c144ccfdbf16109c46a6b14123d55d30464237ae29a958 src/mam.rs
|
||||
f17b06fe5b76381b5cdbfc2b668107f6c2b0b456c05b7a7709bea6a284531ff5 src/muc.rs
|
||||
c7ba46a140b9dce65cc573176265d6f77049ae657a70ffe59611a1c0f3ef89af src/muc_admin.rs
|
||||
@@ -56,10 +57,10 @@ f09a6479b76c9c601a169b5f1f9cf1364e82df5ae27e4bab8d1b1428b5cad457 src/preauth.rs
|
||||
8dbb7a6b43a5f0562a775df42a959ab8badc466135a8b32da86cd79615b5acbf src/pubsub.rs
|
||||
913cd033f60a68f6c7cf9b3adbaf76db1c5c9bc88a0599196d373b16b64c0a1e src/push.rs
|
||||
bec477f2520af6a9d7ca54e43eb12158b53e3cf09057653e504dfdeab956885e src/sasl.rs
|
||||
a445dcab6d0275861b08412a4bd622cb72c3f462ebba5eaedad360e740a6513c src/server.rs
|
||||
c7450f9058528e3030df559840f87dae591a2b88be8503872956e9b78435d916 src/session_store.rs
|
||||
1bcc6995e221f316bd4765eeb79c2ad67c9fe9e93d4254e6f6679244fc733e6f src/server.rs
|
||||
c37f6c478d45b3c0741f0b1bed95f499e67d4d3eb50b78fe606e2b518170e45f src/session_store.rs
|
||||
1d4e890315886bc4fd0b824e034a5c1833a1f2c1347e8c3ca77254e13a2acab9 src/sessions.rs
|
||||
71d7ce1036a091d8c27016ea7ce4cffedf904dfca9d1cc4891b7dc66a1e06a4e src/storage.rs
|
||||
c9fb5d18da148a6366a18afb86eaee26a67d20c7b6664e425e612d44e79a2988 src/storage.rs
|
||||
462b00edb2c1e02dd34524bafe4f82b5ef902028b44310ba31b085d31f4dc2aa src/tls_binding.rs
|
||||
a78592aa79d8f01c22af1457d0c3f5922863ccd3e8ebb1aa05e043cc44579b8a src/upload_migration.rs
|
||||
f9b023565711e0217238b53fb678c5fb14849cdcd2efcd0fce249018274fad69 src/wire.rs
|
||||
@@ -68,6 +69,7 @@ b4eb7a230570dfde0fd0d301a6ace36559a5eae3e1402e42c76f014f61739c24 tests/_wire_cl
|
||||
0645fda01bede4362d998ef22aefdd2c02578dd2c2aae3878d0cff87b3679835 tests/android_sasl_network.py
|
||||
ad225ade463f55bfd0734e67f5306e274cd9aab59e10e91469bf7263547cdf79 tests/archive_edges.rs
|
||||
366b315521bd4f4448c0bac17bf74ddb77a728ff41fc48e29d46377625e0330f tests/archive_mam.rs
|
||||
df8530d69beaf36c34e78f0f050930b7e0d6a296c22ca543dfc7533180ba0543 tests/archive_redo.rs
|
||||
cb6b7bbcd1bc7ee01a4ccf892d4b6074765685c56c4b8bb46e0381b834577b6a tests/auth.rs
|
||||
011bbdd00c8ff8b648076d133086c395f6784cdcbb0c9f4e1efcbc15c1e79d9c tests/bind2_archive_latency_network.py
|
||||
b3c3470f0b9b64584abf98c26a4578b0b90089086d00f7b07187aa5f6db6a417 tests/cli.rs
|
||||
@@ -78,6 +80,7 @@ d4d8d982c6f4ab96a809b598ea9ead7f64fa9d916547f1eb9d797aa71db64fdb tests/data_loc
|
||||
be18a83fb5884cfdbd2ddc542cb25fd07b70f139cbdce1ae67562568df42a2e2 tests/debug_legacy.rs
|
||||
63753c2e3524e8e7826bc2d48e2bd78e36e1cc56fde9da19950d5c35e1c38f77 tests/federation_tls.rs
|
||||
1aaf06ba872cb5dbe0545afffdd8efddd0eae7305de06f3b3b75c19289581865 tests/fixtures/prosody.cfg.lua
|
||||
33a8a5d9980bb9aa1162a1e3e562a9d889edd3d2f96a7073e14acc8e504bf9c7 tests/fixtures/slow_sync.c
|
||||
19d570b92075d1355257c3798e4c52e404cc356dfe5dfd0c8fb384e4e7150682 tests/gajim_discovery_network.py
|
||||
4398bf0639c31f0df328f0b0f1a5df17f2e69d2df84514845bba882146de06bc tests/gajim_features.rs
|
||||
a346e70af3657fbf56e0bb1c39c427f630de8c349e6858b8933c52f42a21ab46 tests/http_altconnect.rs
|
||||
@@ -86,6 +89,7 @@ f1ea3eb78d5c716f4281cf17cb41b9fb22e08dbb4cf08ed9c8477c79b7d2382b tests/http_pro
|
||||
7c599c83eb999cd8776f0ce6811db8f478366b840311f2e513823f70b5d7cd30 tests/http_transport.rs
|
||||
278db32ba0dec882b0af8f1969da87670ff3d2d749d32320154dabef51cff191 tests/http_upload.rs
|
||||
da2fc65e931ec74fbcdcd26d04f2cb073e2dc1e354139135166c79580973a477 tests/iq_errors.rs
|
||||
ec993a6e31d38f82abd13bd46ad99286cf13e8abea63c0385c848037a12b0cd4 tests/journal_recovery_sync_network.py
|
||||
05160f17f8098466a67c9b069c165dc9d94a84ab03a49896169f110baf8e869a tests/logging.rs
|
||||
dfc3429e3e755d4c99ec1bd8ee6fb0f1f6aaf86414d5adaca7e9e3b18c7fe3f7 tests/logging_network.py
|
||||
0141961eadf9246ce287d7ee0dbbbf5243fd6e1332e09ccd2f6a591be419c2c3 tests/message_latency_network.py
|
||||
@@ -98,7 +102,7 @@ dfc3429e3e755d4c99ec1bd8ee6fb0f1f6aaf86414d5adaca7e9e3b18c7fe3f7 tests/logging_
|
||||
a8a01faf51bf82bce6cbb2616cdaabb6337047d1c5f17d5f39975c0528a1d5ae tests/muc_flow.rs
|
||||
b24bd920f096576c2009ff1ccc0366eb8734c5f0b2feb39f04ad7087268a94b9 tests/muc_history.rs
|
||||
1b34ab721eec69295e1274e44bfd108c0e117dd383624cb6c98d851eb20e7a9a tests/muc_latency_storage.rs
|
||||
1f3df5f3f39143adc2b2a419fac0cd74b2229337ffa86570261d1f6ac61137a1 tests/muc_native.rs
|
||||
18f18362f26710043b51168675daee91ae88c071fb44e48210b49686011f8722 tests/muc_native.rs
|
||||
3df2736ccfd25a6cab290df80ceb7474ea44bb02af6cf768a9216d6b8f7f8630 tests/muc_optional_admin.rs
|
||||
5dc93407a658b45e504b89e26cfc8f495cd28ad90d0a308b7d228a472435ff9f tests/muc_protocol.rs
|
||||
ac1caa62a3cd91e74bd7100a5e542c404e97aec61a34e9627900b458c2ee3806 tests/muc_recovery.rs
|
||||
@@ -124,7 +128,7 @@ b8dd71798f96931f7ab4489cdb1e258556f41411815ef38d3a03e80e4e8fbdfc tests/push_dis
|
||||
44c8e642f725be2292dfc5282feac8772ac34824927b63058f03f7c98285e5b6 tests/push_latency_network.py
|
||||
abf5e6a32ab542ccba5861eaaf7aed9a86b8306abfe2c329646d54e43176dc0c tests/reference/COPYING
|
||||
1ecd0a5c122910cbd066922c95ff0c32e945a07e2c9b0a37a30e5f035b5ecea6 tests/reference/configmanager.lua
|
||||
f407c6565fa73b6653e7e73204daa65ae1d87111e82c6b96154aea76497ad65d tests/reference_prosody.rs
|
||||
78fb639a334846c884f2d438407d7fa8491778b695f9e6218a161ebf8acaeced tests/reference_prosody.rs
|
||||
5ab78e9319d6004d65d35cd4d04dbb99d4ea5ffd8da00473d874bb26000fce35 tests/resource_rebind.py
|
||||
2e79de5ef8d3be81ac8f715bb96797b6e8e39cdcd61c13d8d873a96b53cb52e4 tests/resource_sessions.rs
|
||||
cefd1001c9619456402223fa89e449f65599c4397f523860e965ca192a4fd915 tests/sasl2_bind.py
|
||||
@@ -135,9 +139,12 @@ a7d1519f4f44cc7bfad3d20bcfdf455e92abdd084feed493ffc9e0267a387740 tests/sasl_net
|
||||
4748fa227743686f78a0fa0364735d2dda5995f8d70a79ad03c1aa1decb42978 tests/sasl_retry_network.py
|
||||
d8882b8aabd6ff603c81fbbc259eefa68772afb2b3eec2e003ac29efd65d146b tests/sasl_web_network.py
|
||||
7d69c14ced7884450b9a1ff63cd984cdb9dfe948d6c56631c7593b6fabdabf7f tests/session_routing_isolation.rs
|
||||
7636b0767fdf24e3d4bde03779ec40309ed2b3301d4e35c6ae5f59aa065e4b2e tests/slow_storage_crash_network.py
|
||||
7492523bb226b68f72b97b028a7fafeb4fb5375b1efc6fb516400279dd0743d4 tests/slow_storage_latency_network.py
|
||||
d9eef5c37fcd99404619d61dbf7a2bf7673087924d93e69b08769e716afe297b tests/sm_durable_slots.rs
|
||||
0b74b2ff47b8ae681b5613bc87e914fdf8e5033156180df06ff2174df2781a5a tests/sm_restart_network.py
|
||||
72f2d60e47e5295b82d497289b78925a64a1d986c70c277015ae228d211d32bb tests/storage_accounts.rs
|
||||
b4c9422cdba8fd133572c0fa3a0ae6cda14edbd14db6d984d76f4409eefd1262 tests/sm_journal.rs
|
||||
8fa5de6a2291a7c35e7bbbc6334d42b4e0836a36bec252d0ef4703e8ee17aecb tests/sm_restart_network.py
|
||||
f76ad9de4c7e0140b1a4c3da06e849e28bb0562cf9b576ed85a5257f7394506b tests/storage_accounts.rs
|
||||
5c38afd5f77b5774552d12c461902ffaae21de11735560c6f0088e3dda8afa58 tests/storage_compat.rs
|
||||
8724991fdf22471952cf1a0fac863abe837069c93d3c8d2fa751af4f6bbc3e38 tests/tls_binding.rs
|
||||
5bea9b5546d3a6ae4fe78d17acbc3f6e6a1d5e1d13b32f2aa88d0e320892b7c5 tests/tls_plus_network.rs
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
# Проверка 0.8.3
|
||||
|
||||
2026-10-21, Linux x86_64, Rust 1.99.1. Итоговый единый прогон после заморозки
|
||||
исходников: [verify.txt](validation-logs-0.8.3/verify.txt).
|
||||
[Machine-readable results](validation-results-0.8.3.json).
|
||||
|
||||
|Проверка|Результат|
|
||||
|---|---|
|
||||
|Rust ordinary tests|334 passed, 0 failed, 11 ignored|
|
||||
|fmt / Clippy all-targets -D warnings / release|Успешно|
|
||||
|Новые Rust regressions|13 archive redo + 2 rewrite crash boundaries + 14 SM journal, успешно|
|
||||
|Native reference|8 module/storage + 1 TLS/SASL EXTERNAL federation, успешно|
|
||||
|Archive >128 MiB|Отдельно выполненный ignored streaming test, успешно|
|
||||
|Copy/restore и rewrite|Новый inode, потеря suffix, baseline0/nonzero, crash до/после rename — успешно|
|
||||
|Все network regressions verify-local.sh|Успешно, включая Android, WSS/BOSH, PEP, push, MUC crash/SM resume, upload/migration|
|
||||
|Slow durable IO|0/100 мс: 3 samples/scenario; 200 мс: 1 sample/scenario; exact MAM/carbons/queues и phase logs проверены|
|
||||
|SIGKILL сразу после sender SM ACK|100 мс/sync, 3 сообщения, оба MAM архива, 4 resume, 9 replay, до reauth; успешно|
|
||||
|Recovery sync EIO|WAL/redo: отказ handoff без удаления journal; WAL startup до listeners; retry и данные проверены|
|
||||
|Offline storage-checkpoint|4 SM exports, 2 archives, durable journal removal, повтор идемпотентен|
|
||||
|Общая нагрузка|500 TLS, 100 accounts, 5000 ping, 5000 messages, 10000 MAM, failures=[]|
|
||||
|MUC+SM нагрузка|500 resources, 10 rooms, 25000 presence, 1500 deliveries, SIGKILL и 10 resume; успешно|
|
||||
|
||||
## Личная доставка
|
||||
|
||||
Медианы для 3 samples, при 200 мс — одна проба; числа в миллисекундах.
|
||||
|
||||
|Sync delay / сценарий|Body 0.8.2 → 0.8.3|Sender SM ACK 0.8.2 → 0.8.3|Проб|
|
||||
|---|---:|---:|---:|
|
||||
|0 мс / 1:1|25.11 → 7.87|33.41 → 15.08|3|
|
||||
|0 мс / PEP → 1:1|29.71 → 20.94|32.25 → 21.86|3|
|
||||
|100 мс / 1:1|1232.47 → 419.68|1641.60 → 644.08|3|
|
||||
|100 мс / PEP → 1:1|2683.29 → 1378.23|3195.21 → 1581.98|3|
|
||||
|200 мс / 1:1|2836.64 → 2042.56|3643.30 → 2441.99|1|
|
||||
|200 мс / PEP → 1:1|5782.02 → 2676.28|6595.92 → 3094.95|1|
|
||||
|
||||
0 мс — отдельная последовательная quiet pair, без full verify. Финальные
|
||||
100/200 мс выполнялись при фоновой работе verify; это не изолированный CPU benchmark.
|
||||
Первый append включает создание/migration MAM journal. В обычном warm сообщении
|
||||
6 sync вместо 16; первый — 12. Окна счётчиков могут включать heartbeat, а PEP
|
||||
сценарий включает предшествующую publication. Реальные fsync/fdatasync сохранены;
|
||||
interposer замедляет только isolated data_path, не меняет host mount/DNS.
|
||||
Raw samples, hashes, sync counts и phase fields — validation-logs-0.8.3/*.json.
|
||||
|
||||
В production log 0.8.2 серверный handler занимал 4792–5549 мс; старых полей
|
||||
недостаточно, чтобы доказать конкретный IO stage. Новый таймер разделяет MAM,
|
||||
доставку, carbons и handled, без payload. Эти loopback результаты не доказывают
|
||||
время отображения реальным Conversations/Monocles на wthome.ru.
|
||||
|
||||
## Нагрузка и сопоставимость
|
||||
|
||||
Сопоставимый повтор 0.8.2 в текущей среде: total 151.334 с,
|
||||
join 104.226 с. Финальный 0.8.3: total 128.380 с,
|
||||
join 94.493 с, restart 7.557 с,
|
||||
peak RSS 40.87 MiB. По одной пробе; фоновые условия
|
||||
различаются, вывод о CPU efficiency не делается. Исторические 45.54 с из другой
|
||||
среды не являются baseline этого сравнения. Все счётчики доставки и replay
|
||||
проверены, а не только открытие порта.
|
||||
|
||||
## Durability и native handoff
|
||||
|
||||
SM WAL и archive redo авторитетны после аварии. Recovery durably adopts полный
|
||||
валидный journal перед публикацией; EIO regression выявляла отсутствие barrier
|
||||
в предварительном кандидате a5f5b3a…, теперь проходит на final binary. Отчёты
|
||||
preliminary-recovery-sync-* сохранены именно как предварительные, не результаты
|
||||
0.8.2 или final. Изначальный native MUC fixture делал in-place append без передачи
|
||||
владения: теперь он явно вызывает checkpoint_all перед оригинальным Prosody.
|
||||
Неjournaled suffix при активном redo намеренно не объявляется external commit.
|
||||
Copy/restore с новым inode сохраняет авторитет redo; внутренний rewrite
|
||||
фиксирует старый native и удаление redo перед atomic replacement. Проверены
|
||||
оба crash boundaries, потеря suffix после копирования и обе baseline длины.
|
||||
Перед native writer/откатом требуется остановка и `storage-checkpoint CONFIG`.
|
||||
[Формат, ограничения и эксплуатация](DURABLE-MESSAGE-IO.md).
|
||||
|
||||
Release SHA-256: `8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a`.
|
||||
Один final verify с XMPP_LOAD_CHECK=1 и native env; отдельно archive ignored test
|
||||
и подробные latency/crash/EIO fixtures. Исторические результаты сохранены.
|
||||
Оставшийся AF_UNIX ignored test не запускался; 10 GiB upload и реальный MinIO/AWS,
|
||||
Docker build/run, GitHub/Gitea publish и настоящие APNs/FCM не повторялись.
|
||||
Общие границы полной совместимости: [COMPATIBILITY.md](COMPATIBILITY.md).
|
||||
+68
-40
@@ -1,51 +1,79 @@
|
||||
# Проверка0.8.2
|
||||
# Проверка 0.8.3
|
||||
|
||||
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).
|
||||
2026-10-21, Linux x86_64, Rust 1.99.1. Итоговый единый прогон после заморозки
|
||||
исходников: [verify.txt](validation-logs-0.8.3/verify.txt).
|
||||
[Machine-readable results](validation-results-0.8.3.json).
|
||||
|
||||
|Проверка|Результат|
|
||||
|---|---|
|
||||
|Rust ordinary tests|305passed,0failed,11ignored|
|
||||
|Rust ordinary tests|334 passed, 0 failed, 11 ignored|
|
||||
|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 — успешно|
|
||||
|Новые Rust regressions|13 archive redo + 2 rewrite crash boundaries + 14 SM journal, успешно|
|
||||
|Native reference|8 module/storage + 1 TLS/SASL EXTERNAL federation, успешно|
|
||||
|Archive >128 MiB|Отдельно выполненный ignored streaming test, успешно|
|
||||
|Copy/restore и rewrite|Новый inode, потеря suffix, baseline0/nonzero, crash до/после rename — успешно|
|
||||
|Все network regressions verify-local.sh|Успешно, включая Android, WSS/BOSH, PEP, push, MUC crash/SM resume, upload/migration|
|
||||
|Slow durable IO|0/100 мс: 3 samples/scenario; 200 мс: 1 sample/scenario; exact MAM/carbons/queues и phase logs проверены|
|
||||
|SIGKILL сразу после sender SM ACK|100 мс/sync, 3 сообщения, оба MAM архива, 4 resume, 9 replay, до reauth; успешно|
|
||||
|Recovery sync EIO|WAL/redo: отказ handoff без удаления journal; WAL startup до listeners; retry и данные проверены|
|
||||
|Offline storage-checkpoint|4 SM exports, 2 archives, durable journal removal, повтор идемпотентен|
|
||||
|Общая нагрузка|500 TLS, 100 accounts, 5000 ping, 5000 messages, 10000 MAM, failures=[]|
|
||||
|MUC+SM нагрузка|500 resources, 10 rooms, 25000 presence, 1500 deliveries, SIGKILL и 10 resume; успешно|
|
||||
|
||||
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 указан отдельно.
|
||||
Медианы для 3 samples, при 200 мс — одна проба; числа в миллисекундах.
|
||||
|
||||
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.
|
||||
|Sync delay / сценарий|Body 0.8.2 → 0.8.3|Sender SM ACK 0.8.2 → 0.8.3|Проб|
|
||||
|---|---:|---:|---:|
|
||||
|0 мс / 1:1|25.11 → 7.87|33.41 → 15.08|3|
|
||||
|0 мс / PEP → 1:1|29.71 → 20.94|32.25 → 21.86|3|
|
||||
|100 мс / 1:1|1232.47 → 419.68|1641.60 → 644.08|3|
|
||||
|100 мс / PEP → 1:1|2683.29 → 1378.23|3195.21 → 1581.98|3|
|
||||
|200 мс / 1:1|2836.64 → 2042.56|3643.30 → 2441.99|1|
|
||||
|200 мс / PEP → 1:1|5782.02 → 2676.28|6595.92 → 3094.95|1|
|
||||
|
||||
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).
|
||||
0 мс — отдельная последовательная quiet pair, без full verify. Финальные
|
||||
100/200 мс выполнялись при фоновой работе verify; это не изолированный CPU benchmark.
|
||||
Первый append включает создание/migration MAM journal. В обычном warm сообщении
|
||||
6 sync вместо 16; первый — 12. Окна счётчиков могут включать heartbeat, а PEP
|
||||
сценарий включает предшествующую publication. Реальные fsync/fdatasync сохранены;
|
||||
interposer замедляет только isolated data_path, не меняет host mount/DNS.
|
||||
Raw samples, hashes, sync counts и phase fields — validation-logs-0.8.3/*.json.
|
||||
|
||||
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.
|
||||
В production log 0.8.2 серверный handler занимал 4792–5549 мс; старых полей
|
||||
недостаточно, чтобы доказать конкретный IO stage. Новый таймер разделяет MAM,
|
||||
доставку, carbons и handled, без payload. Эти loopback результаты не доказывают
|
||||
время отображения реальным Conversations/Monocles на wthome.ru.
|
||||
|
||||
Это 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.8.2 в текущей среде: total 151.334 с,
|
||||
join 104.226 с. Финальный 0.8.3: total 128.380 с,
|
||||
join 94.493 с, restart 7.557 с,
|
||||
peak RSS 40.87 MiB. По одной пробе; фоновые условия
|
||||
различаются, вывод о CPU efficiency не делается. Исторические 45.54 с из другой
|
||||
среды не являются baseline этого сравнения. Все счётчики доставки и replay
|
||||
проверены, а не только открытие порта.
|
||||
|
||||
## Durability и native handoff
|
||||
|
||||
SM WAL и archive redo авторитетны после аварии. Recovery durably adopts полный
|
||||
валидный journal перед публикацией; EIO regression выявляла отсутствие barrier
|
||||
в предварительном кандидате a5f5b3a…, теперь проходит на final binary. Отчёты
|
||||
preliminary-recovery-sync-* сохранены именно как предварительные, не результаты
|
||||
0.8.2 или final. Изначальный native MUC fixture делал in-place append без передачи
|
||||
владения: теперь он явно вызывает checkpoint_all перед оригинальным Prosody.
|
||||
Неjournaled suffix при активном redo намеренно не объявляется external commit.
|
||||
Copy/restore с новым inode сохраняет авторитет redo; внутренний rewrite
|
||||
фиксирует старый native и удаление redo перед atomic replacement. Проверены
|
||||
оба crash boundaries, потеря suffix после копирования и обе baseline длины.
|
||||
Перед native writer/откатом требуется остановка и `storage-checkpoint CONFIG`.
|
||||
[Формат, ограничения и эксплуатация](DURABLE-MESSAGE-IO.md).
|
||||
|
||||
Release SHA-256: `8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a`.
|
||||
Один final verify с XMPP_LOAD_CHECK=1 и native env; отдельно archive ignored test
|
||||
и подробные latency/crash/EIO fixtures. Исторические результаты сохранены.
|
||||
Оставшийся AF_UNIX ignored test не запускался; 10 GiB upload и реальный MinIO/AWS,
|
||||
Docker build/run, GitHub/Gitea publish и настоящие APNs/FCM не повторялись.
|
||||
Общие границы полной совместимости: [COMPATIBILITY.md](COMPATIBILITY.md).
|
||||
@@ -0,0 +1,2 @@
|
||||
Checking rust-xmpp v0.8.3 (/workspace/scratch/362577cdf2e0/recovered/rust-xmpp)
|
||||
Finished `dev` profile [unoptimized] target(s) in 14.04s
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"status": "pass",
|
||||
"delay_ms_per_sync": 100,
|
||||
"acknowledged_messages": 3,
|
||||
"mam_records_per_account": [
|
||||
3,
|
||||
3
|
||||
],
|
||||
"resumed_resources": 4,
|
||||
"replayed_personal_deliveries": 9,
|
||||
"offline_checkpoint": {
|
||||
"exported_sessions": 4,
|
||||
"native_archives": 2,
|
||||
"journals_removed": true,
|
||||
"second_invocation_idempotent": true
|
||||
},
|
||||
"pending_before_reauthentication": [
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
3
|
||||
],
|
||||
"sync_between_publication_and_sigkill": {
|
||||
"total": 32,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 2,
|
||||
"mam:file:fsync": 10,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:file:fdatasync": 16
|
||||
}
|
||||
},
|
||||
"binary_sha256": "8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a",
|
||||
"scope": "loopback STARTTLS; real delayed fsync/fdatasync; sender SM acknowledgement then SIGKILL; authoritative queues and MAM checked before reauthentication; at-least-once replay"
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
Compiling rust-xmpp v0.8.3 (/workspace/scratch/362577cdf2e0/recovered/rust-xmpp)
|
||||
Finished `test` profile [unoptimized] target(s) in 3.26s
|
||||
Running tests/archive_mam.rs (target/debug/deps/archive_mam-1243a5e0f6034fe2)
|
||||
|
||||
running 1 test
|
||||
test archive_larger_than_128mib_streams ... ok
|
||||
|
||||
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 13 filtered out; finished in 2.76s
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"clients": 500,
|
||||
"accounts": 100,
|
||||
"rooms": 10,
|
||||
"message_rounds": 3,
|
||||
"concurrency": 20,
|
||||
"binary": "/tmp/xmpp-durable-muc-load-ssixqqk9/rust-xmpp",
|
||||
"binary_sha256": "8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a",
|
||||
"before": {
|
||||
"rss_kib": 9516,
|
||||
"cpu_seconds": 0.01,
|
||||
"fd_count": 12
|
||||
},
|
||||
"connect_seconds": 12.048,
|
||||
"connect_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 398.044,
|
||||
"p95_ms": 1086.236,
|
||||
"max_ms": 1403.7
|
||||
},
|
||||
"phase": "completed",
|
||||
"status": "pass",
|
||||
"elapsed_seconds": 128.38,
|
||||
"join_seconds": 94.493,
|
||||
"joined": {
|
||||
"rss_kib": 41828,
|
||||
"cpu_seconds": 55.61,
|
||||
"fd_count": 513
|
||||
},
|
||||
"join_presence_deliveries": 25000,
|
||||
"slots_joined": {
|
||||
"count": 500,
|
||||
"bytes": 309790
|
||||
},
|
||||
"message_seconds": 9.585,
|
||||
"room_messages_sent": 30,
|
||||
"room_messages_delivered": 1500,
|
||||
"before_kill": {
|
||||
"rss_kib": 41740,
|
||||
"cpu_seconds": 62.6,
|
||||
"fd_count": 512
|
||||
},
|
||||
"slots_before_kill": {
|
||||
"count": 500,
|
||||
"bytes": 514030
|
||||
},
|
||||
"restart_seconds": 7.557,
|
||||
"resumed_resources": 10,
|
||||
"replayed_pending_room_messages": 10,
|
||||
"membership_groupchat_deliveries_after_resume": 10,
|
||||
"after_resume": {
|
||||
"rss_kib": 20896,
|
||||
"cpu_seconds": 7.09,
|
||||
"fd_count": 22
|
||||
},
|
||||
"slots_after_resume": {
|
||||
"count": 500,
|
||||
"bytes": 671070
|
||||
},
|
||||
"total_seconds": 128.38,
|
||||
"peak_rss_kib": 41852
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"clients": 500,
|
||||
"accounts": 100,
|
||||
"rooms": 10,
|
||||
"message_rounds": 3,
|
||||
"concurrency": 20,
|
||||
"binary": "/tmp/xmpp-durable-muc-load-wgcesopv/rust-xmpp",
|
||||
"binary_sha256": "130431025c4c7c2f72e28b77a31c83867f857ef8bb56d1f71b10e4b19d7caaf5",
|
||||
"before": {
|
||||
"rss_kib": 9468,
|
||||
"cpu_seconds": 0.0,
|
||||
"fd_count": 12
|
||||
},
|
||||
"connect_seconds": 8.677,
|
||||
"connect_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 337.216,
|
||||
"p95_ms": 475.311,
|
||||
"max_ms": 632.696
|
||||
},
|
||||
"phase": "completed",
|
||||
"status": "pass",
|
||||
"elapsed_seconds": 151.334,
|
||||
"join_seconds": 104.226,
|
||||
"joined": {
|
||||
"rss_kib": 41468,
|
||||
"cpu_seconds": 39.74,
|
||||
"fd_count": 513
|
||||
},
|
||||
"join_presence_deliveries": 25000,
|
||||
"slots_joined": {
|
||||
"count": 500,
|
||||
"bytes": 309790
|
||||
},
|
||||
"message_seconds": 17.857,
|
||||
"room_messages_sent": 30,
|
||||
"room_messages_delivered": 1500,
|
||||
"before_kill": {
|
||||
"rss_kib": 41464,
|
||||
"cpu_seconds": 48.58,
|
||||
"fd_count": 512
|
||||
},
|
||||
"slots_before_kill": {
|
||||
"count": 500,
|
||||
"bytes": 514030
|
||||
},
|
||||
"restart_seconds": 10.083,
|
||||
"resumed_resources": 10,
|
||||
"replayed_pending_room_messages": 10,
|
||||
"membership_groupchat_deliveries_after_resume": 10,
|
||||
"after_resume": {
|
||||
"rss_kib": 20660,
|
||||
"cpu_seconds": 9.73,
|
||||
"fd_count": 22
|
||||
},
|
||||
"slots_after_resume": {
|
||||
"count": 500,
|
||||
"bytes": 671070
|
||||
},
|
||||
"total_seconds": 151.334,
|
||||
"peak_rss_kib": 41476
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"status": "fail",
|
||||
"cases": [],
|
||||
"binary_sha256": "a5f5b3a552be44fb8ab8b6525dc228bc2dc97f81aecfbc559e12cc29b3e8c00b",
|
||||
"failure": ".rredo recovery skipped journal sync and falsely reported successful handoff"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"status": "fail",
|
||||
"cases": [],
|
||||
"binary_sha256": "a5f5b3a552be44fb8ab8b6525dc228bc2dc97f81aecfbc559e12cc29b3e8c00b",
|
||||
"failure": ".wal recovery skipped journal sync and falsely reported successful handoff"
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"binary_source": "/workspace/scratch/362577cdf2e0/recovered/rust-xmpp/target/release/rust-xmpp",
|
||||
"binary_sha256": "8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a",
|
||||
"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": 10000,
|
||||
"archive_bytes": 2138890,
|
||||
"archive_expires_after": "never",
|
||||
"index_present_before_start": false,
|
||||
"reconnect_samples": 2,
|
||||
"expected_metadata": {
|
||||
"start": {
|
||||
"id": "seed-0",
|
||||
"timestamp": "2026-01-01T00:00:00Z"
|
||||
},
|
||||
"end": {
|
||||
"id": "seed-9999",
|
||||
"timestamp": "2026-01-01T02:46:39Z"
|
||||
}
|
||||
},
|
||||
"observed_metadata": [
|
||||
{
|
||||
"start": {
|
||||
"id": "seed-0",
|
||||
"timestamp": "2026-01-01T00:00:00Z"
|
||||
},
|
||||
"end": {
|
||||
"id": "seed-9999",
|
||||
"timestamp": "2026-01-01T02:46:39Z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": {
|
||||
"id": "seed-0",
|
||||
"timestamp": "2026-01-01T00:00:00Z"
|
||||
},
|
||||
"end": {
|
||||
"id": "seed-9999",
|
||||
"timestamp": "2026-01-01T02:46:39Z"
|
||||
}
|
||||
}
|
||||
],
|
||||
"mam_metadata_iq": {
|
||||
"samples_ms": [
|
||||
1.066574000105902,
|
||||
0.6786549997741531
|
||||
],
|
||||
"median_ms": 0.8726144999400276,
|
||||
"p95_ms": 1.066574000105902,
|
||||
"max_ms": 1.066574000105902
|
||||
},
|
||||
"observed_iq_metadata": [
|
||||
{
|
||||
"start": {
|
||||
"id": "seed-0",
|
||||
"timestamp": "2026-01-01T00:00:00Z"
|
||||
},
|
||||
"end": {
|
||||
"id": "seed-9999",
|
||||
"timestamp": "2026-01-01T02:46:39Z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"start": {
|
||||
"id": "seed-0",
|
||||
"timestamp": "2026-01-01T00:00:00Z"
|
||||
},
|
||||
"end": {
|
||||
"id": "seed-9999",
|
||||
"timestamp": "2026-01-01T02:46:39Z"
|
||||
}
|
||||
}
|
||||
],
|
||||
"sasl2_bind2_success": {
|
||||
"samples_ms": [
|
||||
5.694160000075499,
|
||||
4.350195999904827
|
||||
],
|
||||
"median_ms": 5.022177999990163,
|
||||
"p95_ms": 5.694160000075499,
|
||||
"max_ms": 5.694160000075499
|
||||
},
|
||||
"tcp_starttls_to_bind2_success": {
|
||||
"samples_ms": [
|
||||
51.93691700014824,
|
||||
9.144003000074008
|
||||
],
|
||||
"median_ms": 30.540460000111125,
|
||||
"p95_ms": 51.93691700014824,
|
||||
"max_ms": 51.93691700014824
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,418 @@
|
||||
{
|
||||
"binary_sha256": "8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a",
|
||||
"scope": "loopback STARTTLS; fixture only; forced CSI dwell explicitly separated",
|
||||
"cases": [
|
||||
{
|
||||
"active": {
|
||||
"delivery": {
|
||||
"samples": 1,
|
||||
"median_ms": 42.84763399982694,
|
||||
"p95_ms": 42.84763399982694,
|
||||
"max_ms": 42.84763399982694,
|
||||
"samples_ms": [
|
||||
42.84763399982694
|
||||
]
|
||||
},
|
||||
"sender_sm_handled": {
|
||||
"samples": 1,
|
||||
"median_ms": 41.45799199977773,
|
||||
"p95_ms": 41.45799199977773,
|
||||
"max_ms": 41.45799199977773,
|
||||
"samples_ms": [
|
||||
41.45799199977773
|
||||
]
|
||||
},
|
||||
"client_receipt_end_to_end": {
|
||||
"samples": 1,
|
||||
"median_ms": 51.320845000191184,
|
||||
"p95_ms": 51.320845000191184,
|
||||
"max_ms": 51.320845000191184,
|
||||
"samples_ms": [
|
||||
51.320845000191184
|
||||
]
|
||||
},
|
||||
"receipt_return_leg": {
|
||||
"samples": 1,
|
||||
"median_ms": 8.362257000044337,
|
||||
"p95_ms": 8.362257000044337,
|
||||
"max_ms": 8.362257000044337,
|
||||
"samples_ms": [
|
||||
8.362257000044337
|
||||
]
|
||||
}
|
||||
},
|
||||
"inactive": {
|
||||
"delivery": {
|
||||
"samples": 1,
|
||||
"median_ms": 7.461921999947663,
|
||||
"p95_ms": 7.461921999947663,
|
||||
"max_ms": 7.461921999947663,
|
||||
"samples_ms": [
|
||||
7.461921999947663
|
||||
]
|
||||
},
|
||||
"sender_sm_handled": {
|
||||
"samples": 1,
|
||||
"median_ms": 6.771670000034646,
|
||||
"p95_ms": 6.771670000034646,
|
||||
"max_ms": 6.771670000034646,
|
||||
"samples_ms": [
|
||||
6.771670000034646
|
||||
]
|
||||
},
|
||||
"client_receipt_end_to_end": {
|
||||
"samples": 1,
|
||||
"median_ms": 12.700967000000674,
|
||||
"p95_ms": 12.700967000000674,
|
||||
"max_ms": 12.700967000000674,
|
||||
"samples_ms": [
|
||||
12.700967000000674
|
||||
]
|
||||
},
|
||||
"receipt_return_leg": {
|
||||
"samples": 1,
|
||||
"median_ms": 5.201973000112048,
|
||||
"p95_ms": 5.201973000112048,
|
||||
"max_ms": 5.201973000112048,
|
||||
"samples_ms": [
|
||||
5.201973000112048
|
||||
]
|
||||
}
|
||||
},
|
||||
"receipt_only-active": {
|
||||
"delivery_ms": 23.464398000214715,
|
||||
"sender_sm_handled_ms": 23.388774000068224,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"receipt_only-inactive": {
|
||||
"delivery_ms": 11.619346000316,
|
||||
"sender_sm_handled_ms": 11.170642000251974,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_legacy_only-active": {
|
||||
"delivery_ms": 3.3123490002253675,
|
||||
"sender_sm_handled_ms": 3.2682549999663024,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_legacy_only-inactive": {
|
||||
"delivery_ms": 5.355494000014005,
|
||||
"sender_sm_handled_ms": 4.585807000239583,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_2_only-active": {
|
||||
"delivery_ms": 6.6929370000252675,
|
||||
"sender_sm_handled_ms": 5.942287999914697,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_2_only-inactive": {
|
||||
"delivery_ms": 7.484531000045536,
|
||||
"sender_sm_handled_ms": 7.103434999862657,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_with_eme-active": {
|
||||
"delivery_ms": 8.187372000065807,
|
||||
"sender_sm_handled_ms": 7.642809000117268,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_with_eme-inactive": {
|
||||
"delivery_ms": 8.972958999947878,
|
||||
"sender_sm_handled_ms": 8.508876000178134,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"marker_received-active": {
|
||||
"delivery_ms": 7.674009000311344,
|
||||
"sender_sm_handled_ms": 7.3800410000330885,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"marker_received-inactive": {
|
||||
"delivery_ms": 5.613406000065879,
|
||||
"sender_sm_handled_ms": 5.646823999995831,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"marker_displayed-active": {
|
||||
"delivery_ms": 5.180439000014303,
|
||||
"sender_sm_handled_ms": 4.853748000186897,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"marker_displayed-inactive": {
|
||||
"delivery_ms": 8.705914999609377,
|
||||
"sender_sm_handled_ms": 8.28981999984535,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"marker_acknowledged-active": {
|
||||
"delivery_ms": 6.910242000230937,
|
||||
"sender_sm_handled_ms": 6.799871000112034,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"marker_acknowledged-inactive": {
|
||||
"delivery_ms": 8.707511000011436,
|
||||
"sender_sm_handled_ms": 8.398837999720854,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"low_priority_headline-active": {
|
||||
"delivery_ms": 4.267847999926744,
|
||||
"sender_sm_handled_ms": 4.236566000145103,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"low_priority_headline-inactive": {
|
||||
"delivery_ms": 108.03854200003116,
|
||||
"sender_sm_handled_ms": 2.853955999853497,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 0.1,
|
||||
"after_activation_ms": 3.106009000021004
|
||||
},
|
||||
"sm_backlog": {
|
||||
"seeded_messages": 30,
|
||||
"durable_pending_before_sample": 30,
|
||||
"delivery_ms": 8.070619000136503,
|
||||
"sender_sm_handled_ms": 7.959626000229036
|
||||
},
|
||||
"status": "pass",
|
||||
"final_personal_mam_records_per_user": [
|
||||
1045,
|
||||
1045
|
||||
],
|
||||
"csi_policy": "default",
|
||||
"baseline_expect_held": false,
|
||||
"roster_contacts_per_user": 0,
|
||||
"seeded_personal_mam_records_per_user": 1000,
|
||||
"archive_policy": "always"
|
||||
},
|
||||
{
|
||||
"active": {
|
||||
"delivery": {
|
||||
"samples": 1,
|
||||
"median_ms": 9.351153999887174,
|
||||
"p95_ms": 9.351153999887174,
|
||||
"max_ms": 9.351153999887174,
|
||||
"samples_ms": [
|
||||
9.351153999887174
|
||||
]
|
||||
},
|
||||
"sender_sm_handled": {
|
||||
"samples": 1,
|
||||
"median_ms": 9.169040999950084,
|
||||
"p95_ms": 9.169040999950084,
|
||||
"max_ms": 9.169040999950084,
|
||||
"samples_ms": [
|
||||
9.169040999950084
|
||||
]
|
||||
},
|
||||
"client_receipt_end_to_end": {
|
||||
"samples": 1,
|
||||
"median_ms": 13.487032000284671,
|
||||
"p95_ms": 13.487032000284671,
|
||||
"max_ms": 13.487032000284671,
|
||||
"samples_ms": [
|
||||
13.487032000284671
|
||||
]
|
||||
},
|
||||
"receipt_return_leg": {
|
||||
"samples": 1,
|
||||
"median_ms": 4.101098000319325,
|
||||
"p95_ms": 4.101098000319325,
|
||||
"max_ms": 4.101098000319325,
|
||||
"samples_ms": [
|
||||
4.101098000319325
|
||||
]
|
||||
}
|
||||
},
|
||||
"inactive": {
|
||||
"delivery": {
|
||||
"samples": 1,
|
||||
"median_ms": 5.198949999794422,
|
||||
"p95_ms": 5.198949999794422,
|
||||
"max_ms": 5.198949999794422,
|
||||
"samples_ms": [
|
||||
5.198949999794422
|
||||
]
|
||||
},
|
||||
"sender_sm_handled": {
|
||||
"samples": 1,
|
||||
"median_ms": 5.164645999684581,
|
||||
"p95_ms": 5.164645999684581,
|
||||
"max_ms": 5.164645999684581,
|
||||
"samples_ms": [
|
||||
5.164645999684581
|
||||
]
|
||||
},
|
||||
"client_receipt_end_to_end": {
|
||||
"samples": 1,
|
||||
"median_ms": 13.508577999800764,
|
||||
"p95_ms": 13.508577999800764,
|
||||
"max_ms": 13.508577999800764,
|
||||
"samples_ms": [
|
||||
13.508577999800764
|
||||
]
|
||||
},
|
||||
"receipt_return_leg": {
|
||||
"samples": 1,
|
||||
"median_ms": 8.226426999954128,
|
||||
"p95_ms": 8.226426999954128,
|
||||
"max_ms": 8.226426999954128,
|
||||
"samples_ms": [
|
||||
8.226426999954128
|
||||
]
|
||||
}
|
||||
},
|
||||
"receipt_only-active": {
|
||||
"delivery_ms": 8.37234799973885,
|
||||
"sender_sm_handled_ms": 7.964516999891202,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"receipt_only-inactive": {
|
||||
"delivery_ms": 109.20343799989496,
|
||||
"sender_sm_handled_ms": 5.452117000004364,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 0.1,
|
||||
"after_activation_ms": 2.879265000046871
|
||||
},
|
||||
"omemo_legacy_only-active": {
|
||||
"delivery_ms": 4.961447999903612,
|
||||
"sender_sm_handled_ms": 4.207620999750361,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_legacy_only-inactive": {
|
||||
"delivery_ms": 107.77542400001039,
|
||||
"sender_sm_handled_ms": 4.299592999814195,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 0.1,
|
||||
"after_activation_ms": 1.5704200000072888
|
||||
},
|
||||
"omemo_2_only-active": {
|
||||
"delivery_ms": 3.2654749998073385,
|
||||
"sender_sm_handled_ms": 3.3216599999832397,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_2_only-inactive": {
|
||||
"delivery_ms": 109.47085399993739,
|
||||
"sender_sm_handled_ms": 5.282463000185089,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 0.1,
|
||||
"after_activation_ms": 2.073672999813425
|
||||
},
|
||||
"omemo_with_eme-active": {
|
||||
"delivery_ms": 6.262568000238389,
|
||||
"sender_sm_handled_ms": 6.371549000050436,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"omemo_with_eme-inactive": {
|
||||
"delivery_ms": 5.960880999737128,
|
||||
"sender_sm_handled_ms": 5.667837000146392,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"marker_received-active": {
|
||||
"delivery_ms": 7.435425000039686,
|
||||
"sender_sm_handled_ms": 7.0634520002386125,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"marker_received-inactive": {
|
||||
"delivery_ms": 110.35115000004225,
|
||||
"sender_sm_handled_ms": 5.86408199978905,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 0.1,
|
||||
"after_activation_ms": 2.434945000004518
|
||||
},
|
||||
"marker_displayed-active": {
|
||||
"delivery_ms": 3.6287610000727,
|
||||
"sender_sm_handled_ms": 3.696032999869203,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"marker_displayed-inactive": {
|
||||
"delivery_ms": 112.26732199975231,
|
||||
"sender_sm_handled_ms": 8.923948999836284,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 0.1,
|
||||
"after_activation_ms": 1.43316000003324
|
||||
},
|
||||
"marker_acknowledged-active": {
|
||||
"delivery_ms": 4.8418340002172044,
|
||||
"sender_sm_handled_ms": 4.916578000120353,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"marker_acknowledged-inactive": {
|
||||
"delivery_ms": 110.98447399990619,
|
||||
"sender_sm_handled_ms": 5.764318000274216,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 0.1,
|
||||
"after_activation_ms": 3.3109219998550543
|
||||
},
|
||||
"low_priority_headline-active": {
|
||||
"delivery_ms": 4.907228000320174,
|
||||
"sender_sm_handled_ms": 4.593587000272237,
|
||||
"durably_csi_buffered": false,
|
||||
"forced_dwell_seconds": 0,
|
||||
"after_activation_ms": null
|
||||
},
|
||||
"low_priority_headline-inactive": {
|
||||
"delivery_ms": 106.62631800005329,
|
||||
"sender_sm_handled_ms": 2.990170999964903,
|
||||
"durably_csi_buffered": true,
|
||||
"forced_dwell_seconds": 0.1,
|
||||
"after_activation_ms": 1.6857880000316072
|
||||
},
|
||||
"sm_backlog": {
|
||||
"seeded_messages": 30,
|
||||
"durable_pending_before_sample": 30,
|
||||
"delivery_ms": 8.221272999890061,
|
||||
"sender_sm_handled_ms": 8.186153000224294
|
||||
},
|
||||
"status": "pass",
|
||||
"final_personal_mam_records_per_user": [
|
||||
1045,
|
||||
1045
|
||||
],
|
||||
"csi_policy": "native",
|
||||
"baseline_expect_held": false,
|
||||
"roster_contacts_per_user": 0,
|
||||
"seeded_personal_mam_records_per_user": 1000,
|
||||
"archive_policy": "always"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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.013597706999917,
|
||||
"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.3 \u2014 experimental XMPP runtime",
|
||||
"binary_sha256": "8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a",
|
||||
"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.1132061280000016,
|
||||
"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.3 \u2014 experimental XMPP runtime",
|
||||
"binary_sha256": "8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a",
|
||||
"scope": "loopback TLS fixture; stalled external XMPP push service; no APNs/FCM"
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"status": "pass",
|
||||
"cases": [
|
||||
{
|
||||
"suffix": ".wal",
|
||||
"status": "pass",
|
||||
"checkpoint_rejected_sync_failure": true,
|
||||
"journals_preserved_on_failure": 4,
|
||||
"serve_rejected_before_listeners": true,
|
||||
"clean_retry_preserved_sessions": 4,
|
||||
"clean_retry_preserved_archives": 2
|
||||
},
|
||||
{
|
||||
"suffix": ".rredo",
|
||||
"status": "pass",
|
||||
"checkpoint_rejected_sync_failure": true,
|
||||
"journals_preserved_on_failure": 2,
|
||||
"serve_rejected_before_listeners": false,
|
||||
"clean_retry_preserved_sessions": 4,
|
||||
"clean_retry_preserved_archives": 2
|
||||
}
|
||||
],
|
||||
"binary_sha256": "8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a"
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
Compiling rust-xmpp v0.8.3 (/workspace/scratch/362577cdf2e0/recovered/rust-xmpp)
|
||||
Finished `release` profile [optimized] target(s) in 1m 43s
|
||||
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"binary_sha256": "8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a",
|
||||
"scope": "loopback STARTTLS; four SM resources/two accounts; MAM + pending avatar metadata PEP; fixture-only fsync/fdatasync including data directories; real sync retained; operation windows include background SM heartbeat",
|
||||
"cases": [
|
||||
{
|
||||
"samples": [
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 0,
|
||||
"delivery_ms": {
|
||||
"direct": 2042.56345,
|
||||
"sent": 2239.283932,
|
||||
"received": 2442.564925
|
||||
},
|
||||
"sender_sm_handled_ms": 2441.985416,
|
||||
"publication_plus_delivery_ms": 2442.641984,
|
||||
"sync": {
|
||||
"total": 12,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 2,
|
||||
"mam:file:fsync": 6,
|
||||
"sm:file:fdatasync": 4
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 0,
|
||||
"delivery_ms": {
|
||||
"direct": 2676.283903,
|
||||
"sent": 2476.200907,
|
||||
"received": 3095.924978
|
||||
},
|
||||
"sender_sm_handled_ms": 3094.949323,
|
||||
"publication_plus_delivery_ms": 3096.115223,
|
||||
"sync": {
|
||||
"total": 15,
|
||||
"by_store_kind_op": {
|
||||
"mam:file:fsync": 2,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:file:fdatasync": 9
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
}
|
||||
],
|
||||
"mam_records_per_account": [
|
||||
102,
|
||||
102
|
||||
],
|
||||
"status": "pass",
|
||||
"delay_ms_per_sync": 200,
|
||||
"server_message_processing_slow_events": [
|
||||
{
|
||||
"duration_ms": 2440,
|
||||
"route": "local",
|
||||
"pre_routing_ms": 0,
|
||||
"sender_mam_ms": 813,
|
||||
"recipient_mam_ms": 816,
|
||||
"delivery_ms": 202,
|
||||
"carbons_ms": 404,
|
||||
"offline_push_ms": 0,
|
||||
"handled_ms": 202,
|
||||
"target_count": 1,
|
||||
"carbon_count": 2
|
||||
},
|
||||
{
|
||||
"duration_ms": 1259,
|
||||
"route": "local",
|
||||
"pre_routing_ms": 0,
|
||||
"sender_mam_ms": 204,
|
||||
"recipient_mam_ms": 208,
|
||||
"delivery_ms": 223,
|
||||
"carbons_ms": 410,
|
||||
"offline_push_ms": 0,
|
||||
"handled_ms": 211,
|
||||
"target_count": 1,
|
||||
"carbon_count": 2
|
||||
}
|
||||
],
|
||||
"server_message_processing_slow_ms": [
|
||||
2440,
|
||||
1259
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"binary_sha256": "130431025c4c7c2f72e28b77a31c83867f857ef8bb56d1f71b10e4b19d7caaf5",
|
||||
"scope": "loopback STARTTLS; four SM resources/two accounts; MAM + pending avatar PEP; fixture-only fsync/fdatasync including data directories; real sync retained",
|
||||
"cases": [
|
||||
{
|
||||
"samples": [
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 0,
|
||||
"delivery_ms": {
|
||||
"direct": 2836.63993,
|
||||
"sent": 3238.840305,
|
||||
"received": 3643.707041
|
||||
},
|
||||
"sender_sm_handled_ms": 3643.297905,
|
||||
"publication_plus_delivery_ms": 3643.772507,
|
||||
"sync": {
|
||||
"total": 24,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"sm:directory:fsync": 8,
|
||||
"sm:file:fsync": 8
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 0,
|
||||
"delivery_ms": {
|
||||
"direct": 5782.018326,
|
||||
"sent": 5384.85421,
|
||||
"received": 6596.874338
|
||||
},
|
||||
"sender_sm_handled_ms": 6595.924675,
|
||||
"publication_plus_delivery_ms": 6597.492339,
|
||||
"sync": {
|
||||
"total": 30,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:directory:fsync": 9,
|
||||
"sm:file:fsync": 9
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
}
|
||||
],
|
||||
"mam_records_per_account": [
|
||||
102,
|
||||
102
|
||||
],
|
||||
"status": "pass",
|
||||
"delay_ms_per_sync": 200,
|
||||
"server_message_processing_slow_ms": [
|
||||
3245,
|
||||
3235
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,255 @@
|
||||
{
|
||||
"binary_sha256": "8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a",
|
||||
"scope": "loopback STARTTLS; four SM resources/two accounts; MAM + pending avatar metadata PEP; fixture-only fsync/fdatasync including data directories; real sync retained; operation windows include background SM heartbeat",
|
||||
"cases": [
|
||||
{
|
||||
"samples": [
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 0,
|
||||
"delivery_ms": {
|
||||
"direct": 1083.729337,
|
||||
"sent": 1183.535171,
|
||||
"received": 1301.736052
|
||||
},
|
||||
"sender_sm_handled_ms": 1300.213796,
|
||||
"publication_plus_delivery_ms": 1309.067665,
|
||||
"sync": {
|
||||
"total": 12,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 2,
|
||||
"mam:file:fsync": 6,
|
||||
"sm:file:fdatasync": 4
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 1,
|
||||
"delivery_ms": {
|
||||
"direct": 416.413847,
|
||||
"sent": 521.445561,
|
||||
"received": 622.692061
|
||||
},
|
||||
"sender_sm_handled_ms": 622.557259,
|
||||
"publication_plus_delivery_ms": 627.341892,
|
||||
"sync": {
|
||||
"total": 6,
|
||||
"by_store_kind_op": {
|
||||
"mam:file:fsync": 2,
|
||||
"sm:file:fdatasync": 4
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 2,
|
||||
"delivery_ms": {
|
||||
"direct": 419.683064,
|
||||
"sent": 551.764241,
|
||||
"received": 644.751777
|
||||
},
|
||||
"sender_sm_handled_ms": 644.082891,
|
||||
"publication_plus_delivery_ms": 644.882621,
|
||||
"sync": {
|
||||
"total": 6,
|
||||
"by_store_kind_op": {
|
||||
"mam:file:fsync": 2,
|
||||
"sm:file:fdatasync": 4
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 0,
|
||||
"delivery_ms": {
|
||||
"direct": 1376.989787,
|
||||
"sent": 1273.220821,
|
||||
"received": 1478.990457
|
||||
},
|
||||
"sender_sm_handled_ms": 1477.870242,
|
||||
"publication_plus_delivery_ms": 1479.132408,
|
||||
"sync": {
|
||||
"total": 14,
|
||||
"by_store_kind_op": {
|
||||
"mam:file:fsync": 2,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:file:fdatasync": 8
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 1,
|
||||
"delivery_ms": {
|
||||
"direct": 1523.59144,
|
||||
"sent": 1288.285577,
|
||||
"received": 1626.311997
|
||||
},
|
||||
"sender_sm_handled_ms": 1626.005979,
|
||||
"publication_plus_delivery_ms": 1626.574287,
|
||||
"sync": {
|
||||
"total": 14,
|
||||
"by_store_kind_op": {
|
||||
"mam:file:fsync": 2,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:file:fdatasync": 8
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 2,
|
||||
"delivery_ms": {
|
||||
"direct": 1378.231158,
|
||||
"sent": 1276.210346,
|
||||
"received": 1582.305858
|
||||
},
|
||||
"sender_sm_handled_ms": 1581.975429,
|
||||
"publication_plus_delivery_ms": 1582.463448,
|
||||
"sync": {
|
||||
"total": 15,
|
||||
"by_store_kind_op": {
|
||||
"mam:file:fsync": 2,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:file:fdatasync": 9
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
}
|
||||
],
|
||||
"mam_records_per_account": [
|
||||
106,
|
||||
106
|
||||
],
|
||||
"status": "pass",
|
||||
"delay_ms_per_sync": 100,
|
||||
"server_message_processing_slow_events": [
|
||||
{
|
||||
"duration_ms": 1298,
|
||||
"route": "local",
|
||||
"pre_routing_ms": 0,
|
||||
"sender_mam_ms": 421,
|
||||
"recipient_mam_ms": 416,
|
||||
"delivery_ms": 109,
|
||||
"carbons_ms": 232,
|
||||
"offline_push_ms": 0,
|
||||
"handled_ms": 117,
|
||||
"target_count": 1,
|
||||
"carbon_count": 2
|
||||
},
|
||||
{
|
||||
"duration_ms": 621,
|
||||
"route": "local",
|
||||
"pre_routing_ms": 0,
|
||||
"sender_mam_ms": 101,
|
||||
"recipient_mam_ms": 104,
|
||||
"delivery_ms": 104,
|
||||
"carbons_ms": 206,
|
||||
"offline_push_ms": 0,
|
||||
"handled_ms": 103,
|
||||
"target_count": 1,
|
||||
"carbon_count": 2
|
||||
},
|
||||
{
|
||||
"duration_ms": 638,
|
||||
"route": "local",
|
||||
"pre_routing_ms": 0,
|
||||
"sender_mam_ms": 101,
|
||||
"recipient_mam_ms": 102,
|
||||
"delivery_ms": 104,
|
||||
"carbons_ms": 219,
|
||||
"offline_push_ms": 1,
|
||||
"handled_ms": 108,
|
||||
"target_count": 1,
|
||||
"carbon_count": 2
|
||||
},
|
||||
{
|
||||
"duration_ms": 625,
|
||||
"route": "local",
|
||||
"pre_routing_ms": 1,
|
||||
"sender_mam_ms": 104,
|
||||
"recipient_mam_ms": 102,
|
||||
"delivery_ms": 106,
|
||||
"carbons_ms": 208,
|
||||
"offline_push_ms": 0,
|
||||
"handled_ms": 101,
|
||||
"target_count": 1,
|
||||
"carbon_count": 2
|
||||
},
|
||||
{
|
||||
"duration_ms": 756,
|
||||
"route": "local",
|
||||
"pre_routing_ms": 1,
|
||||
"sender_mam_ms": 105,
|
||||
"recipient_mam_ms": 103,
|
||||
"delivery_ms": 102,
|
||||
"carbons_ms": 340,
|
||||
"offline_push_ms": 0,
|
||||
"handled_ms": 102,
|
||||
"target_count": 1,
|
||||
"carbon_count": 2
|
||||
},
|
||||
{
|
||||
"duration_ms": 617,
|
||||
"route": "local",
|
||||
"pre_routing_ms": 1,
|
||||
"sender_mam_ms": 102,
|
||||
"recipient_mam_ms": 104,
|
||||
"delivery_ms": 101,
|
||||
"carbons_ms": 204,
|
||||
"offline_push_ms": 0,
|
||||
"handled_ms": 101,
|
||||
"target_count": 1,
|
||||
"carbon_count": 2
|
||||
}
|
||||
],
|
||||
"server_message_processing_slow_ms": [
|
||||
1298,
|
||||
621,
|
||||
638,
|
||||
625,
|
||||
756,
|
||||
617
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,350 @@
|
||||
{
|
||||
"binary_sha256": "130431025c4c7c2f72e28b77a31c83867f857ef8bb56d1f71b10e4b19d7caaf5",
|
||||
"scope": "loopback STARTTLS; four SM resources/two accounts; MAM + pending avatar PEP; fixture-only fsync/fdatasync including data directories; real sync retained",
|
||||
"cases": [
|
||||
{
|
||||
"samples": [
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 0,
|
||||
"delivery_ms": {
|
||||
"direct": 13.745165,
|
||||
"sent": 16.132819,
|
||||
"received": 18.746494
|
||||
},
|
||||
"sender_sm_handled_ms": 18.699594,
|
||||
"publication_plus_delivery_ms": 18.823329,
|
||||
"sync": {
|
||||
"total": 16,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"sm:directory:fsync": 4,
|
||||
"sm:file:fsync": 4
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 1,
|
||||
"delivery_ms": {
|
||||
"direct": 15.636949,
|
||||
"sent": 18.138746,
|
||||
"received": 20.807559
|
||||
},
|
||||
"sender_sm_handled_ms": 20.705943,
|
||||
"publication_plus_delivery_ms": 20.843968,
|
||||
"sync": {
|
||||
"total": 16,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"sm:directory:fsync": 4,
|
||||
"sm:file:fsync": 4
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 2,
|
||||
"delivery_ms": {
|
||||
"direct": 21.358818,
|
||||
"sent": 24.788203,
|
||||
"received": 26.125405
|
||||
},
|
||||
"sender_sm_handled_ms": 26.090729,
|
||||
"publication_plus_delivery_ms": 26.187115,
|
||||
"sync": {
|
||||
"total": 16,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"sm:directory:fsync": 4,
|
||||
"sm:file:fsync": 4
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 0,
|
||||
"delivery_ms": {
|
||||
"direct": 32.67965,
|
||||
"sent": 29.361139,
|
||||
"received": 35.870217
|
||||
},
|
||||
"sender_sm_handled_ms": 35.819252,
|
||||
"publication_plus_delivery_ms": 35.991777,
|
||||
"sync": {
|
||||
"total": 28,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:directory:fsync": 8,
|
||||
"sm:file:fsync": 8
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 1,
|
||||
"delivery_ms": {
|
||||
"direct": 30.47626,
|
||||
"sent": 28.128456,
|
||||
"received": 32.654735
|
||||
},
|
||||
"sender_sm_handled_ms": 32.540092,
|
||||
"publication_plus_delivery_ms": 32.738534,
|
||||
"sync": {
|
||||
"total": 28,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:directory:fsync": 8,
|
||||
"sm:file:fsync": 8
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 2,
|
||||
"delivery_ms": {
|
||||
"direct": 30.492529,
|
||||
"sent": 28.027238,
|
||||
"received": 33.697165
|
||||
},
|
||||
"sender_sm_handled_ms": 33.576139,
|
||||
"publication_plus_delivery_ms": 33.786933,
|
||||
"sync": {
|
||||
"total": 28,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:directory:fsync": 8,
|
||||
"sm:file:fsync": 8
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
}
|
||||
],
|
||||
"mam_records_per_account": [
|
||||
106,
|
||||
106
|
||||
],
|
||||
"status": "pass",
|
||||
"delay_ms_per_sync": 0
|
||||
},
|
||||
{
|
||||
"samples": [
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 0,
|
||||
"delivery_ms": {
|
||||
"direct": 1226.407308,
|
||||
"sent": 1431.404759,
|
||||
"received": 1837.301696
|
||||
},
|
||||
"sender_sm_handled_ms": 1633.73631,
|
||||
"publication_plus_delivery_ms": 1837.391548,
|
||||
"sync": {
|
||||
"total": 18,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"sm:directory:fsync": 5,
|
||||
"sm:file:fsync": 5
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 1,
|
||||
"delivery_ms": {
|
||||
"direct": 1234.414585,
|
||||
"sent": 1436.607311,
|
||||
"received": 1642.84668
|
||||
},
|
||||
"sender_sm_handled_ms": 1641.598264,
|
||||
"publication_plus_delivery_ms": 1642.913856,
|
||||
"sync": {
|
||||
"total": 16,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"sm:directory:fsync": 4,
|
||||
"sm:file:fsync": 4
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 2,
|
||||
"delivery_ms": {
|
||||
"direct": 1232.468024,
|
||||
"sent": 1441.824206,
|
||||
"received": 1872.009731
|
||||
},
|
||||
"sender_sm_handled_ms": 1652.92941,
|
||||
"publication_plus_delivery_ms": 1872.108448,
|
||||
"sync": {
|
||||
"total": 18,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"sm:directory:fsync": 5,
|
||||
"sm:file:fsync": 5
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 0,
|
||||
"delivery_ms": {
|
||||
"direct": 3209.381557,
|
||||
"sent": 3419.876568,
|
||||
"received": 3614.69826
|
||||
},
|
||||
"sender_sm_handled_ms": 3613.565949,
|
||||
"publication_plus_delivery_ms": 3615.484237,
|
||||
"sync": {
|
||||
"total": 28,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:directory:fsync": 8,
|
||||
"sm:file:fsync": 8
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 1,
|
||||
"delivery_ms": {
|
||||
"direct": 2665.684412,
|
||||
"sent": 2461.378505,
|
||||
"received": 2870.784696
|
||||
},
|
||||
"sender_sm_handled_ms": 2870.455915,
|
||||
"publication_plus_delivery_ms": 2871.000834,
|
||||
"sync": {
|
||||
"total": 28,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:directory:fsync": 8,
|
||||
"sm:file:fsync": 8
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 2,
|
||||
"delivery_ms": {
|
||||
"direct": 2683.292251,
|
||||
"sent": 2475.225974,
|
||||
"received": 3636.635597
|
||||
},
|
||||
"sender_sm_handled_ms": 3195.209226,
|
||||
"publication_plus_delivery_ms": 3640.372412,
|
||||
"sync": {
|
||||
"total": 30,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:directory:fsync": 9,
|
||||
"sm:file:fsync": 9
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
}
|
||||
],
|
||||
"mam_records_per_account": [
|
||||
106,
|
||||
106
|
||||
],
|
||||
"status": "pass",
|
||||
"delay_ms_per_sync": 100
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
Compiling rust-xmpp v0.8.3 (/workspace/scratch/362577cdf2e0/recovered/rust-xmpp)
|
||||
Finished `test` profile [unoptimized] target(s) in 29.67s
|
||||
Running unittests src/lib.rs (target/debug/deps/rust_xmpp-792bf902c86621ec)
|
||||
|
||||
running 50 tests
|
||||
test csi::checkpoint_tests::failed_queue_checkpoints_restore_append_and_drain_without_copying_queue ... ok
|
||||
test federation::tests::external_must_be_in_the_advertised_mechanisms ... ok
|
||||
test federation::tests::starttls_must_be_an_immediate_stream_feature ... ok
|
||||
test csi::checkpoint_tests::only_queue_changes_require_a_checkpoint ... ok
|
||||
test federation::tests::federation_domains_are_dns_names_and_case_insensitive ... ok
|
||||
test federation::tests::stream_restarts_compare_canonical_domains ... ok
|
||||
test http_config::tests::literal_pchars_and_percent_encoding_are_supported ... ok
|
||||
test http_config::tests::invalid_paths_types_urls_and_conflicts_are_errors ... ok
|
||||
test http_config::tests::external_prefix_and_standard_port ... ok
|
||||
test http_config::tests::routes_hosts_and_default_without_overriding_known_hosts ... ok
|
||||
test http_proxy::tests::config_validation_and_network_boundaries ... ok
|
||||
test http_proxy::tests::empty_native_lua_table_disables_proxy_trust ... ok
|
||||
test http_config::tests::mounts_inherit_per_app_and_expand_virtual_host ... ok
|
||||
test http_proxy::tests::forwarded_tls_termination_cannot_upgrade_a_plaintext_chain_hop ... ok
|
||||
test http_proxy::tests::malformed_forwarded_and_unknown_identifiers_are_ignored ... ok
|
||||
test http_proxy::tests::untrusted_socket_ignores_spoofed_headers ... ok
|
||||
test http_proxy::tests::legacy_chain_uses_rightmost_untrusted_and_tls_is_preserved ... ok
|
||||
test http_proxy::tests::forwarded_mode_stops_at_first_untrusted_hop ... ok
|
||||
test http_transport::tests::bosh_processing_capacity_is_bounded ... ok
|
||||
test http_transport::tests::configured_mount_host_origin_and_secure_dispatch ... ok
|
||||
test http_transport::tests::independent_framing ... ok
|
||||
test http_transport::tests::websocket_preserves_inherited_namespaces_and_spaced_declarations ... ok
|
||||
test logging::tests::console_aliases_share_one_sink_with_combined_levels ... ok
|
||||
test sasl::tests::reject_malformed_and_downgrade ... ok
|
||||
test archive::redo_rewrite_tests::crash_gap_after_redo_retirement_before_native_rename_keeps_old_snapshot ... ok
|
||||
test archive::redo_rewrite_tests::crash_gap_after_native_rename_has_no_old_redo_to_resurrect_deletions ... ok
|
||||
test sasl::tests::rfc5802_sha1_vector ... ok
|
||||
test server::authorization_tests::http_interfaces_follow_secure_override_wildcards_and_global_fallback ... ok
|
||||
test server::authorization_tests::pep_diagnostics_count_only_first_item_devices_without_logging_ids ... ok
|
||||
test server::authorization_tests::pep_diagnostics_exclude_payloads_and_identifiers ... ok
|
||||
test http_service::tests::upload_claim_refreshes_completion_state_after_an_earlier_snapshot ... ok
|
||||
test sessions::push_timeout_tests::first_important_push_shortens_extended_hibernation_once ... ok
|
||||
test sessions::tests::acknowledgement_wraps ... ok
|
||||
test sessions::tests::graceful_disconnect_is_not_resumable ... ok
|
||||
test sessions::tests::resume_replays_only_unacked_and_checks_owner ... ok
|
||||
test sessions::tests::traffic_before_sm_enable_is_not_counted ... ok
|
||||
test upload_migration::tests::local_spool_checks_size_and_hash_and_preserves_source ... ok
|
||||
test sasl::tests::sha256_independent_python_vector ... ok
|
||||
test wire::tests::arbitrary_prefix_and_inherited_namespaces ... ok
|
||||
test wire::tests::cdata_and_comments_frame_without_counting_brackets ... ok
|
||||
test wire::tests::declarations_rejected ... ok
|
||||
test wire::tests::fragmented_and_pipelined ... ok
|
||||
test wire::tests::invalid_namespace_and_declarations_rejected ... ok
|
||||
test upload_migration::tests::pending_and_corrupt_journals_block_startup ... ok
|
||||
test http_service::tests::upload_internal_mount_is_independent_of_advertised_proxy_prefix ... ok
|
||||
test http_service::tests::abandoned_slots_release_quota_without_pruning_existing_or_active_files ... ok
|
||||
test sasl::tests::plus_channel_binding_and_ssdp_are_authenticated ... ok
|
||||
test server::authorization_tests::upload_requires_registered_local_account_or_explicit_remote_access ... ok
|
||||
test sasl::tests::wrong_proof_nonce_binding_and_duplicates ... ok
|
||||
test admin::tests::real_admin_xml_protocol_over_duplex ... ok
|
||||
|
||||
test result: ok. 50 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.18s
|
||||
|
||||
Running tests/archive_edges.rs (target/debug/deps/archive_edges-da556b3567110d0b)
|
||||
|
||||
running 6 tests
|
||||
test missing_empty_whitespace_and_single_record ... ok
|
||||
test endpoint_read_recovers_partial_append_before_seeking ... ok
|
||||
test multiline_endpoints_match_native_scanner_with_blank_lines ... ok
|
||||
test oversized_prefix_and_malformed_endpoints_fail ... ok
|
||||
test metadata_skips_large_malformed_middle_without_creating_cache ... ok
|
||||
test tail_padding_respects_record_bound ... ok
|
||||
|
||||
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.26s
|
||||
|
||||
Running tests/archive_redo.rs (target/debug/deps/archive_redo-d041d27370ba29bd)
|
||||
|
||||
running 13 tests
|
||||
test atomic_native_replace_without_handoff_cannot_discard_committed_frames ... ok
|
||||
test explicit_native_atomic_handoff_and_missing_baseline_fail_closed ... ok
|
||||
|
||||
running 1 test
|
||||
test durable_handoff_allows_native_in_place_append_and_next_rust_append ... ok
|
||||
test legacy_rollback_marker_is_migrated_before_redo_append ... ok
|
||||
test committed_redo_recovers_missing_and_partial_native_without_duplicates ... ok
|
||||
test redo_process_child ... ok
|
||||
test killed_writer_retains_accepted_records_after_native_data_loss ... ok
|
||||
test native_baseline_in_place_edits_are_rejected ... ok
|
||||
test complete_checksum_corruption_fails_without_modifying_native_or_journal ... ok
|
||||
test copied_archive_replays_committed_redo_despite_new_native_inode ... ok
|
||||
test incomplete_final_frame_and_uncommitted_native_suffix_are_discarded ... ok
|
||||
test byte_limit_rotates_before_frame_count_limit ... ok
|
||||
test bounded_rotation_recovers_suffix_and_rewrites_never_resurrect_deleted_records ... ok
|
||||
|
||||
test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.91s
|
||||
|
||||
Running tests/sm_journal.rs (target/debug/deps/sm_journal-79fad6209c2b84bb)
|
||||
|
||||
running 14 tests
|
||||
test offline_checkpoint_refuses_live_store_and_preserves_redo ... ok
|
||||
test complete_corrupt_frame_fails_closed_even_with_valid_export ... ok
|
||||
test journal_symlink_is_rejected_without_following_target ... ok
|
||||
test export_failure_after_commit_advances_memory_and_fences_later_writes ... ok
|
||||
test durable_tombstone_overrides_resurrected_stale_json ... ok
|
||||
test offline_checkpoint_durably_applies_expiration_and_tombstones ... ok
|
||||
test legacy_json_migrates_and_baseline_survives_partial_first_append ... ok
|
||||
test offline_checkpoint_repairs_exports_removes_redo_and_allows_legacy_restart ... ok
|
||||
test partial_tail_is_discarded_and_subsequent_commits_survive_restart ... ok
|
||||
test redo_repairs_missing_or_torn_export_before_json_validation ... ok
|
||||
test superseded_frames_still_require_valid_checksums_json_and_baseline_flags ... ok
|
||||
test incomplete_baseline_or_magic_never_falls_back_to_json ... ok
|
||||
test retired_journals_are_collected_in_bounded_batches ... ok
|
||||
test rotation_preserves_latest_snapshot_and_bounds_redo_size ... ok
|
||||
|
||||
test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.97s
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,169 @@
|
||||
{
|
||||
"binary_sha256": "8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a",
|
||||
"scope": "loopback STARTTLS; four SM resources/two accounts; MAM + pending avatar metadata PEP; fixture-only fsync/fdatasync including data directories; real sync retained; operation windows include background SM heartbeat",
|
||||
"cases": [
|
||||
{
|
||||
"samples": [
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 0,
|
||||
"delivery_ms": {
|
||||
"direct": 18.615095,
|
||||
"sent": 19.940848,
|
||||
"received": 26.953392
|
||||
},
|
||||
"sender_sm_handled_ms": 26.88493,
|
||||
"publication_plus_delivery_ms": 27.065981,
|
||||
"sync": {
|
||||
"total": 12,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 2,
|
||||
"mam:file:fsync": 6,
|
||||
"sm:file:fdatasync": 4
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 1,
|
||||
"delivery_ms": {
|
||||
"direct": 6.003256,
|
||||
"sent": 7.461811,
|
||||
"received": 10.135311
|
||||
},
|
||||
"sender_sm_handled_ms": 9.993133,
|
||||
"publication_plus_delivery_ms": 10.173245,
|
||||
"sync": {
|
||||
"total": 6,
|
||||
"by_store_kind_op": {
|
||||
"mam:file:fsync": 2,
|
||||
"sm:file:fdatasync": 4
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 2,
|
||||
"delivery_ms": {
|
||||
"direct": 7.871244,
|
||||
"sent": 13.331419,
|
||||
"received": 15.325955
|
||||
},
|
||||
"sender_sm_handled_ms": 15.079213,
|
||||
"publication_plus_delivery_ms": 15.363148,
|
||||
"sync": {
|
||||
"total": 6,
|
||||
"by_store_kind_op": {
|
||||
"mam:file:fsync": 2,
|
||||
"sm:file:fdatasync": 4
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 0,
|
||||
"delivery_ms": {
|
||||
"direct": 38.754553,
|
||||
"sent": 25.865646,
|
||||
"received": 40.65703
|
||||
},
|
||||
"sender_sm_handled_ms": 40.40549,
|
||||
"publication_plus_delivery_ms": 40.769686,
|
||||
"sync": {
|
||||
"total": 14,
|
||||
"by_store_kind_op": {
|
||||
"mam:file:fsync": 2,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:file:fdatasync": 8
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 1,
|
||||
"delivery_ms": {
|
||||
"direct": 20.942607,
|
||||
"sent": 20.204899,
|
||||
"received": 22.05411
|
||||
},
|
||||
"sender_sm_handled_ms": 21.856674,
|
||||
"publication_plus_delivery_ms": 23.679041,
|
||||
"sync": {
|
||||
"total": 14,
|
||||
"by_store_kind_op": {
|
||||
"mam:file:fsync": 2,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:file:fdatasync": 8
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 2,
|
||||
"delivery_ms": {
|
||||
"direct": 17.980156,
|
||||
"sent": 18.759152,
|
||||
"received": 21.369599
|
||||
},
|
||||
"sender_sm_handled_ms": 21.332607,
|
||||
"publication_plus_delivery_ms": 21.518131,
|
||||
"sync": {
|
||||
"total": 14,
|
||||
"by_store_kind_op": {
|
||||
"mam:file:fsync": 2,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:file:fdatasync": 8
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
}
|
||||
],
|
||||
"mam_records_per_account": [
|
||||
106,
|
||||
106
|
||||
],
|
||||
"status": "pass",
|
||||
"delay_ms_per_sync": 0,
|
||||
"server_message_processing_slow_events": [],
|
||||
"server_message_processing_slow_ms": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"binary_sha256": "130431025c4c7c2f72e28b77a31c83867f857ef8bb56d1f71b10e4b19d7caaf5",
|
||||
"scope": "loopback STARTTLS; four SM resources/two accounts; MAM + pending avatar metadata PEP; fixture-only fsync/fdatasync including data directories; real sync retained; operation windows include background SM heartbeat",
|
||||
"cases": [
|
||||
{
|
||||
"samples": [
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 0,
|
||||
"delivery_ms": {
|
||||
"direct": 26.330895,
|
||||
"sent": 29.575091,
|
||||
"received": 33.552895
|
||||
},
|
||||
"sender_sm_handled_ms": 33.407559,
|
||||
"publication_plus_delivery_ms": 33.592558,
|
||||
"sync": {
|
||||
"total": 16,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"sm:directory:fsync": 4,
|
||||
"sm:file:fsync": 4
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 1,
|
||||
"delivery_ms": {
|
||||
"direct": 25.112248,
|
||||
"sent": 31.688103,
|
||||
"received": 39.725842
|
||||
},
|
||||
"sender_sm_handled_ms": 39.683719,
|
||||
"publication_plus_delivery_ms": 39.867826,
|
||||
"sync": {
|
||||
"total": 16,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"sm:directory:fsync": 4,
|
||||
"sm:file:fsync": 4
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "settled",
|
||||
"round": 2,
|
||||
"delivery_ms": {
|
||||
"direct": 11.894093,
|
||||
"sent": 11.977544,
|
||||
"received": 13.638711
|
||||
},
|
||||
"sender_sm_handled_ms": 13.371964,
|
||||
"publication_plus_delivery_ms": 13.720665,
|
||||
"sync": {
|
||||
"total": 16,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"sm:directory:fsync": 4,
|
||||
"sm:file:fsync": 4
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 0,
|
||||
"delivery_ms": {
|
||||
"direct": 42.768972,
|
||||
"sent": 32.889933,
|
||||
"received": 48.207819
|
||||
},
|
||||
"sender_sm_handled_ms": 47.576405,
|
||||
"publication_plus_delivery_ms": 51.552818,
|
||||
"sync": {
|
||||
"total": 28,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:directory:fsync": 8,
|
||||
"sm:file:fsync": 8
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 1,
|
||||
"delivery_ms": {
|
||||
"direct": 28.176101,
|
||||
"sent": 26.386914,
|
||||
"received": 29.822606
|
||||
},
|
||||
"sender_sm_handled_ms": 29.714999,
|
||||
"publication_plus_delivery_ms": 30.011235,
|
||||
"sync": {
|
||||
"total": 28,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:directory:fsync": 8,
|
||||
"sm:file:fsync": 8
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
},
|
||||
{
|
||||
"phase": "avatar_pending",
|
||||
"round": 2,
|
||||
"delivery_ms": {
|
||||
"direct": 29.714366,
|
||||
"sent": 26.01394,
|
||||
"received": 32.367508
|
||||
},
|
||||
"sender_sm_handled_ms": 32.252144,
|
||||
"publication_plus_delivery_ms": 33.076522,
|
||||
"sync": {
|
||||
"total": 28,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 4,
|
||||
"mam:file:fsync": 4,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:directory:fsync": 8,
|
||||
"sm:file:fsync": 8
|
||||
}
|
||||
},
|
||||
"pending_per_resource": [
|
||||
3,
|
||||
2,
|
||||
3,
|
||||
2
|
||||
]
|
||||
}
|
||||
],
|
||||
"mam_records_per_account": [
|
||||
106,
|
||||
106
|
||||
],
|
||||
"status": "pass",
|
||||
"delay_ms_per_sync": 0,
|
||||
"server_message_processing_slow_events": [],
|
||||
"server_message_processing_slow_ms": []
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,209 @@
|
||||
{
|
||||
"version": "0.8.3",
|
||||
"date_utc": "2026-10-21",
|
||||
"release_binary_sha256": "8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a",
|
||||
"ordinary_tests": {
|
||||
"passed": 334,
|
||||
"failed": 0,
|
||||
"ignored": 11
|
||||
},
|
||||
"fmt": "passed",
|
||||
"clippy": "passed",
|
||||
"release": "passed",
|
||||
"full_verify": "passed in one final frozen-source run",
|
||||
"native_module_tests": 8,
|
||||
"native_federation_tests": 1,
|
||||
"extra_large_archive_tests": 1,
|
||||
"ignored_not_run": [
|
||||
"AF_UNIX admin_socket"
|
||||
],
|
||||
"load": {
|
||||
"general_tls_clients": 500,
|
||||
"general_accounts": 100,
|
||||
"muc_sm": {
|
||||
"clients": 500,
|
||||
"accounts": 100,
|
||||
"rooms": 10,
|
||||
"message_rounds": 3,
|
||||
"concurrency": 20,
|
||||
"binary": "/tmp/xmpp-durable-muc-load-ssixqqk9/rust-xmpp",
|
||||
"binary_sha256": "8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a",
|
||||
"before": {
|
||||
"rss_kib": 9516,
|
||||
"cpu_seconds": 0.01,
|
||||
"fd_count": 12
|
||||
},
|
||||
"connect_seconds": 12.048,
|
||||
"connect_latency": {
|
||||
"samples": 500,
|
||||
"median_ms": 398.044,
|
||||
"p95_ms": 1086.236,
|
||||
"max_ms": 1403.7
|
||||
},
|
||||
"phase": "completed",
|
||||
"status": "pass",
|
||||
"elapsed_seconds": 128.38,
|
||||
"join_seconds": 94.493,
|
||||
"joined": {
|
||||
"rss_kib": 41828,
|
||||
"cpu_seconds": 55.61,
|
||||
"fd_count": 513
|
||||
},
|
||||
"join_presence_deliveries": 25000,
|
||||
"slots_joined": {
|
||||
"count": 500,
|
||||
"bytes": 309790
|
||||
},
|
||||
"message_seconds": 9.585,
|
||||
"room_messages_sent": 30,
|
||||
"room_messages_delivered": 1500,
|
||||
"before_kill": {
|
||||
"rss_kib": 41740,
|
||||
"cpu_seconds": 62.6,
|
||||
"fd_count": 512
|
||||
},
|
||||
"slots_before_kill": {
|
||||
"count": 500,
|
||||
"bytes": 514030
|
||||
},
|
||||
"restart_seconds": 7.557,
|
||||
"resumed_resources": 10,
|
||||
"replayed_pending_room_messages": 10,
|
||||
"membership_groupchat_deliveries_after_resume": 10,
|
||||
"after_resume": {
|
||||
"rss_kib": 20896,
|
||||
"cpu_seconds": 7.09,
|
||||
"fd_count": 22
|
||||
},
|
||||
"slots_after_resume": {
|
||||
"count": 500,
|
||||
"bytes": 671070
|
||||
},
|
||||
"total_seconds": 128.38,
|
||||
"peak_rss_kib": 41852
|
||||
}
|
||||
},
|
||||
"personal_delivery_comparisons": [
|
||||
{
|
||||
"delay_ms_per_sync": 0,
|
||||
"phase": "settled",
|
||||
"samples_per_binary": 3,
|
||||
"body_before_ms": 25.112248,
|
||||
"body_after_ms": 7.871244,
|
||||
"sender_ack_before_ms": 33.407559,
|
||||
"sender_ack_after_ms": 15.079213
|
||||
},
|
||||
{
|
||||
"delay_ms_per_sync": 0,
|
||||
"phase": "avatar_pending",
|
||||
"samples_per_binary": 3,
|
||||
"body_before_ms": 29.714366,
|
||||
"body_after_ms": 20.942607,
|
||||
"sender_ack_before_ms": 32.252144,
|
||||
"sender_ack_after_ms": 21.856674
|
||||
},
|
||||
{
|
||||
"delay_ms_per_sync": 100,
|
||||
"phase": "settled",
|
||||
"samples_per_binary": 3,
|
||||
"body_before_ms": 1232.468024,
|
||||
"body_after_ms": 419.683064,
|
||||
"sender_ack_before_ms": 1641.598264,
|
||||
"sender_ack_after_ms": 644.082891
|
||||
},
|
||||
{
|
||||
"delay_ms_per_sync": 100,
|
||||
"phase": "avatar_pending",
|
||||
"samples_per_binary": 3,
|
||||
"body_before_ms": 2683.292251,
|
||||
"body_after_ms": 1378.231158,
|
||||
"sender_ack_before_ms": 3195.209226,
|
||||
"sender_ack_after_ms": 1581.975429
|
||||
},
|
||||
{
|
||||
"delay_ms_per_sync": 200,
|
||||
"phase": "settled",
|
||||
"samples_per_binary": 1,
|
||||
"body_before_ms": 2836.63993,
|
||||
"body_after_ms": 2042.56345,
|
||||
"sender_ack_before_ms": 3643.297905,
|
||||
"sender_ack_after_ms": 2441.985416
|
||||
},
|
||||
{
|
||||
"delay_ms_per_sync": 200,
|
||||
"phase": "avatar_pending",
|
||||
"samples_per_binary": 1,
|
||||
"body_before_ms": 5782.018326,
|
||||
"body_after_ms": 2676.283903,
|
||||
"sender_ack_before_ms": 6595.924675,
|
||||
"sender_ack_after_ms": 3094.949323
|
||||
}
|
||||
],
|
||||
"durability_crash": {
|
||||
"status": "pass",
|
||||
"delay_ms_per_sync": 100,
|
||||
"acknowledged_messages": 3,
|
||||
"mam_records_per_account": [
|
||||
3,
|
||||
3
|
||||
],
|
||||
"resumed_resources": 4,
|
||||
"replayed_personal_deliveries": 9,
|
||||
"offline_checkpoint": {
|
||||
"exported_sessions": 4,
|
||||
"native_archives": 2,
|
||||
"journals_removed": true,
|
||||
"second_invocation_idempotent": true
|
||||
},
|
||||
"pending_before_reauthentication": [
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
3
|
||||
],
|
||||
"sync_between_publication_and_sigkill": {
|
||||
"total": 32,
|
||||
"by_store_kind_op": {
|
||||
"mam:directory:fsync": 2,
|
||||
"mam:file:fsync": 10,
|
||||
"pep:directory:fsync": 2,
|
||||
"pep:file:fsync": 2,
|
||||
"sm:file:fdatasync": 16
|
||||
}
|
||||
},
|
||||
"binary_sha256": "8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a",
|
||||
"scope": "loopback STARTTLS; real delayed fsync/fdatasync; sender SM acknowledgement then SIGKILL; authoritative queues and MAM checked before reauthentication; at-least-once replay"
|
||||
},
|
||||
"recovery_sync_faults": {
|
||||
"status": "pass",
|
||||
"cases": [
|
||||
{
|
||||
"suffix": ".wal",
|
||||
"status": "pass",
|
||||
"checkpoint_rejected_sync_failure": true,
|
||||
"journals_preserved_on_failure": 4,
|
||||
"serve_rejected_before_listeners": true,
|
||||
"clean_retry_preserved_sessions": 4,
|
||||
"clean_retry_preserved_archives": 2
|
||||
},
|
||||
{
|
||||
"suffix": ".rredo",
|
||||
"status": "pass",
|
||||
"checkpoint_rejected_sync_failure": true,
|
||||
"journals_preserved_on_failure": 2,
|
||||
"serve_rejected_before_listeners": false,
|
||||
"clean_retry_preserved_sessions": 4,
|
||||
"clean_retry_preserved_archives": 2
|
||||
}
|
||||
],
|
||||
"binary_sha256": "8ceb8de3a2d02bc4399b8ae817dff7e3c3fe9bff83dc0c6669b7f19210a3847a"
|
||||
},
|
||||
"limitations": [
|
||||
"Loopback fixture, not production client or disk qualification",
|
||||
"0ms pair ran sequentially without full verify; 100/200ms final runs had background final verify",
|
||||
"One200ms sample; startup/migration/rotation and background heartbeat affect sync counts",
|
||||
"SM global IO mutex and full snapshots remain; no atomic transaction spanning MAM/SM/network",
|
||||
"Offline storage-checkpoint required before legacy/native writer handoff",
|
||||
"10GiB transfers, real MinIO/AWS, Docker/Gitea/GitHub run were not repeated in this release"
|
||||
]
|
||||
}
|
||||
+182
-1667
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user