Browse Source

Merge branch 'feat/warn-large-pool-size' into 'develop'

Add a startup error for modified Repo pool_size

See merge request pleroma/pleroma!3190
flag-stuff
lain 3 years ago
parent
commit
e73d878b38
2 changed files with 44 additions and 0 deletions
  1. +25
    -0
      lib/pleroma/application_requirements.ex
  2. +19
    -0
      test/pleroma/application_requirements_test.exs

+ 25
- 0
lib/pleroma/application_requirements.ex View File

@@ -24,6 +24,7 @@ defmodule Pleroma.ApplicationRequirements do
|> check_migrations_applied!()
|> check_welcome_message_config!()
|> check_rum!()
|> check_repo_pool_size!()
|> handle_result()
end

@@ -188,6 +189,30 @@ defmodule Pleroma.ApplicationRequirements do

defp check_system_commands!(result), do: result

defp check_repo_pool_size!(:ok) do
if Pleroma.Config.get([Pleroma.Repo, :pool_size], 10) != 10 and
not Pleroma.Config.get([:dangerzone, :override_repo_pool_size], false) do
Logger.error("""
!!!CONFIG WARNING!!!

The database pool size has been altered from the recommended value of 10.

Please revert or ensure your database is tuned appropriately and then set
`config :pleroma, :dangerzone, override_repo_pool_size: true`.

If you are experiencing database timeouts, please check the "Optimizing
your PostgreSQL performance" section in the documentation. If you still
encounter issues after that, please open an issue on the tracker.
""")

{:error, "Repo.pool_size different than recommended value."}
else
:ok
end
end

defp check_repo_pool_size!(result), do: result

defp check_filter(filter, command_required) do
filters = Config.get([Pleroma.Upload, :filters])



+ 19
- 0
test/pleroma/application_requirements_test.exs View File

@@ -12,6 +12,25 @@ defmodule Pleroma.ApplicationRequirementsTest do
alias Pleroma.Config
alias Pleroma.Repo

describe "check_repo_pool_size!/1" do
test "raises if the pool size is unexpected" do
clear_config([Pleroma.Repo, :pool_size], 11)

assert_raise Pleroma.ApplicationRequirements.VerifyError,
"Repo.pool_size different than recommended value.",
fn ->
capture_log(&Pleroma.ApplicationRequirements.verify!/0)
end
end

test "doesn't raise if the pool size is unexpected but the respective flag is set" do
clear_config([Pleroma.Repo, :pool_size], 11)
clear_config([:dangerzone, :override_repo_pool_size], true)

assert Pleroma.ApplicationRequirements.verify!() == :ok
end
end

describe "check_welcome_message_config!/1" do
setup do: clear_config([:welcome])
setup do: clear_config([Pleroma.Emails.Mailer])


Loading…
Cancel
Save