Record verified BBR fixes and remaining multipath contract conflicts
This commit is contained in:
1 parent
716db3a820
commit
519d6e4eaf
1 file changed
+40
-1
+40
-1
@@ -19,7 +19,8 @@
|
||||
при насыщении оставшийся набор должен давать >=85% своей ёмкости после переходного периода.
|
||||
Начальные прогоны выявили нарушения: RTT 20/20мс, DROP одного пути — пауза 204мс, latency 344мс;
|
||||
при разных RTT/BWlim не выполняются требования утилизации, в том числе из-за повторов и переполнения очередей.
|
||||
Протокольный фикс не вносился. Отдельно проверить выбор пути повторов, общий RTO, BBR/pacing и блокировку сборки.
|
||||
Базовые исправления BBR/pacing внесены 23.10.2026 в fix/etcp-multipath-recovery (см. завершённую подзадачу ниже).
|
||||
Выбор пути повторов, общий RTO и блокировка сборки ещё не исправлены.
|
||||
Финальный прогон девяти отказов: drop-reverse/short-hold PASS, остальные семь FAIL по целевым требованиям;
|
||||
повтор на обычных часах slow-drop: пауза 450мс, latency 1267мс. Trace показывает повторную отправку в зависший путь.
|
||||
Связанные регрессии 5/5 PASS. ASAN/UBSan + detect_leaks=1: calibration и short-hold PASS;
|
||||
@@ -29,6 +30,44 @@
|
||||
/tmp/etcp-channels-asan-final-results.log, /tmp/test_*-asan-final.log.
|
||||
После исправлений добавить смену профилей на ходу, повторяющиеся отказы и смешанный UDP/STCP со stalled TCP write.
|
||||
Полная матрица дольше 90s общего runner и запускается отдельной целью; нарушения завершают её с ошибкой.
|
||||
Текущая диагностика: /tmp/etcp-recovery-rtt-diagnostic.log/.csv. RTT 20/200мс даёт около 10.1–10.5 из 16 Мбит/с.
|
||||
В одиночном длинном канале PROBE_RTT снижает cwnd до 4*MTU=5120 вместо max(4*MSS, 0.5*BDP) из BBRv3;
|
||||
транспорт повышает его обратно до 8192. При inflight=6582 модель всё ещё ждёт осушения ниже 5120.
|
||||
Перед дальнейшим исправлением согласовать минимальное эффективное окно BBR/транспорта и единицу MSS:
|
||||
сейчас BBR получает link->mtu (для STCP 65535), хотя DATA-фрагменты normalizer существенно меньше.
|
||||
Затем согласовать обратную связь: ACK выбирает путь по inflight/RR, скорость оценивается по фактическому времени
|
||||
возврата ACK, а RTT модели берётся из отдельного timestamp-обмена исходного линка. Это разные интервалы.
|
||||
При повторах ACK не идентифицирует попытку: запись хранит только last_link, старый ACK может быть приписан новому пути.
|
||||
Нужен явный контракт учёта попыток до изменения выбора пути/повторов; простой запрет прошлого линка его не заменяет.
|
||||
После этого исправлять здоровье линка, независимые сроки повторов и доставку при DROP/HOLD по существующим тестам.
|
||||
Финальные профили: equal PASS (14.37 из 16 Мбит/с), bandwidth по скорости PASS (9.34 из 10), но очередь 47.7мс >40мс;
|
||||
rtt FAIL. Пороги очереди и утилизации не ослаблены. Логи: /tmp/etcp-recovery-{equal,bandwidth,rtt}-final.log.
|
||||
|
||||
[+] **ETCP/BBR: байтовые единицы, delivery clock и независимость ACK от локального DATA-pacer** — исправлено 23.10.2026:
|
||||
Устранено повторное умножение на MSS при расчёте pacing/BDP: доставка 1MB/s давала 570240000B/s при MSS=576,
|
||||
теперь cruise pacing=990000B/s независимо от MSS. Q16 байт/мкс сохраняет многогигабитные оценки;
|
||||
выходы pacing/BDP/cwnd и рост inflight_hi насыщаются вместо переполнения.
|
||||
PROBE_UP растит inflight_hi на MSS за подтверждённое окно; резерв равен 2*MSS, Reno rounds считаются в пакетах.
|
||||
Счётчики ACK aggregation расширены до 32 бит, подтверждения свыше 64KiB больше не усекаются.
|
||||
Delivery sample использует снимки delivered/time/send-time пакета и max(send_elapsed, ack_elapsed);
|
||||
несколько ACK в одном tick больше не создают ложный пик скорости. Суммарный delivered растёт только на новые ACKed байты.
|
||||
ACK без DATA обходит локальный DATA-cwnd и DATA-pacer и не начисляет их нагрузку: низкая исходящая DATA-скорость
|
||||
получателя не тормозит обратные подтверждения. Физическая очередь канала остаётся общей для DATA/ACK.
|
||||
dummynet измеряет максимальное время очереди/сериализации отдельно от заданной propagation delay;
|
||||
multipath проверяет его предел base_RTT+20ms наряду с полезной утилизацией, FILLER/повторы не засчитываются.
|
||||
BBR 14/14, window/sender 14 сценариев PASS. ASAN/UBSan с detect_leaks=1: BBR/windows/calibration/session/transport/STCP/NCD 7/7;
|
||||
после последнего исправления переполнения BBR/windows повторены отдельно. Основная multipath-задача остаётся открытой.
|
||||
Общий check.sh перед последним исправлением переполнения: 181/183; падения вынесены отдельной задачей ниже.
|
||||
Логи: /tmp/etcp-recovery-overflow-{before,after,windows}.log, /tmp/etcp-recovery-asan-results.log,
|
||||
/tmp/etcp-recovery-asan-overflow-{bbr,windows}.log, /tmp/etcp-multipath-recovery-check.log.
|
||||
|
||||
[ ] **Разобрать падения NAT fault и encrypted attachment в общем прогоне** — обнаружено 23.10.2026:
|
||||
check.sh: test_nat_detection_faults завершился assert в run_alias (ожидался inbound OPEN, получен UNKNOWN/contact_history);
|
||||
отдельный повтор тоже упал, уже в run_case mode=5: mapping DEPENDENT корректен, inbound UNKNOWN вместо ожидаемого.
|
||||
test_encrypted_attachment достиг phase=3/12001 heartbeat и упал; отдельный повтор завершился phase=10/560 heartbeat PASS.
|
||||
Связь с изменениями BBR не установлена. Разобрать фикстуры/таймеры по логам, не ослаблять ожидания.
|
||||
Логи: tests/logs/test_nat_detection_faults.log, tests/logs/test_encrypted_attachment.log,
|
||||
/tmp/etcp-recovery-nat-retry.log, /tmp/etcp-recovery-attachment-retry.log.
|
||||
|
||||
[+] **ETCP: единый установщик прямого транспорта через NCD** — исправлено 22.10.2026:
|
||||
Удалён неиспользуемый рабочим кодом etcp_connect с EARLY/LATE, отдельными линками и таймерами;
|
||||
|
||||
Reference in new issue
Block a user