fix(ai): STT httpc только IPv4 — таймаут на хостах без IPv6
На stage прямой режим к api.x.ai падал upstream_error ровно через STT_TIMEOUT_MS: DNS Erlang отдаёт AAAA первым, IPv6-маршрута на хосте нет, httpc с дефолтным inet6fb4 висит на connect до таймаута (curl/wget с happy-eyeballs проходили). ipfamily=inet на профиле eventhub_stt; IFT (прямой) и прокси-режим не затрагиваются.
This commit is contained in:
@@ -172,11 +172,17 @@ default_http_post(Url, Headers, ContentType, Body) ->
|
||||
%% к STT-апстриму, остальные httpc-вызовы не затрагиваются.
|
||||
ensure_profile() ->
|
||||
case inets:start(httpc, [{profile, ?HTTP_PROFILE}]) of
|
||||
{ok, _Pid} -> apply_proxy();
|
||||
{error, {already_started, _Pid}} -> apply_proxy();
|
||||
{ok, _Pid} -> apply_profile_opts();
|
||||
{error, {already_started, _Pid}} -> apply_profile_opts();
|
||||
_ -> ok
|
||||
end.
|
||||
|
||||
apply_profile_opts() ->
|
||||
%% Только IPv4: на хостах без IPv6-маршрута httpc с дефолтным
|
||||
%% inet6fb4 висит до таймаута, если AAAA приходит первым.
|
||||
httpc:set_options([{ipfamily, inet}], ?HTTP_PROFILE),
|
||||
apply_proxy().
|
||||
|
||||
apply_proxy() ->
|
||||
case parse_proxy(proxy_url()) of
|
||||
{ok, Host, Port} ->
|
||||
|
||||
Reference in New Issue
Block a user