config: raise Finch pool timeout
All checks were successful
ci/woodpecker/pr/lint Pipeline was successful
ci/woodpecker/pr/test/2 Pipeline was successful
ci/woodpecker/pr/test/1 Pipeline was successful
ci/woodpecker/pr/build-arm64 Pipeline was successful
ci/woodpecker/pr/build-amd64 Pipeline was successful
ci/woodpecker/pr/docs Pipeline was successful
ci/woodpecker/pull_request_closed/lint Pipeline was successful
ci/woodpecker/pull_request_closed/test/1 Pipeline was successful
ci/woodpecker/pull_request_closed/test/2 Pipeline was successful
ci/woodpecker/pull_request_closed/build-arm64 Pipeline was successful
ci/woodpecker/pull_request_closed/build-amd64 Pipeline was successful
ci/woodpecker/pull_request_closed/docs Pipeline was successful

A pool timeout shorter than the receive timeout
makes race conditions leading to active connections
being killed more likely and laso just doesn’t make
much sense in general.

See: https://github.com/sneako/finch/pull/292
This commit is contained in:
Oneric 2025-06-08 12:19:17 +02:00
parent 07abbd8de5
commit 80a65be38f
4 changed files with 4 additions and 4 deletions

View file

@ -181,7 +181,7 @@
# Configures http settings, upstream proxy etc.
config :pleroma, :http,
pool_timeout: :timer.seconds(5),
pool_timeout: :timer.seconds(60),
receive_timeout: :timer.seconds(15),
proxy_url: nil,
user_agent: :default,

View file

@ -6,7 +6,7 @@ defmodule Pleroma.HTTP.AdapterHelper do
@moduledoc """
Configure Tesla.Client with default and customized adapter options.
"""
@defaults [name: MyFinch, pool_timeout: 5_000, receive_timeout: 5_000]
@defaults [name: MyFinch, pool_timeout: 60_000, receive_timeout: 15_000]
@type proxy_type() :: :socks4 | :socks5
@type host() :: charlist() | :inet.ip_address()

View file

@ -10,7 +10,7 @@ defmodule Pleroma.HTTP.AdapterHelper.Default do
@spec options(keyword(), URI.t()) :: keyword()
def options(opts, _uri) do
proxy = Pleroma.Config.get([:http, :proxy_url])
pool_timeout = Pleroma.Config.get([:http, :pool_timeout], 5000)
pool_timeout = Pleroma.Config.get([:http, :pool_timeout], 60_000)
receive_timeout = Pleroma.Config.get([:http, :receive_timeout], 15_000)
opts

View file

@ -50,7 +50,7 @@ test "should not override conn_opts if set" do
describe "timeout settings" do
test "should default to 5000/15000" do
options = AdapterHelper.options(%URI{host: ~c"somewhere"})
assert options[:pool_timeout] == 5000
assert options[:pool_timeout] == 60_000
assert options[:receive_timeout] == 15_000
end