From c9db0507f8d49aee9988b0b63477672f5df9c0b2 Mon Sep 17 00:00:00 2001
From: Alexander Strizhakov <alex.strizhakov@gmail.com>
Date: Wed, 19 Feb 2020 12:19:03 +0300
Subject: [PATCH] removing retry option and changing some logger messages
 levels

---
 lib/pleroma/http/adapter/gun.ex | 28 +++++++++++++++++++++-------
 lib/pleroma/pool/connections.ex | 17 ++++++++---------
 test/http/adapter/gun_test.exs  |  2 +-
 3 files changed, 30 insertions(+), 17 deletions(-)

diff --git a/lib/pleroma/http/adapter/gun.ex b/lib/pleroma/http/adapter/gun.ex
index ec6475e96..f1018dd8d 100644
--- a/lib/pleroma/http/adapter/gun.ex
+++ b/lib/pleroma/http/adapter/gun.ex
@@ -15,7 +15,7 @@ defmodule Pleroma.HTTP.Adapter.Gun do
     connect_timeout: 20_000,
     domain_lookup_timeout: 5_000,
     tls_handshake_timeout: 5_000,
-    retry_timeout: 100,
+    retry: 0,
     await_up_timeout: 5_000
   ]
 
@@ -89,7 +89,7 @@ defmodule Pleroma.HTTP.Adapter.Gun do
     try do
       case Connections.checkin(uri, :gun_connections) do
         nil ->
-          Logger.info(
+          Logger.debug(
             "Gun connections pool checkin was not successful. Trying to open conn for next request."
           )
 
@@ -97,7 +97,9 @@ defmodule Pleroma.HTTP.Adapter.Gun do
           opts
 
         conn when is_pid(conn) ->
-          Logger.debug("received conn #{inspect(conn)} #{Connections.compose_uri(uri)}")
+          Logger.debug(
+            "received conn #{inspect(conn)} #{uri.scheme}://#{Connections.compose_uri(uri)}"
+          )
 
           opts
           |> Keyword.put(:conn, conn)
@@ -105,18 +107,30 @@ defmodule Pleroma.HTTP.Adapter.Gun do
       end
     rescue
       error ->
-        Logger.warn("Gun connections pool checkin caused error #{inspect(error)}")
+        Logger.warn(
+          "Gun connections pool checkin caused error #{uri.scheme}://#{
+            Connections.compose_uri(uri)
+          } #{inspect(error)}"
+        )
+
         opts
     catch
       :exit, {:timeout, _} ->
-        Logger.info(
-          "Gun connections pool checkin with timeout error #{Connections.compose_uri(uri)}"
+        Logger.warn(
+          "Gun connections pool checkin with timeout error #{uri.scheme}://#{
+            Connections.compose_uri(uri)
+          }"
         )
 
         opts
 
       :exit, error ->
-        Logger.warn("Gun pool checkin exited with error #{inspect(error)}")
+        Logger.warn(
+          "Gun pool checkin exited with error #{uri.scheme}://#{Connections.compose_uri(uri)} #{
+            inspect(error)
+          }"
+        )
+
         opts
     end
   end
diff --git a/lib/pleroma/pool/connections.ex b/lib/pleroma/pool/connections.ex
index 1ed16d1c1..c7136e0e0 100644
--- a/lib/pleroma/pool/connections.ex
+++ b/lib/pleroma/pool/connections.ex
@@ -52,8 +52,7 @@ defmodule Pleroma.Pool.Connections do
     opts =
       opts
       |> Enum.into(%{})
-      |> Map.put_new(:receive, false)
-      |> Map.put_new(:retry, pool_opts[:retry] || 5)
+      |> Map.put_new(:retry, pool_opts[:retry] || 0)
       |> Map.put_new(:retry_timeout, pool_opts[:retry_timeout] || 100)
       |> Map.put_new(:await_up_timeout, pool_opts[:await_up_timeout] || 5_000)
 
@@ -108,11 +107,11 @@ defmodule Pleroma.Pool.Connections do
         put_in(state.conns[key], %{conn | conn_state: conn_state, used_by: used_by})
       else
         false ->
-          Logger.warn("checkout for closed conn #{inspect(conn_pid)}")
+          Logger.debug("checkout for closed conn #{inspect(conn_pid)}")
           state
 
         nil ->
-          Logger.info("checkout for alive conn #{inspect(conn_pid)}, but is not in state")
+          Logger.debug("checkout for alive conn #{inspect(conn_pid)}, but is not in state")
           state
       end
 
@@ -172,15 +171,15 @@ defmodule Pleroma.Pool.Connections do
         })
       else
         :error_gun_info ->
-          Logger.warn(":gun.info caused error")
+          Logger.debug(":gun.info caused error")
           state
 
         false ->
-          Logger.warn(":gun_up message for closed conn #{inspect(conn_pid)}")
+          Logger.debug(":gun_up message for closed conn #{inspect(conn_pid)}")
           state
 
         nil ->
-          Logger.warn(
+          Logger.debug(
             ":gun_up message for alive conn #{inspect(conn_pid)}, but deleted from state"
           )
 
@@ -216,11 +215,11 @@ defmodule Pleroma.Pool.Connections do
       else
         false ->
           # gun can send gun_down for closed conn, maybe connection is not closed yet
-          Logger.warn(":gun_down message for closed conn #{inspect(conn_pid)}")
+          Logger.debug(":gun_down message for closed conn #{inspect(conn_pid)}")
           state
 
         nil ->
-          Logger.warn(
+          Logger.debug(
             ":gun_down message for alive conn #{inspect(conn_pid)}, but deleted from state"
           )
 
diff --git a/test/http/adapter/gun_test.exs b/test/http/adapter/gun_test.exs
index 1d7977c83..ef1b4a882 100644
--- a/test/http/adapter/gun_test.exs
+++ b/test/http/adapter/gun_test.exs
@@ -91,7 +91,7 @@ defmodule Pleroma.HTTP.Adapter.GunTest do
 
     test "get conn on next request" do
       level = Application.get_env(:logger, :level)
-      Logger.configure(level: :info)
+      Logger.configure(level: :debug)
       on_exit(fn -> Logger.configure(level: level) end)
       uri = URI.parse("http://some-domain2.com")