From 0989eff73d34b0cf4bd42ec6b1039e5b14d02a07 Mon Sep 17 00:00:00 2001 From: evgeny Date: Fri, 23 Oct 2026 11:32:10 +0200 Subject: [PATCH] Record complete proxy integration checks and normalizer ownership fix outline --- doc/etcp_multipath_plan.txt | 8 ++++++++ doc/tasks.md | 1 + 2 files changed, 9 insertions(+) diff --git a/doc/etcp_multipath_plan.txt b/doc/etcp_multipath_plan.txt index ebfbd64c..dbda06ab 100644 --- a/doc/etcp_multipath_plan.txt +++ b/doc/etcp_multipath_plan.txt @@ -26,6 +26,8 @@ BBR/windows/session/transport/STCP traffic/NCD/stream_tx_stats/control_server п Логи: /tmp/etcp-bounds-windows.log, /tmp/etcp-delay-bbr.log, /tmp/etcp-attempts-asan-test_*.log. Основной регрессионный набор: 183/183 PASS (после адаптации fixture метрик). +check.sh завершён успешно за166с: дополнительные tcp_proxy_full, burst и load PASS; +load — 8/8 соединений,134217728 байт с проверкой содержимого за13.66с. Лог: /tmp/etcp-attempts-final-check.log. Он не включает долгую multipath-матрицу. Вся штатная multipath-матрица пока FAIL: 20 нарушений порогов. @@ -283,6 +285,12 @@ uint8: хранить факт состоявшейся отправки отд До изменения этой политики исправить удержание ACKed DATA при OOM unpacker: ограниченный retry сборки, сохранённый fragment/cursor, reentrant reset/close, OOM на первой и последующей кодограмме одного фрагмента, повтор DATA во время OOM. + Чистый вариант владения: не извлекать head из output_queue до полного разбора; + normalizer хранит cursor и единственный retry-token, очередь владеет фрагментом. + При OOM callback остаётся приостановленным, повтор сборки не меняет seq/ACK/BBR. + reset/close отменяет token и сбрасывает cursor; фрагменты освобождает владелец очереди. + После callback приложения проверять epoch/close до следующего обращения к заимствованному head: + reentrant reset мог уже очистить очередь. Отдельно проверить OOM самого retry-таймера. Собственный RTT/RTO и ротация уже обязательны в этапе 2. Проверить срок первой повторной отправки, отдельно от объявления потери/снятия окна старой попытки. При потере ограничить новые DATA на проблемном пути, пробовать восстановление diff --git a/doc/tasks.md b/doc/tasks.md index 0afc2f64..5d05420f 100644 --- a/doc/tasks.md +++ b/doc/tasks.md @@ -11,6 +11,7 @@ RTO=clamp(2*(RTT+jitter),10мс,1с). Пределы памяти: попытки 16384/линк, 32768/соединение, ACK 16384/линк. STARTUP завершается после целого раунда устойчивой очереди выше бюджета, без искусственного изменения BW. BBR20/20, windows26 сценариев PASS; восемь тестов ASAN/UBSan с detect_leaks=1 PASS; основной набор183/183 PASS. + check.sh завершён успешно; дополнительные tcp_proxy_full/burst/load PASS (8 соединений,134217728 проверенных байт). Полная штатная multipath-матрица: FAIL, 20 нарушений. Есть недобор RTT20/200мс и bidirectional; slow-drop даёт паузу401мс, два зависших пути676мс, DROP/HOLD под нагрузкой229–243мс. Ранние копии до RTO, здоровье/пробы каналов и STCP backpressure пока не реализованы; пороги тестов сохранены.