Browse Source

Activity.Search: fallback on status resolution on DB Timeout

Backport of: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3507
stable^2
Haelwenn (lanodan) Monnier 2 years ago
parent
commit
27e1e4c742
No known key found for this signature in database GPG Key ID: D5B7A8E43C997DEE
2 changed files with 18 additions and 13 deletions
  1. +1
    -0
      CHANGELOG.md
  2. +17
    -13
      lib/pleroma/activity/search.ex

+ 1
- 0
CHANGELOG.md View File

@@ -22,6 +22,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- TwitterAPI: Make `change_password` and `change_email` require params on body instead of query
- Subscription(Bell) Notifications: Don't create from Pipeline Ingested replies
- AdminAPI: Fix rendering reports containing a `nil` object
- Mastodon API: Activity Search fallbacks on status fetching after a DB Timeout/Error

## 2.4.0 - 2021-08-08



+ 17
- 13
lib/pleroma/activity/search.ex View File

@@ -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


Loading…
Cancel
Save