logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: 7afabe1cc696fbe7e9a6350145c1bda8b39012e7
parent 3a7b54be4a13cb5386cb7825baf798510f7ab099
Author: rinpatch <rin@patch.cx>
Date:   Fri, 13 Aug 2021 12:09:39 +0000

Merge branch 'bugfix/status-search-fallback' into 'develop'

Activity.Search: resolve status on DB Timeout

Closes #2566

See merge request pleroma/pleroma!3507

Diffstat:

MCHANGELOG.md3+++
Mlib/pleroma/activity/search.ex30+++++++++++++++++-------------
2 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md @@ -15,6 +15,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Removed +## Unreleased-patch +- Mastodon API: Activity Search fallbacks on status fetching after a DB Timeout/Error + ## 2.4.0 - 2021-08-xx ### Changed diff --git a/lib/pleroma/activity/search.ex b/lib/pleroma/activity/search.ex @@ -26,19 +26,23 @@ defmodule Pleroma.Activity.Search do :plain end - Activity - |> Activity.with_preloaded_object() - |> Activity.restrict_deactivated_users() - |> restrict_public() - |> query_with(index_type, search_query, search_function) - |> maybe_restrict_local(user) - |> maybe_restrict_author(author) - |> maybe_restrict_blocked(user) - |> Pagination.fetch_paginated( - %{"offset" => offset, "limit" => limit, "skip_order" => index_type == :rum}, - :offset - ) - |> maybe_fetch(user, search_query) + try do + Activity + |> Activity.with_preloaded_object() + |> Activity.restrict_deactivated_users() + |> restrict_public() + |> query_with(index_type, search_query, search_function) + |> maybe_restrict_local(user) + |> maybe_restrict_author(author) + |> maybe_restrict_blocked(user) + |> Pagination.fetch_paginated( + %{"offset" => offset, "limit" => limit, "skip_order" => index_type == :rum}, + :offset + ) + |> maybe_fetch(user, search_query) + rescue + _ -> maybe_fetch([], user, search_query) + end end def maybe_restrict_author(query, %User{} = author) do