Skip to content

[v1.10.14][Worker] Stabilize MTProto Worker preconnect pool - #36

Open
Regstar2 wants to merge 1 commit into
fix/issue-31-worker-flowseal-framingfrom
fix/issue-32-worker-preconnect-stability
Open

[v1.10.14][Worker] Stabilize MTProto Worker preconnect pool#36
Regstar2 wants to merge 1 commit into
fix/issue-31-worker-flowseal-framingfrom
fix/issue-32-worker-preconnect-stability

Conversation

@Regstar2

@Regstar2 Regstar2 commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Зависимость

Этот PR построен поверх #35, который в свою очередь зависит от #34.

Стек:

Что изменено

  • MTProto Worker preconnect на Android теперь выключен по умолчанию. Обычный runtime использует fresh Worker dial, пока preconnect не включён явно.
  • Максимальный idle pool уменьшен с 2 до 1 соединения на точный ключ, как у актуального Flowseal Worker pool.
  • Warmup больше не строится из набора сырых DC/IP кандидатов. Ключи выводятся через тот же WorkerDestinationPlan, что и foreground MTProto route.
  • Warmup намеренно создаёт только non-media entries. Media/CDN miss идёт через fresh dial.
  • Pool key остаётся полным: effective DC + WorkerDomain + dst + media.
  • Перед выдачей idle Worker WebSocket выполняется bounded liveness probe: закрытый peer, локально закрытый socket или неожиданные buffered upstream bytes не переиспользуются.
  • Session miss по-прежнему не запускает дублирующий background refill.
  • Добавлен явный лог MTProto Worker WS fresh dial ... preconnect_enabled=....

Regression tests

Добавлены/обновлены проверки:

  • Android mapper больше не включает preconnect по умолчанию;
  • явное включение preconnect по-прежнему формирует runtime token;
  • per-key cap равен 1;
  • peer-closed idle WebSocket не считается reusable;
  • warmup использует effective destination и не создаёт media keys;
  • pooled non-media socket не используется для media или другого dst;
  • media pool miss делает ровно один foreground fresh dial и не запускает background duplicate refill.

Не изменяет Worker framing из #31 и destination routing из #30.

Closes #32

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant