Browse Source

docs: record conn_mgr recovery validation and check timeout limitation

master
evgeny 2 days ago
parent
commit
91a69b939c
  1. 31
      doc/tasks.md

31
doc/tasks.md

@ -13,20 +13,23 @@
Исправление общее для Qt и Android. DEBUG-категория `debug` раз в секунду
показывает исходный RTT, RTT в мс, транспортного соседа и метрики аудио.
[ ] **Восстановление путей conn_mgr на протяжении жизни handle** — план:
разделить начальный TIMEOUT и срок отдельного цикла проб. После потери прямого
пути сразу использовать живой резерв, запустить новый DIRECT/LOCAL/REVERSE;
при отсутствии пригодного посредника сразу повторить INDIRECT. Доставку через
рабочего посредника сохранять до READY прямого пути. Пока есть handles и нет
прямого READY, повторять ограниченные циклы с паузой 1→2→4→8→15с; новая версия
адресов или изменение локальных сокетов запускает пробу без ожидания этой паузы.
NCD удерживать, создавать заново только после CLOSED; существующие UDP/TCP-пробы
не дублировать и не отменять. Рабочие посредники и router-очереди не сбрасывать.
Новые request_id каждого обмена, идемпотентные повторы, отдельный срок обработки
входящего обмена; старые ответы не меняют новый выбор. UP/DOWN — только изменение
общей доступности, TIMEOUT — один раз при неудаче первого подключения.
Закрытие последнего handle отменяет восстановление. Проверить поздний обрыв,
несколько циклов, смену адресов, потерю посредника, устаревшие ответы и close.
[+] **Восстановление путей conn_mgr на протяжении жизни handle** — начальный
TIMEOUT отделён от срока цикла проб. Поздний обрыв запускает новый цикл;
рабочий резерв и NCD сохраняются, при отсутствии резерва INDIRECT стартует сразу.
Циклы ограничены 15с, паузы 1→2→4→8→15с; новая версия узла или локальные сокеты
обходят паузу. Прямой READY останавливает поиск и получает приоритет.
Исходящие request_id и входящие сроки независимы; устаревшие ответы игнорируются.
UP/DOWN отражают общую доступность, TIMEOUT приходит один раз до первого UP.
Последний close отменяет восстановление, включая закрытие из callback.
Проверены десять сетевых сценариев с реальными данными: поздний обрыв,
повторные циклы, смена адресов/сокетов, потеря маршрута посредника, старый ACK,
начальный TIMEOUT с поздним UP и close. ASAN без ошибок; собраны Qt и Android APK.
Алгоритм: `src/routing_layer/conn_mgr_doc.md`.
[ ] **Общий лимит check.sh после clean** — 01.10.2026: расчёт по времени предыдущего
прогона дал 205с вместе с полной сборкой и оборвал проверку после успешных тестов
до `test_uasync_socket_race`. Повторный запуск использует готовую сборку и больший
лимит. Разделить бюджет сборки и запуска тестов либо учитывать clean при расчёте.
[ ] **Паузы аудио Qt при звонке с SM** — 01.10.2026, звонок
`939a3ea36f3eeac3`, прямой LAN TCP `192.168.40.250:44604 ↔ 192.168.40.247:44173`.

Loading…
Cancel
Save