diff --git a/doc/tasks.md b/doc/tasks.md index 1c95c826..0857f723 100644 --- a/doc/tasks.md +++ b/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`.