From 09736431e0736664f95a4e2bba7cb63889ffcb6a Mon Sep 17 00:00:00 2001 From: Oneric Date: Sat, 14 Dec 2024 21:03:16 +0100 Subject: [PATCH] Don't spam logs about deleted users MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User.get_or_fetch_by_(apid|nickname) are the only external users of fetch_and_prepare_user_from_ap_id, thus there’s no point in duplicating logging, expecially not at error level. Currently (duplicated) _not_found errors for users make up the bulk of my logs and are created almost every second. Deleted users are a common occurence and not worth logging outside of debug --- lib/pleroma/user.ex | 10 +++++++++- lib/pleroma/web/activity_pub/activity_pub.ex | 11 ++++------- .../activity_pub/mrf/anti_link_spam_policy_test.exs | 8 ++++---- test/pleroma/web/activity_pub/relay_test.exs | 4 ++-- .../web/twitter_api/remote_follow_controller_test.exs | 2 +- 5 files changed, 20 insertions(+), 15 deletions(-) diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 2e09a89b6..2f4ac1b72 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -2003,8 +2003,16 @@ def get_or_fetch_by_ap_id(ap_id, options \\ []) do Logger.debug("Rejected to fetch user due to MRF: #{ap_id}") {:error, {:reject, :mrf}} - e -> + {_, {:error, :not_found}} -> + Logger.debug("User doesn't exist (anymore): #{ap_id}") + {:error, :not_found} + + {_, {:error, e}} -> Logger.error("Could not fetch user #{ap_id}, #{inspect(e)}") + {:error, e} + + e -> + Logger.error("Unexpected error condition while fetching user #{ap_id}, #{inspect(e)}") {:error, :not_found} end end diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 494a27421..224767b80 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -1750,19 +1750,16 @@ defp fetch_and_prepare_user_from_ap_id(ap_id, additional) do else # If this has been deleted, only log a debug and not an error {:error, {"Object has been deleted", _, _} = e} -> - Logger.debug("Could not decode user at fetch #{ap_id}, #{inspect(e)}") - {:error, e} + Logger.debug("User was explicitly deleted #{ap_id}, #{inspect(e)}") + {:error, :not_found} - {:reject, reason} = e -> - Logger.debug("Rejected user #{ap_id}: #{inspect(reason)}") + {:reject, _reason} = e -> {:error, e} {:valid, reason} -> - Logger.debug("Data is not a valid user #{ap_id}: #{inspect(reason)}") - {:error, "Not a user"} + {:error, {:validate, reason}} {:error, e} -> - Logger.error("Could not decode user at fetch #{ap_id}, #{inspect(e)}") {:error, e} end end diff --git a/test/pleroma/web/activity_pub/mrf/anti_link_spam_policy_test.exs b/test/pleroma/web/activity_pub/mrf/anti_link_spam_policy_test.exs index 6182e9717..291108da9 100644 --- a/test/pleroma/web/activity_pub/mrf/anti_link_spam_policy_test.exs +++ b/test/pleroma/web/activity_pub/mrf/anti_link_spam_policy_test.exs @@ -241,11 +241,11 @@ test "it rejects posts without links" do assert capture_log(fn -> {:reject, _} = AntiLinkSpamPolicy.filter(message) - end) =~ "[error] Could not decode user at fetch http://invalid.actor" + end) =~ "[error] Could not fetch user http://invalid.actor," assert capture_log(fn -> {:reject, _} = AntiLinkSpamPolicy.filter(update_message) - end) =~ "[error] Could not decode user at fetch http://invalid.actor" + end) =~ "[error] Could not fetch user http://invalid.actor," end test "it rejects posts with links" do @@ -259,11 +259,11 @@ test "it rejects posts with links" do assert capture_log(fn -> {:reject, _} = AntiLinkSpamPolicy.filter(message) - end) =~ "[error] Could not decode user at fetch http://invalid.actor" + end) =~ "[error] Could not fetch user http://invalid.actor," assert capture_log(fn -> {:reject, _} = AntiLinkSpamPolicy.filter(update_message) - end) =~ "[error] Could not decode user at fetch http://invalid.actor" + end) =~ "[error] Could not fetch user http://invalid.actor," end end diff --git a/test/pleroma/web/activity_pub/relay_test.exs b/test/pleroma/web/activity_pub/relay_test.exs index 99cc2071e..b1c927b49 100644 --- a/test/pleroma/web/activity_pub/relay_test.exs +++ b/test/pleroma/web/activity_pub/relay_test.exs @@ -29,7 +29,7 @@ test "relay actor is invisible" do test "returns errors when user not found" do assert capture_log(fn -> {:error, _} = Relay.follow("test-ap-id") - end) =~ "Could not decode user at fetch" + end) =~ "Could not fetch user test-ap-id," end test "returns activity" do @@ -48,7 +48,7 @@ test "returns activity" do test "returns errors when user not found" do assert capture_log(fn -> {:error, _} = Relay.unfollow("test-ap-id") - end) =~ "Could not decode user at fetch" + end) =~ "Could not fetch user test-ap-id," end test "returns activity" do diff --git a/test/pleroma/web/twitter_api/remote_follow_controller_test.exs b/test/pleroma/web/twitter_api/remote_follow_controller_test.exs index 5a94e4396..66e19b5ef 100644 --- a/test/pleroma/web/twitter_api/remote_follow_controller_test.exs +++ b/test/pleroma/web/twitter_api/remote_follow_controller_test.exs @@ -132,7 +132,7 @@ test "show follow page with error when user can not be fetched by `acct` link", |> html_response(200) assert response =~ "Error fetching user" - end) =~ ":not_found" + end) =~ "User doesn't exist (anymore): https://mastodon.social/users/not_found" end end