diff --git a/doc/proxy_fix_plan.txt b/doc/proxy_fix_plan.txt index 3b632837..b30fedb7 100644 --- a/doc/proxy_fix_plan.txt +++ b/doc/proxy_fix_plan.txt @@ -41,6 +41,12 @@ server.enabled обозначает действующий TCP exit. Роль п Результат client_create публикуется в inst->tcp_proxy_client только после успеха. Порядок остановки: клиент и exit-потоки -> общие UDP/ICMP -> router -> drain deferred free. +При destroy всего instance остановку proxy перенести перед остановкой UTUN-группы, +разборкой topo_groups и ETCP-сокетов/соединений. Сейчас proxy уничтожается в phase M, +после topo_groups и транспорта: для нового rollback нельзя сохранять этот поздний порядок. +Общий instance_init_common уже вызывает instance_destroy при отказе создания; +нужно использовать этот путь, не добавляя параллельную систему частичной очистки. +При create_from_config сохранить существующее правило: отказ возвращает config вызывающему коду. Ресурсы закрываются в одном uasync-потоке; stop/destroy не вызывается из активного callback уничтожаемого владельца. Таймеры/waiters отменяются до освобождения памяти.