From f1f4976222276b9ea7949d03352fddb08165cbec Mon Sep 17 00:00:00 2001 From: evgeny Date: Sat, 24 Oct 2026 09:48:19 +0200 Subject: [PATCH] Record retry recovery status and full regression results --- doc/etcp_multipath_plan.txt | 6 ++++-- doc/tasks.md | 19 +++++++++++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/doc/etcp_multipath_plan.txt b/doc/etcp_multipath_plan.txt index 82bc3961..837a5eda 100644 --- a/doc/etcp_multipath_plan.txt +++ b/doc/etcp_multipath_plan.txt @@ -3,7 +3,7 @@ ETCP: независимая обратная связь каналов и до Статус -24.10.2026: уточнено и реализовано правило ретрансми́та. При наличии другого +24.10.2026: уточнено и реализовано правило ретрансмита. При наличии другого initialized+UP канала повтор ждёт его cwnd/pacing, даже если прежний уже готов. Без таких альтернатив разрешён прежний канал; DOWN последней альтернативы пробуждает sender. ACK/control/burst-FILLER проходят во время ожидания DATA. @@ -33,6 +33,8 @@ initialized+UP канала повтор ждёт его cwnd/pacing, даже попыток/таймеров, ACK и burst во время ожидания, освобождение альтернативы, DOWN/удаление последней альтернативы, неинициализированный линк и поздний ACK. Восемь профильных тестов ASAN/UBSan с detect_leaks=1 проходят без ошибок/утечек. +Полный check.sh после исправления:184/184, proxy9/9, burst1/1, load8/8 PASS, +134217728 проверенных байт,161с; /tmp/etcp-retry-alternative-full-check.log. Штатные профили отказов 8dd03c2b:7 из9 проходят прежние пороги. DROP/HOLD под нагрузкой проходят каждый3/3: паузы43.172/44.755/43.493мс и40.965/39.796/44.982мс, @@ -58,7 +60,7 @@ latency380.177мс. Это4 нарушения порогов; доставка/ уже не оставляет запаса на отправку и обработку. Эти ограничения требуют отдельного проверенного правила срока/бюджета ранних копий; оно здесь не реализовано. -Состояние после исправления pacer, до уточнения правила ретрансми́та: +Состояние после исправления pacer, до уточнения правила ретрансмита: Исправление pacer реализовано: таймер назначается на первый TB, разрешающий отправку, а не на полное погашение долга. Кредит и допустимый положительный долг по-прежнему diff --git a/doc/tasks.md b/doc/tasks.md index df75c883..a2c2305d 100644 --- a/doc/tasks.md +++ b/doc/tasks.md @@ -4,8 +4,23 @@ ## Текущие задачи -[ ] **ETCP: полезная утилизация нескольких каналов и доставка при зависании части линков** — pacing исправлен, общая задача открыта. - 24.10.2026: таймер pacer ждёт первого разрешённого TB, а не погашения всего долга; +[ ] **ETCP: полезная утилизация нескольких каналов и доставка при зависании части линков** — общая задача открыта. + 24.10.2026: повтор ждёт другого initialized+UP канала, даже когда прежний уже готов. + При отсутствии таких альтернатив разрешён прежний; DOWN последней альтернативы будит sender. + Новых состояний/ресурсов/таймеров нет. ACK/control и burst-FILLER не блокируются ожиданием DATA. + Регрессия до исправления воспроизводит возврат на прежний путь; после — windows44 сценария + с управляемыми/реальными часами PASS, восемь ASAN/UBSan-тестов без ошибок/утечек. + Полный check.sh184/184, proxy9/9, burst1/1, load8/8 PASS,134217728 проверенных байт,161с. + Профили отказов:7/9 PASS. load-drop/load-hold проходят каждый3/3, паузы39.796..44.982мс, + steady goodput7.189..7.476 из8Мбит/с оставшегося канала. Пороги сохранены. + Slow-drop остаётся FAIL: пауза238.569мс, latency264.727мс; two-stuck219.338/380.177мс. + В них4 нарушения порогов; доставка/порядок/ресурсы проходят. Полная скоростная матрица не повторялась. + Трейс показал ожидание первого RTO на медленном пути и повторный выбор прежнего пути под нагрузкой; + ожидание в хвосте send_q в этих опытах не объясняет основную паузу (максимум2.6/3.5мс). + Следующий отдельный шаг по отказам — ограниченные ранние копии до RTO с сохранением старого flight; + срок/бюджет и цену дубликатов на исправных каналах нужно проверить до переноса. Дуплекс остаётся отдельным. + Логи: /tmp/etcp-retry-alternative-*.log/.csv; диагностический observer — /tmp/etcp-recovery-probe.c/.mk. + Предыдущий контроль после исправления pacer: таймер ждёт первого разрешённого TB, а не погашения всего долга; кредит1мс, BBR/cwnd/min_rtt, RTO и wire-формат сохранены. Нового состояния и ресурсов нет. До исправления регрессия получает10TB вместо1TB; после него18 сочетаний долга/дроби проходят. Проверены INT_MAX, ранний/поздний callback, ограниченный burst, OOM повторного таймера,